はじめに
皆様、こんにちは!
ネットワールド SEの福村です。
今回はAWS Backupで取得したAMIをS3へアップロードする検証になります。
通常、AWS Backupで取得したAMIはVaultに格納されますが、増分バックアップとして格納されます。要件によってはAMIをフルバックアップで取得しておきたいということもあるかと思います。そういった場合には有用かと考えています。
概要
AWS BackupでEC2のバックアップデータであるAMIをVaultに格納し、そこからS3へアップロードし、アップロードしたAMIを以てデータを復元できるか確認します。
VaultからS3へのアップロードはAPIでコントロールするのでコマンドで実施します。
※S3へアップロードしたAMIはフルバックアップで保存されます。AWS Backupのように増分バックアップではありません。
簡単なイメージ図としては以下になります。

手順
手順としては以下になります。
- EC2にテストデータ格納
- AWS Backupでバックアップ(AMI)を取得
- AMIをS3へ格納
- S3からAMIを復元
- 復元したAMIでEC2を展開
- 動作確認
EC2にテストデータ格納
バックアップ取得対象のEC2にテストデータを格納します。

AWS Backupでバックアップ(AMI)を取得
AWS BackupでEC2として対象のマシンのバックアップを取得します。

AMIをS3へ格納
Vaultに格納したバックアップデータをS3へ移動させます。
以下のコマンドを実施します。
aws ec2 create-store-image-task \
--image-id AMI_ID
--bucket BUCKET_NAME
※AMI_ID を格納予定のAMIのID に、BUCKET_NAME を格納先のS3のバケット名に置き換えます。

タスクの進捗状況は以下のコマンドで確認できます。
aws ec2 describe-store-image-tasks

S3バケットにAMIが格納されました。

S3からAMIを復元
S3に格納したAMIを復元します。
以下のコマンドを実行します。
aws ec2 create-restore-image-task \
--object-key image.bin \
--bucket BUCKET_NAME \
--name “New AMI Name“
※image.binをS3に格納しているAMIのIDに、BUCKET_NAMEをAMIを格納しているS3のバケット名に、New AMI NameをAMIとして復元する任意の名前に設定及び置き換えます。

タスクの進捗状況は以下のコマンドで確認できます。
aws ec2 describe-store-image-tasks

S3からAMIを復元することができました。

復元したAMIでEC2を展開
復元したAMIでEC2を展開します。

動作確認
復元したEC2にログインし、対象のファイルを開きます。
データが保持されていることが確認できました。

免責事項
- 本ブログ(以降:本書)の記載にあたりまして、細心の注意を払っておりますが、正確性・完全性を保証するものではありません。
- 本書の利用によって生じたあらゆる損害に関して、一切の責任を負いかねます。