話題の記事

【新サービス】EBSスナップショットのライフサイクルを自動化するAmazon DLMが登場!

Amazon EBSスナップショットのライフサイクルを自動化するAmazon Data Lifecycle Manager (Amazon DLM)が登場しました。Amazon DLMを使用すると世代管理なども含めてバックアップの自動化された管理を行えます。

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

大栗です。

先程EC2のドキュメントのDocument Historyを眺めていたらAutomate snapshot lifecycleというFeatureが有りました。何やら新機能みたいなので調べていたら、EBSスナップショットの世代管理などをやってくれるサービスが登場した模様です!早速レポートします。

Automating the Amazon EBS Snapshot Lifecycle

Amazon DLM

Amazon Data Lifecycle Manager (Amazon DLM)を使用するとEBSのバックアップであるスナップショットの作成、保存、削除を自動化できます。

  • 定時バックアップをスケジュールして貴重なデータを保護します。
  • 監査人または社内のコンプライアンスが要求する期間バックアップを保持できます。
  • 古いバックアップを削除してストレージコストを削減します。

Amazon DLMのスケジュールは指定したタグの値が設定されているEBSを対象にスナップショットを取得します。そして、12時間または24時間ごとにスナップショットを取得するスケジュールが設定可能です。

EC2の一機能かと思いましたが、AWS CLIで単独のサービスとして定義されているようです。

料金

Amazon DLM自体の料金はかかりません。別途EBSやスナップショットの料金は発生します。

制限

Amazon DLMには以下の制限があります。

  • リージョンごとに100個までライフサイクルポリシーを作成可能です。
  • リソースあたり最大50個のタグを追加できます。
  • ライフサイクルポリシーごとスケジュールを1個作成できます。

リージョン

通常の商用リージョンに対してaws dlm get-lifecycle-policiesコマンドを実行してみましたが、現時点(2018年7月13日7:30JST現在)では以下のリージョンのみ対応している模様です。

  • 米国東部 (バージニア北部)
  • 米国西部 (オレゴン)
  • EU (アイルランド)

やってみる

ここではバージニアリージョンでManagement Consoleから試してみます。

取得対象のEBS

以下のようなタグが設定されている2個のEBSを作成しました。なおVolume1はKMSのCMKで暗号化しています。DLMタグがsample1の条件で検索できます。

Nameタグ DLMタグ
Volume1 Test1 sample1
Volume2 Test2 sample1

スナップショットライフサイクルポリシーの作成

EC2の画面を開くとELASTIC BLOCK STOREのメニューの中にLifecycle Managerが増えています。ここでCreate Snapshot Lifecycle Policyをクリックします。

ここでは以下のように12時間ごとにスナップショットを取得するスケジュールを設定します。設定するとRule summaryで設定内容のサマリが記述されます。

項目 設定値 備考
Description Blog1
Target volumes with tags DLM:sample1 DLMタグがsample1
Schedule name Schedule1
Create snapshots every 12 12時間ごとに取得
Snapshot creation start time 22:30 時程した時刻から1時間以内にスナップショットを取得します
Retention rule 3 保持する世代数

スナップショットに追加で設定するタグを指定します。また、DLMを実行するIAM Roleを設定します。Default roleを選択する場合、初回実行時にAWSDataLifecycleManagerServiceRoleというService-Linked Roleが自動で作成されます。CLIから実行する時には事前にaws dlm create-default-roleコマンドでRoleを作成しましょう。最後にCreate Policyをクリックします。

項目 設定値 備考
Tag created snapshots キー: Blog, 値: DLM スナップショットに設定するタグ
IAM role Default role
Policy status after creation Enable policy

これでスナップショットライフサイクルポリシーが作成されました。

スナップショットライフサイクルポリシーは以下のように見えます。

実行確認

DLMのスケジュールは指定時刻から1時間以内で動作するので、気長に待ちます。

気長に待つとEBSスナップショットが取得されました!

指定したタグも設定されています。

KMSで暗号化したボリュームもスナップショットを取得できています。

これは便利ですね!

さいごに

いままではCloudWatch Eventsを使ったスナップショット取得の自動化の方法がありましたが、世代管理などが行えないため使い勝手が良いものとは言えませんでした。Amazon DLMを使用すると管理が全て自動化されるのでとても使い勝手が良いです。まだ一部のリージョンにしか来ていないので、東京リージョンの対応が望まれます。