この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
皆様こんにちは。
今回はCloudFormationを利用して高可用性アーキテクトの構築をしていきます。
この記事ではCloudFormationよりDLMでライフサイクルポリシーの作成を行います。
このブログはCloudFormationによるライフサイクルポリシーの作成をする上での知識を記事としてまとめ再確認し、皆様と共有するため作成します。
1.高可用性アーキテクト構築目次
2.DLMとは
Amazon Data Lifecycle Manager を使用して、EBS スナップショットと EBS-backed AMI の作成、保持、削除を自動化できます。スナップショットと AMI 管理を自動化すると、次のことができるようになります。
・定期的なバックアップスケジュールを実施して貴重なデータを保護する。
・定期的に更新できる標準化された AMI を作成する。
・監査担当者または社内のコンプライアンスが必要とするバックアップを保持する。
引用:Amazon Data Lifecycle Manager
ライフサイクルポリシー
ライフサイクルポリシーはEBS又はEC2をターゲットに指定し、設定したスケジュールに合わせてスナップショットの作成、保持、削除を自動で行います。
今回はEBSのスナップショットの作成、保持、削除を自動で行いたいため、Amazon Data Lifecycle Managerでライフサイクルポリシーを作成します。
類似サービスとしては一元化されたクラウドバックアップサービスの「AWS Backup」があげられます。
3.フロー図
スナップショットの作成、保持、削除を自動化する上でのフローは以下になります。
- DLM用のAWS管理ポリシーがアタッチされているデフォルトのIAMロールを作成します。
→CLIのブログで作成したものを今回使用します。 - ライフサイクルポリシーを作成します。
4.ライフサイクルポリシー作成
ライフサイクルポリシー作成のソースコードは下記になります。
ファイル名「ut-DLM-CF」
AWSTemplateFormatVersion: "2010-09-09"
Resources:
LifecyclePolicy:
#ライフサイクルポリシー作成
Type: AWS::DLM::LifecyclePolicy
Properties:
Description: "WordpressServer-Snapshot"
State: ENABLED
ExecutionRoleArn: arn:aws:iam::xxxxx:role/AWSDataLifecycleManagerDefaultRole
PolicyDetails:
ResourceTypes:
- INSTANCE
TargetTags:
- Key: Name
Value: "ut-wordpress-1"
- Key: Name
Value: "ut-wordpress-2"
Schedules:
- Name: ut-Snapshot
CreateRule:
Interval: 24
IntervalUnit: HOURS
Times:
- '13:00'
RetainRule:
Count: 3
CopyTags: true
Tags:
-
Key: "Name"
Value: "ut-DLM"
設定項目は下記になります。
使用するオプション | 設定値 | 説明 |
---|---|---|
Description | "WordpressServer-Snapshot" | 説明を入力 |
State | ENABLED | ライフサイクルポリシーを作成時に有効化 |
ExecutionRoleArn | arn:aws:iam::【アカウントID】:role/AWSDataLifecycleManagerDefaultRole | IAMロールのARNを指定 |
Tags | Key: "Name" Value: "ut-DLM" |
タグを設定 |
PolicyDetails | 別途記述 | ターゲットやスケジュール等の情報 |
「PolicyDetails」の設定項目は下記の通りです。
使用するオプション | 設定値 | 説明 |
---|---|---|
ResourceTypes | INSTANCE | "VOLUME"又は"INSTANCE"を選択 今回はEC2を指定するので"INSTANCE"を指定 |
TargetTags | Key: Name Value: "ut-wordpress-1", Key: Name Value: "ut-wordpress-2" |
EC2のタグを指定 |
Schedules | 別途記載 | スケジュールの設定 |
「Schedules」の設定項目は下記の通りです。
使用するオプション | 設定値 | 説明 |
---|---|---|
Name | ut-Snapshot | スケジュール名を入力 |
CreateRule | Interval: 24 IntervalUnit: HOURS Times:- ’13:00′ |
24時間間隔で日本時間で午後10時から作成開始 |
RetainRule | count = 3 | 保持できるスナップショットの数を設定 |
CopyTags | true | ターゲットのタグをスナップショットに反映する設定 |
これでライフサイクルポリシー作成のソースコードの説明は以上になります。
5.検証
作成したライフサイクルポリシーが正常に動作するかの検証をしていきましょう。
ライフサイクルポリシー作成から3日後、マネージメントコンソールのスナップショット一覧からスナップショットが計6つ作成されているか確認してみましょう。
今回作成したライフサイクルポリシーからスナップショットが自動作成されていることを確認できました。
さらに1日時間を置き、古いものが自動で削除されるかの確認をします。
6/19作成のスナップショットが自動で削除されていることを確認できました。
6.感想
DLMは比較的楽にEBSのスナップショットの自動作成をできて便利だと思いました。
次回もよろしくお願いします。
7.参照
AWS CloudFormation – AWS::DLM::LifecyclePolicy
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html