Edited at

CloudFormationを使ってEBSスナップショットのData Lifecycle Managerを設定する


はじめに

本記事では、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管理コンソールから、スタックの作成をクリックします。

2 後述のテンプレートを選択します。

3 各パラメータを入力します。

パラメータ名
用途
備考

スタックの名前
テンプレートから作成するリソース一式の名前
例 prd-stack-vpc-20180801

EBSNameTag
スナップショットを取得したいEBSに設定されているNameタグを指定します

4 後続は、デフォルトのまま次へ次へで、作成します。

5 状況が CREATE COMPLETEになれば、EBSスナップショットのLifeCycle Managerの設定が完了です。

6 EC2の管理コンソールで、LifeCycle Managerにアクセスすると。ポリシーが設定されていることが確認できます。


テンプレート


ec2-dlm-01.yml

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