[アップデート] Amazon Data Lifecycle Manager にアカウントレベルでバックアップ漏れを防ぐデフォルトポリシーの機能が追加されました。

2023.11.22

こんにちは、AWS事業本部の平木です!

先日、Amazon Data Lifecycle Manager (以下、Amazon DLM)にて、
EBS スナップショットと EBS-backed AMI のバックアップ漏れを防ぐ
バックアップのデフォルトポリシーが追加されたためご紹介します。

4行まとめ

忙しい人向けにこの機能についてまとめてみました。

  • リージョン内にある全ての EC2 インスタンス、EBS ボリュームを対象にバックアップが取得される。
  • 既にカスタムのライフサイクルポリシーによってバックアップが取得されている場合は重複してバックアップは取得されない。
  • 作成されてから24時間経過したリソースのみ対象となる。
  • バックアップの取得タイミングはユーザー側で指定できず4時間毎の時間枠の中で AWS 側でランダムに割り当てられる

詳細を見たい方は続きをご確認ください。

Amazon DLM とは

Amazon DLM は、EC2 インスタンスや EBS ボリュームをバックアップの生成 → 保存 → 削除のライフサイクルを自動化してくれるツールです。

バックアップの AWS サービスといえば AWS Backup もありますが主な違いについては下記ブログをご参照ください。

Amazon DLM の デフォルトポリシー とは

Amazon DLM では、ライフサイクルポリシーを設定することで指定したタグに基づくバックアップの作成から削除までのライフサイクルを管理できます。

しかし、タグの付与が漏れていたり、タグの指定が誤っていた場合には条件に一致しないため管理できません。
EC2 や EBS の数が少なければ早めに気づけるかもしれませんが、
数が多い場合は気づきにくいかもしれません。

そこで活躍するのが今回アップデートで追加された、デフォルトポリシー です。

デフォルトポリシーを使用することで、作成したリージョン内全ての EC2 インスタンスまたは EBS ボリュームを対象とし、バックアップの管理が可能です。

デフォルトポリシーの何が嬉しいか

使用することで嬉しいこと1つ目は、
「バックアップの漏れが無くなること」です。
原則リージョン内全ての EC2 や EBS のバックアップが取得されるので設定し忘れが無くなります。
敢えてバックアップが取得から除外することも可能なので後ほどこちらの挙動も確認してみます。

使用することで嬉しいこと2つ目は、
「カスタムで設定したライフサイクルポリシーによってバックアップが取得されるリソースは、デフォルトポリシーの対象外になる」です。
リージョン内全てのリソースを対象とすると、カスタムポリシーで取得した分だけ重複し余計な料金が発生してしまいます。
デフォルトポリシーではバックアップの取得が重複しないように出来ているため、全て取得するのではなくカスタムポリシーで設定されていないリソースを対象とします。

重複することがないので、コストメリットがある機能となります。

やってみた

実際に、除外設定も込みでデフォルトポリシーの挙動を EBS-backed AMI で確認してみました。

バックアップ対象の確認

Name タグが異なる EC2 を3台用意しました。

backup-policy-ec2-1 は、デフォルトポリシーでバックアップを取得
backup-policy-ec2-2 は、バックアップ取得対象外
backup-policy-ec2-1 は、カスタムポリシーでバックアップを取得
という挙動を確認しようと思います。

デフォルトポリシーの作成

下記のように進みます。

① ナビゲーションペインから「Elastic Block Store > ライフサイクルマネージャー」を選択
② 「デフォルトポリシー」を選択
③ ポリシータイプを選択(今回は、EBS-backed AMI ポリシー
④ 「次のステップ」を押下

続いて設定画面に遷移します。

「ポリシーの説明」には任意のものを記載し、
IAM ロールはデフォルトロールを選択します。

「スケジュールの詳細」では、作成頻度と保持期間を指定します。

カスタムポリシーのようにバックアップの開始時間は設定できません。
AWS 側で指定する4時間の枠からランダムに取得されます。

「除外パラメータ」では、指定のタグを記載するとそのタグを持つリソースについてはバックアップ対象から外せます。
今回は、backup-policy-ec2-2 を除外します。
開発用サーバなどバックアップ不要なものについては、指定すると便利かもしれません。

「詳細設定」では、カスタムポリシー同様オプションを選択できます。
今回は、分かりやすいよう「インスタンスかたタグをコピー」にチェックをいれました。

最後、「デフォルトポリシーを作成」を押下すると作成できます。

比較用のカスタムポリシーの作成

比較用に下記のようにカスタムポリシーも作成しました。
こちらでは、backup-policy-ec2-3 を指定しました。
また、このカスタムポリシーで取得した AMI については、backup-type:custom のタグが付与されるようになっています。

確認

数日経過後、AMI を確認すると、
backup-policy-ec2-1 は、デフォルトポリシーでバックアップを取得
backup-policy-ec2-2 は、バックアップ取得対象外
backup-policy-ec2-1 は、カスタムポリシーでバックアップを取得
という要件通りにバックアップが取得できていることが確認できました!

カスタムポリシーとデフォルトポリシーの違い

いくつか違いはありますが、代表的なものを挙げると、

項目 デフォルトポリシー カスタムポリシー
バックアップ作成頻度 1~7日毎の1日単位の指定 cron式などを使用した細かい指定
インスタンス再起動有無の選択可否 否(再起動はしない)
バックアップの最大保持期間 14日間 100年

詳細は下記ドキュメントを参照ください。

参考

おわりに

今回は、Amazon DLM にてバックアップ漏れを防ぐデフォルトポリシーについてご紹介しました。

機能自体は無料で使用できるものとなっていますので、ぜひ活用してみていただければと思います!

この記事がどなたかの役に立てば嬉しいです。