Недавно я имел удовольствие от пересмотра инструмента на снимках, у нас есть через наши учетные записи AWS, аккаунт был унаследован от предыдущего администратора, который настроил настроенную оснастку, прежде чем AWS представил там диспетчер Lifecycle
С Amazon Data Lifecycle Manager вы можете управлять жизненным циклом ваших ресурсов AWS. Вы создаете полисы жизненного цикла, которые используются для автоматизации операций по указанным ресурсам. Amazon DLM поддерживает тома Amazon EBS и снимки. Для получения информации об использовании Amazon DLM с Amazon EBS.
Поскольку нам нравится убедиться, что у нас есть каждая вещь в качестве инфраструктуры в качестве кода, шаблон ниже CloudFation создает 4 политики для нескольких вариантов срока хранения, 5, 30, 60, 90 дней. (Вы можете изменить это, чтобы соответствовать вашим потребностям)
AWSTemplateFormatVersion: 2010-09-09
Description: >-
Amazon Data Lifecycle Manager to automate the creation, retention, and deletion of snapshots taken to back up your Amazon EBS volumes
#Metadata:
Resources:
dlmRole:
Type: AWS::IAM::Role
Properties:
Path: /service-role/dlm/
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
-
Effect: "Allow"
Action:
- sts:AssumeRole
Principal:
Service:
- dlm.amazonaws.com
Policies:
- PolicyName: "dlmPolicy"
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- ec2:CreateSnapshot
- ec2:CreateSnapshots
- ec2:DeleteSnapshot
- ec2:DescribeVolumes
- ec2:DescribeInstances
- ec2:DescribeSnapshots
Resource: "*"
- Effect: Allow
Action:
- ec2:CreateTags
Resource: arn:aws:ec2:*::snapshot/*
dlmLifecyclePolicy:
Type: "AWS::DLM::LifecyclePolicy"
Properties:
Description: "DevOps Lifecycle Policy using CloudFormation 5 Day Retention"
State: "ENABLED"
ExecutionRoleArn: !GetAtt dlmRole.Arn
PolicyDetails:
ResourceTypes:
- "INSTANCE"
TargetTags:
-
Key: "DLM-BACKUP"
Value: "YES"
Schedules:
-
Name: "Daily Snapshots 5 Day Retention"
TagsToAdd:
-
Key: "type"
Value: "DailySnapshot"
CreateRule:
Interval: 24
IntervalUnit: "HOURS"
# UTC The time at which the policy runs are scheduled to start. The first policy run starts within an hour after the scheduled time.
Times:
- "02:10"
RetainRule:
Count: 5
CopyTags: true
dlm30LifecyclePolicy:
Type: "AWS::DLM::LifecyclePolicy"
Properties:
Description: "DevOps Lifecycle Policy using CloudFormation 30 Day Retention"
State: "ENABLED"
ExecutionRoleArn: !GetAtt dlmRole.Arn
PolicyDetails:
ResourceTypes:
- "INSTANCE"
TargetTags:
-
Key: "DLM-30BACKUP"
Value: "YES"
Schedules:
-
Name: "Daily Snapshots 30 Day Retention"
TagsToAdd:
-
Key: "type"
Value: "DailySnapshot"
CreateRule:
Interval: 24
IntervalUnit: "HOURS"
# UTC The time at which the policy runs are scheduled to start. The first policy run starts within an hour after the scheduled time.
Times:
- "02:10"
RetainRule:
Count: 30
CopyTags: true
dlm60LifecyclePolicy:
Type: "AWS::DLM::LifecyclePolicy"
Properties:
Description: "DevOps Lifecycle Policy using CloudFormation 60 Day Retention"
State: "ENABLED"
ExecutionRoleArn: !GetAtt dlmRole.Arn
PolicyDetails:
ResourceTypes:
- "INSTANCE"
TargetTags:
-
Key: "DLM-60BACKUP"
Value: "YES"
Schedules:
-
Name: "Daily Snapshots 60 Day Retention"
TagsToAdd:
-
Key: "type"
Value: "DailySnapshot"
CreateRule:
Interval: 24
IntervalUnit: "HOURS"
# UTC The time at which the policy runs are scheduled to start. The first policy run starts within an hour after the scheduled time.
Times:
- "02:10"
RetainRule:
Count: 60
CopyTags: true
dlm90LifecyclePolicy:
Type: "AWS::DLM::LifecyclePolicy"
Properties:
Description: "DevOps Lifecycle Policy using CloudFormation 90 Day Retention"
State: "ENABLED"
ExecutionRoleArn: !GetAtt dlmRole.Arn
PolicyDetails:
ResourceTypes:
- "INSTANCE"
TargetTags:
-
Key: "DLM-90BACKUP"
Value: "YES"
Schedules:
-
Name: "Daily Snapshots 90 Day Retention"
TagsToAdd:
-
Key: "type"
Value: "DailySnapshot"
CreateRule:
Interval: 24
IntervalUnit: "HOURS"
# UTC The time at which the policy runs are scheduled to start. The first policy run starts within an hour after the scheduled time.
Times:
- "02:10"
RetainRule:
Count: 90
CopyTags: true
Как только стек будет развернут, вы можете пометить экземпляр, который вы хотели бы автоматизировать свой снимок с соответствующими тегами (чувствительными к регистру), я заметил на первом запуске каждой политики, есть пару часов задержки, пока не начните видеть Создание ваших снимков, это исправляет себя на втором пробежении
Оригинал: «https://dev.to/paulmicheli/aws-automated-snapshot-cloudformation-1g6c»