こんにちは、技術1課の小倉です。
2020/5/26にアップデートがあり、Amazon Data Lifecycle Manager(DLM)でcron式にてスケジューリングできるようになりました!
Data Lifecycle Manager が cron 式に基づくスケジューリングと、週単位、月単位、年単位のスケジュールを含む追加のバックアップ間隔を新たにサポート
今までは、1, 2, 3, 4, 6, 8, 12, 24時間おきにEBSのスナップショットをとるという指定しかできなかったのですが、今回のアップデートでcron式をサポートしたため、週単位や年単位、日付指定などでスナップショットを取得できるようになりました。
cron式は cron(0 * * * ? *) のように書き、左から (分、時、日、月、曜日、年) を指定することができます。この例ですと、毎時0分に実行するという書き方です。
cron式の書式はこちら : Cron Expressions
Amazon Data Lifecycle Manager(DLM)とは
ポリシーを作成することにより、EBSのスナップショットの作成、保持、削除を自動でできます。ポリシーの設定でスナップショットの取得間隔、世代管理や保持日数を指定してスナップショットを管理することができます。また、DLMの利用料金はかかりませんが、保管するEBSのスナップショットの料金は別途かかります。
AWS公式サイト : Amazon EBS スナップショットライフサイクルの自動化
設定手順
新規作成
マネジメントコンソールにログインして、EC2のコンソールを開きます。
ナビゲーションペインの[ライフサイクルマネージャー]をクリックし、[スナップショットのライフサイクルポリシーを作成する]をクリックします。
スナップショットのライフサイクルポリシーを作成する画面で、*がついている必須項目を入力します。
- 説明 : ライフサイクルポリシーの説明を入力
- リソースタイプを選択 : 今回はインスタンスを選択
- これらをタグを持つターゲット : 対象のEC2インスタンスのタグを設定(今回はタグのキーがName、値がserverlessframework)
- スケジュール名 : 適宜変更(今回は変更なし)
- ポリシーを次の時間ごとに実行する : 今回のアップデートで指定可能になった Custom cron expression を選択
- Cron expression : cron式を入力
- 保持タイプ : カウントか保持期限を選択(今回は保持期限を選択)
- 保持する : 保持する世代数を入力(今回は5世代保管)
下にスクロールして、[ポリシーの作成]をクリックします。
成功のメッセージが出力されたら[閉じる]をクリックします。
これで設定は完了です。あとはスナップショットが取得されるのを待ちます。
ナビゲーションペインの[スナップショット]をクリックすると取得されたスナップショットが確認できます。
DLMで作成されると説明に「Created for policy: …」と書かれます。今回は保持するスナップショットを5に設定しています(4:21 – 8:22の計5つ)。
スナップショットが5つとっている状態で次のスナップショットを取得すると一番古いスナップショットが削除されます(一番古いスナップショットが5:20になっています)。
既存設定の変更
既存設定の変更の場合は、EC2コンソールで、ナビゲーションペインの[ライフサイクルマネージャー]をクリックして、変更対象のポリシーを選択し、[アクション] – [スナップショットのライフサイクルポリシーを変更する]をクリックします。
[ポリシーを次の時間ごとに実行する]を Custom cron expression に変更し、Cron expressionにcron式を入力します。
下にスクロールして、[ポリシーの更新]をクリックします。
まとめ
Amazon Data Lifecycle Manager(DLM)でcron式にてスケジューリングできるようになりました。今までは指定した時間おきにEBSのスナップショットを取得という設定しかできませんでしたが、より柔軟に取得できるようになりましたので、利用してみてはいかがでしょうか。
また、本ブログの内容は2020/6/3(水) 12:00よりYouTube Liveで配信される「30分でわかる AWS UPDATE!」でも取り上げる予定ですので、ぜひご覧ください!
もしリアルタイムで見逃しても、アーカイブ動画から内容を確認できます。