4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Amazon Data Lifecycle ManagerでEC2インスタンスのバックアップを取得する

Posted at

はじめに

Amazon Data Lifecycle Managerを利用する事で、EBSボリュームのスナップショット、EBS-backed AMI の作成、保持、削除を自動化する事ができます。
これにより、例えば、EBSスナップショットを毎日取得しつつ、毎週日曜日には週次のシステムバックアップとしてAMIを作成するといったバックアップ運用が簡単に設定できます。

一度ポリシーを作成しておけば、ポリシーでターゲットに指定したタグのキーと値を、EBSやEC2のタグに追加する事で、自動でバックアップが取得できるようになります。

なお、蛇足ではありますが、EBSスナップショット、AMI作成は、EC2インスタンス上で動いているプログラムによっては(RDBなど)、データの整合性が保てない場合があるので、必要に応じて、静止点を取るなどの対処が必要になります。

今回は、EBSスナップショット作成のスケジュール設定、AMI作成のスケジュール設定を行います。

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

image.png
EC2のライフサイクルマネージャーの画面で、「ライフサイクルポリシーの作成」をクリックします。
image.png
ポリシータイプに、「EBS スナップショットポリシー」を選択し、「次へ」をクリックします。
image.png
ターゲットリソースタイプに「ボリューム」を選択し、ターゲットリソースタグに、バックアップ対象とするリソースに付けるタグのキーと値を入力し、「追加」をクリックします。また、ポリシーの説明を入力します。

※この例では、タグのキーに「dlm-daily-ebs-snapshot-enable」、値に「true」を指定しています。

次に、IAMロールの指定をします。
image.png
デフォルトロールを選択し、必要に応じてタグ、ポリシーのステータスを設定し、「次へ」をクリックします。

次に、バックアップスケジュールを設定します。1つのポリシーにつき、3つのスケジュールを設定可能です。
image.png
ここでは、以下のように設定しました。

項目 設定値
スケジュール名 Daily EBS Snapshot Schedule 1
頻度 毎日 24時間毎
開始時刻(UTC) 18:00 (日本時間3:00AM)
保持タイプ カウント
保持 7

これにより、毎日日本時間午前3時にターゲットタグで指定したEBSスナップショットが作成され、7日分保持されます。
image.png
必要に応じてオプション設定を行います。
BCP対策としてのクロスリージョンコピーや、他アカウントへの共有も設定できます。
image.png
タグ付けで、「ソースからタグをコピー」にチェックを入れておくと、Nameタグなど、スナップショット元のEBSに付けられていたタグがスナップショットにも適用されるため、スナップショットが何のスナップショットかが確認しやすくなり、便利です。

設定が終わったら「ポリシーを確認」をクリックし、設定内容を確認します。
image.png
設定内容を確認し「ポリシーを作成」をクリックするとポリシーが作成されます。

ポリシー作成後、CFnテンプレートや手動で、EBSにキー「dlm-daily-ebs-snapshot-enable」、値「true」のタグを付けるようにする事で、ポリシーのスケジュールに従って、対象リソースのEBSスナップショットが作成されるようになります。

ライフサイクルポリシーで指定した開始時刻は、あくまで目安と考えておいた方がよいです。
指定時刻にスナップショットやAMIが作成される事はあまりなく、数分から十数分遅れて開始される事がほとんどです。

AMI作成のライフサイクルポリシーの作成

AMI作成用のライフサイクルポリシーもEBSスナップショットと同じように設定していきます。
image.png
ポリシータイプに、「EBS-backed AMI ポリシー」を選択し、「次へ」をクリックします。
image.png
AMI作成対象のインスタンスを指定する、タグのキーと値を入力し、「追加」をクリックします。また、ポリシーの説明を入力します。

※この例では、タグのキーに「dlm-weekly-create-ami-enable」、値に「true」を指定しています。
image.png
デフォルトロールを選択し、必要に応じてタグ、ポリシーのステータスを設定します。
image.png
AMI作成の前に、インスタンスを停止し、作成後起動するようにするかを指定します。

インスタンスを停止せずにAMIを作成した場合、メモリにキャッシュされ、ファイルに永続化されていないデータの整合性がとれず問題が発生する場合や、作成時に開かれていたファイルが壊れるなどの可能性があるため、「ポリシー実行時にインスタンスを再起動」には「はい」を選択し、「次へ」をクリックします。

次に、バックアップスケジュールを設定します。1つのポリシーにつき、3つのスケジュールを設定可能です。
image.png
この例では、毎週日本時間の日曜日午前4時にAMIを作成し、3世代分保管するスケジュール設定にしています。
image.png
詳細設定で「ソースからタグをコピー」するなどの設定し、「ポリシーを確認」をクリックします。
image.png
image.png
設定内容を確認後、「ポリシーを作成」をクリックすると、AMI作成のポリシーが作成されます。

ポリシー作成後、CFnテンプレートや手動で、EC2インスタンスにキー「dlm-weekly-create-ami-enable」、値「true」のタグを付けるようにする事で、ポリシーのスケジュールに従って、対象リソースのAMIが作成されるようになります。

おわりに

Amazon Data Lifecycle Managerを利用する事で、EBSボリュームのスナップショット、EBS-backed AMI の作成について、まとめてみました。

RDBが動いている環境などでは、バックアップ取得前に静止点をとるなどの考慮が必要ではありますが、設定で簡単にバックアップのスケジュール実行ができ、とても便利なサービスだと思います。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?