はじめに
本記事では、AWS CloudFormation管理コンソールを使って、EBSスナップショットのData Lifecycle Managerを設定する手順を説明しています。(初心者向け)
本記事で掲載しているテンプレートの最新版は、下記に置いてます。
https://github.com/okubo-t/aws-cloudformation
Data Lifecycle Managerとは
Amazon Data Lifecycle Manager (DLM) を利用すると、バックアップしたいEBSとそのバックアップのポリシーを定義するだけで、自動的にスナップショットを取得することができる機能です。
参考
EBS スナップショットの Amazon Data Lifecycle Manager の概要
CloudFormation テンプレート リファレンス AWS::DLM::LifecyclePolicy
前提条件
後述するテンプレートのサンプルでは、スナップショットを取得したいEBSに、Nameタグが設定されていることとしています。
ポリシーは、例として、下記の内容で定義しています。
ポリシー内容 | 値 |
---|---|
スナップショット取得間隔 | 24時間 |
スナップショット取得開始時刻 | 17:00(UTC) |
スナップショットの保持世代数 | 3 |
設定手順
1 AWS CloudFormation管理コンソールから、スタックの作成をクリックします。
パラメータ名 | 用途 | 備考 |
---|---|---|
スタックの名前 | テンプレートから作成するリソース一式の名前 | 例 prd-stack-vpc-20180801 |
EBSNameTag | スナップショットを取得したいEBSに設定されているNameタグを指定します |
4 後続は、デフォルトのまま次へ次へで、作成します。
5 状況が CREATE COMPLETEになれば、EBSスナップショットのLifeCycle Managerの設定が完了です。
6 EC2の管理コンソールで、LifeCycle Managerにアクセスすると。ポリシーが設定されていることが確認できます。
テンプレート
AWSTemplateFormatVersion: "2010-09-09"
Description:
Create DLM LifecyclePolicy
# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
EBSNameTag:
Type: String
# ------------------------------------------------------------#
# DLM LifecyclePolicy
# ------------------------------------------------------------#
Resources:
LifecyclePolicy:
Type: "AWS::DLM::LifecyclePolicy"
Properties:
Description: "Daily EBS Snapshot"
State: "ENABLED"
ExecutionRoleArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/AWSDataLifecycleManagerDefaultRole"
PolicyDetails:
ResourceTypes:
- "VOLUME"
TargetTags:
-
Key: "Name"
Value: !Ref EBSNameTag
Schedules:
-
Name: !Sub "${EBSNameTag}-daily-snapshot"
TagsToAdd:
-
Key: "type"
Value: "DailySnapshot"
CreateRule:
Interval: 24
IntervalUnit: "HOURS"
Times:
- "17:00"
RetainRule:
Count: 3
CopyTags: true