[アップデート] DLM が cron 式に対応!時間単位〜年単位まで柔軟なバックアップ間隔が可能に

2020.05.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ちゃだいん(@chazuke4649)です。

Amazon DLM (Data Lifecycle Manager)で、cron式のスケジューリング対応と、週・月・年単位の周期が設定可能になりました!

Data Lifecycle Manager が cron 式に基づくスケジューリングと、週単位、月単位、および年単位のスケジュールを含む追加のバックアップ間隔をサポート

他にも多くのAWSサービスがcron式に対応してますが、ついに DLM も例に漏れず対応されましたね。
早速、触ってみたいと思います。

cron 式での記入方法は、以下ドキュメントを参考ください。

Schedule Expressions for Rules - Amazon CloudWatch Events

そもそも DLM とは? という方は、以下エントリを参考ください。

やってみた

前提

前準備として、以下はすでに作成済みとします。

  • 対象のEBSは作成済み
  • タグにてname:dml-target,value:trueを付与

1.ライフサイクルポリシーを作成する

マネジメントコンソールから行う場合は、EC2コンソールから開きます。

「スナップショットのライフサイクルポリシーを作成する」を押します。

ライフサイクルポリシー作成画面は以下のような設定で進めます。

下記画面でのポイントは以下です。

  • リソースタイプをボリュームを選択したこと
  • ターゲットをname:dml-target,value:trueのタグで判別する

続いて今回メインとなるスケジュールのエリアです。

「ポリシーを次の時間ごとで実行する」の項目でcustom cron expressionが追加されていました。
これを選択し、cron(30 9 29 5 ? *)と入力しました。
意味としては、「毎年5月29日09時30分(UTC)」となります。(あまりしない周期ですが、月単位を使用するためにやってみました)

※ただし、1回目の作成開始時間は、ドキュメントに下記記載があり、1時間以内に開始されるようです。

最初のスナップショットは、対応するポリシーに基づき、指定開始時刻から 1 時間以内に作成されます。

Amazon EBS スナップショットライフサイクルの自動化

他の設定はデフォルトで進め、ライフサイクルポリシー作成を実行します。

2.実行結果を確認する

時間を空けて、EC2コンソールのスナップショットの画面を開いてみます。

すると、下図の通りでした。

ちゃんとできていましたね!

説明部分に、Created for policy:policy ID の記載があり、どのライフサイクルポリシーによるものかわかります。
(実際は、固有のタグ付け設定を有効にするのが良いかと思われます)

終わりに

今回のアップデートによって、DLMのスケジュール設定がとても柔軟になりました。
ぜひ一度使ってみてはいかがでしょうか?

それではこの辺で。ちゃだいん(@chazuke4649)でした。