Lifecycle Managerを使用してCloudFormationでEBSスナップショット作成の自動化をしてみた。
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