この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
お疲れ様です。株式会社協栄情報システム3部所属の比嘉です。
DLMを利用して、EC2のバックアップを取得する方法を紹介していきます。
はじめに
DLM(Data Lifecycle Manager)という、EBSボリュームのスナップショットの作成・保持・削除を自動化できる機能があります。
DLMを利用することで、EBSボリュームをバックアップですることができます。
料金
無料で利用することができます。作成するEBSスナップショットの通常のストレージ料金を支払います。
1.DLMの設定
1.1.ライフサイクルポリシーを作成
・「EC2」→「Elastic Block Store」→「ライフサイクルマネージャー」→「ライフサイクルポリシー」を選択します。
1.2.ポリシータイプを選択
・EBS スナップショットポリシーを選択します。
1.3.設定項目
下記の通りに設定していきます。
項目 | 設定内容 | コメント |
---|---|---|
ターゲットリソースタイプ | ボリューム | リソースタイプを選択します(ボリュームorインスタンス) |
説明 | higa-DLM-Policy | ポリシーの説明 |
ポリシーのステータス | 有効 | ※補足説明を参照 |
ターゲットリソースタグ | DLM-tag:higa-DLM | |
ロール名 | AWSDataLifecycleManagerDefaultRole | IAMロール |
ポリシータグ | Name:higa-DLM-Policy | |
スケジュール名 | higa-DLM-Schedule | スケジュールの名称 |
頻度 | 14:00 時から 24 時間ごと | UTC時間(日本時間-9時間)、時間間隔の指定 |
保持 | 3 | 最新のスナップショットの保持数 |
詳細設定(タグ付け) | Name:higa-snapshot1 Cost:higa-snapshot1 |
このスケジュールによって作成されたスナップショットに適用されるタグを指定 |
補足説明
ポリシーのステータス
作成または変更直後にポリシーを有効にするかどうかを指定します。今すぐこのポリシーを有効にしない場合、手動でアクティベーションステータスを有効に設定するまで、スナップショットまたはAMIの作成は開始されません。
保持タイプ
「カウント方式」と「期間方式」があります。
カウント方式ではスナップショットの数で管理をし、期間方式では保存期間(例えば1か月間のような)で管理します。
IAMロール
IAMロールはAWSから提供されるAWSDataLifecycleManagerDefaultRole
というデフォルトロールを使用するかカスタムIAMロールを作成して使用します。今回はデフォルトロールを使用します。
IAMポリシー
下記はAWSDataLifecycleManagerDefaultRole
のJSONです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:CreateSnapshot",
"ec2:CreateSnapshots",
"ec2:DeleteSnapshot",
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"ec2:DescribeSnapshots",
"ec2:EnableFastSnapshotRestores",
"ec2:DescribeFastSnapshotRestores",
"ec2:DisableFastSnapshotRestores",
"ec2:CopySnapshot",
"ec2:ModifySnapshotAttribute",
"ec2:DescribeSnapshotAttribute"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:*::snapshot/*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags",
"events:PutRule",
"events:DeleteRule",
"events:DescribeRule",
"events:EnableRule",
"events:DisableRule",
"events:ListTargetsByRule",
"events:PutTargets",
"events:RemoveTargets"
],
"Resource": "arn:aws:events:*:*:rule/AwsDataLifecycleRule.managed-cwe.*"
}
]
}
項目 | 説明 |
---|---|
Effect | Allow(許可)/Deny(禁止)の選択をします |
Action | 操作内容 |
Resource | 操作対象 |
"Resource": "*"
はすべての対象に適応されます。
"Action": ["ec2:CreateSnapshot",]
でEC2のスナップショットが作れます。
2.スナップショットの確認
「EC2」→「Elastic Block Store」→「スナップショット」を選択します。
下記からスナップショットが作成されていることが確認できます。
今回は24時間間隔で日本時刻23時にスナップショットが作成されます。
3.スナップショットからAMIを作成
「スナップショットIDの詳細」→「ボリュームID」を確認します。
下記から「higa-ec2-1」のスナップショットであることが確認できます。
「スナップショットID」→「アクション」→「スナップショットのイメージを作成」を選択します。
下記の通りに設定します。
項目 | 設定値 |
---|---|
イメージ名 | higa-AMI1 |
説明 | higa-AMI1(higa-ec2-1) |
「イメージ」→「AMI」を選択します。
下記からAMIが作成されたことが確認できました。
4.EC2の復元
「AMI ID」→「AMIからインスタンスの起動」を選択します。
下記の設定をします。
OS、インスタンスタイプ、キーペア、ネットワーク、ストレージ等はEC2と同じ設定をします。
項目 | 設定値 |
---|---|
Name | higa-ec2-1-BackUp |
「インスタンスの起動」→「インスタンスの表示」を選択します。
これでEC2インスタンスの復元ができました。
おわりに
ここまで読んでいただきありがとうございました。
DLMは自動でスナップショットの作成ができて便利な機能だと思いました。
DLMに似たサービスで「AWS Backup」というサービスがあります。DLMのバックアップ対象は「EBS」のみですが、AWS Backupでは「EC2インスタンス、EBS、RDS、Storage、Gateway、EFS、DynamoDB」と対象が複数あります。
複数サービスを使用したシステムでバックアップをしたい場合はAWS Backupを使用したほうがいいでしょう。