[アップデート] AMI でも時間ベースのコピー機能がサポートされました
いわさです。
昨年の re:Invent 前に EBS が時間ベースの EBS スナップショットコピー機能をサポートしていたのをご存知でしょうか。
この機能を使うと、別リージョンや別アカウントへスナップショットをコピーする際に完了までの時間を保証させることができます。
追加料金が発生したり、スループットの上限を意識する必要はあったりするのですが、RPO/RTO の関係で確実に保証させたい場合に役に立ちます。
この機能、リリース時は EBS スナップショットのみがサポートされており、AMI のコピーについてはサポートされていませんでした。
私は AutoScalingGroup の関係で AMI コピーでこの機能を使いたかったのですが、あれから 3 ヶ月、ついに AMI コピーでもこの機能が使えるようになりました。
早速試してみましたので紹介します。
私の場合は API 経由で自動化したかったので、API(今回は AWS CLI)経由での実行についても確認してみます。
マネジメントコンソール
まずは作成済みの AMI のコピーを開始します。
EBS スナップショットと同じですね。
コピー設定画面にて Time-based copy の欄が追加されています。
Enable time-based copy にチェックを入れてみましょう。
設定できる時間も EBS スナップショットと同じで、15 分から 48 時間までです。
また、コピー時間計算ツールについても同様に使えるみたいですね。
API(AWS CLI)
私は EventBridge + Lambda の中で AMI の作成やコピー、起動テンプレートの更新を行うことがあったのでその中で使ってみます。
AWS CLI の v1.38.1 以上からサポートされています。対象はcopy-image
コマンドです。
新たにsnapshot-copy-completion-duration-minutes
というオプションが追加されていまして、ここで完了までの時間を分で指定します。
大阪リージョンに 15 分の完了を指定して東京リージョンからコピーさせます。
% aws-v1 --version
aws-cli/1.38.3 Python/3.9.8 Darwin/23.6.0 botocore/1.37.3
% cat hoge.json
{
"Encrypted": true,
"Name": "hoge-0228-ami",
"SourceImageId": "ami-0545ab28f4b9ac0a8",
"SourceRegion": "ap-northeast-1",
"CopyImageTags": true,
"SnapshotCopyCompletionDurationMinutes": 15
}
% aws-v1 ec2 copy-image --cli-input-json file://hoge.json --profile hoge --region ap-northeast-3
{
"ImageId": "ami-084205edef9184aa3"
}
問題なく作成出来ましたね。良さそうです。
さいごに
本日は AMI でも時間ベースのコピー機能がサポートされたので使ってみました。
私の場合は今までコピー完了までの余裕を持ってからバックアップリージョンでの起動テンプレート更新を行うか、あるいは AMI 作成イベントを拾ってイベント駆動で更新を行う(イベントはベストエフォート)必要がありました。
保証されるなら時間ベースで設定するのもありだなと思いました。
AMI でも時間ベースのコピーを使いたかった人は是非お試しを。