この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Data Lifecycle Managerとは?
Data Lifecycle Managerは、EBS スナップショットの作成、保持、削除を自動化するために使用されます。スナップショットを自動化すると, ストレージコストを削減され、貴重なデータを保護されます。
この記事では、Data Lifecycle Managerを使用してEBSスナップショットを自動化してみました。CloudFormationでスナップショットのライフサイクルポリシーを作成しました。このポリシーは、指定されたタグでebsボリュームのスナップショットを作成します。
やってみた
EBSボリュームの作成
タグ付きのEBSボリュームを作成しておきます。このボリュームはインスタンスに接続できます。
スナップショットポリシーでは、タグに基づいてEBSを識別するので、EBSにタグが追加されます。
スナップショットライフサイクルポリシーの作成
CloudFormationテンプレートにはライフサイクルポリシーとIAMロールがあります。
IAMロール : このポリシーはスナップショットの管理とボリュームの記述するために、アクセス許可を持っています。IAMローはライフサイクルポリシーにアタッチされています。
ライフサイクルポリシー : このライフサイクルポリシーは、04:00(UTC)から24時間ごとにスナップショットを取得します。最大1つのスナップショットが保持されます。EBSボリュームのタグはこのライフサイクルポリシーで指定されています。
CloudFormationテンプレート
AWSTemplateFormatVersion: 2010-09-09
Parameters:
RoleName:
Description: "Role Name"
Type: String
Default: "RoleForDLM"
Resources:
DLMRole:
Type: AWS::IAM::Role
Properties:
RoleName:
Fn::Sub: "${RoleName}"
Path: "/"
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: "Allow"
Principal:
Service:
- dlm.amazonaws.com
Action:
- sts:AssumeRole
Policies:
- PolicyName: "DLMPolicy"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- ec2:CreateSnapshot
- ec2:CreateSnapshots
- ec2:DeleteSnapshot
- ec2:DescribeVolumes
- ec2:DescribeInstances
- ec2:DescribeSnapshots
- ec2:CopySnapshot
Resource: "*"
- Effect: Allow
Action:
- ec2:CreateTags
Resource: arn:aws:ec2:*::snapshot/*
LifeCyclePolicy:
Type: "AWS::DLM::LifecyclePolicy"
Properties:
Description: "Lifecycle Policy to automate EBS Snapshots"
State: "ENABLED"
ExecutionRoleArn: !GetAtt DLMRole.Arn
PolicyDetails:
ResourceTypes:
- "VOLUME"
TargetTags:
- Key: "EBSVolume"
Value: "AutomateEBSSnapshot"
Schedules:
- Name: "Daily Snapshots of EBS"
TagsToAdd:
- Key: "type"
Value: "DailySnapshot"
CreateRule:
Interval: 24
IntervalUnit: "HOURS"
Times:
- "04:00"
RetainRule:
Count: 1
CopyTags: true
デザイナーのテンプレートビュー
CloudFormationテンプレートを作成しておきます。
これは作成中のライフサイクルポリシーの画像です。
スナップショットの自動化を確認
以下の画像は、Lifecycle Managerによって作成されたスナップショットです。
まとめ
Lifecycle Managerを使用してCloudFormationでEBSスナップショット作成の自動化をしてみました。 Lifecycle Managerを使用してEBS-backed AMIの作成を自動化することも可能です。
Reference : Lifecycle Policy using CloudFormation