Data Lifecycle Managerの対象
・EBSスナップショットの作成、保持、削除
・AMIの作成、保持、削除
・クロスアカウントのスナップショットコピー
AMIライフサイクルポリシーの動作を確認
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 2. EC2インスタンス作成
aws ec2 run-instances \
--image-id ami-0404778e217f54308 \
--instance-type t3.nano \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=key1,Value=val1}]'
-- 3. ロール作成
aws iam list-roles | grep AWSDataLifecycleManagerDefaultRoleForAMIManagement
aws dlm create-default-role \
--resource-type image
-- 4. ライフサイクルポリシーの作成
vim policyDetails.json
{
"PolicyType": "IMAGE_MANAGEMENT",
"ResourceTypes": [
"INSTANCE"
],
"TargetTags": [{
"Key": "key1",
"Value": "val1"
}],
"Schedules": [{
"Name": "schedule01",
"TagsToAdd": [{
"Key": "key2",
"Value": "val2"
}],
"CreateRule": {
"Interval": 12,
"IntervalUnit": "HOURS",
"Times": [
"18:00"
]
},
"RetainRule":{
"Count" : 1
},
"CopyTags": true
}
],
"Parameters" : {
"NoReboot":true
}
}
aws dlm create-lifecycle-policy \
--description dlm01 \
--state ENABLED \
--execution-role-arn arn:aws:iam::999999999999:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \
--policy-details file://policyDetails.json
-- 5. ライフサイクルポリシーの表示
aws dlm get-lifecycle-policies
aws dlm get-lifecycle-policy --policy-id policy-11111111111111111
1日程度動作確認
AMIとEBSスナップショットが最新の1個だけ残っていればOK
-- 6. クリーンアップ
-- ライフサイクルポリシーの削除
aws dlm get-lifecycle-policies
aws dlm delete-lifecycle-policy --policy-id policy-11111111111111111
-- ロールの削除
aws iam list-roles | grep AWSDataLifecycleManagerDefaultRoleForAMIManagement
aws iam detach-role-policy \
--role-name AWSDataLifecycleManagerDefaultRoleForAMIManagement \
--policy-arn arn:aws:iam::aws:policy/service-role/AWSDataLifecycleManagerServiceRoleForAMIManagement
aws iam delete-role --role-name AWSDataLifecycleManagerDefaultRoleForAMIManagement
-- EC2インスタンスの削除
aws ec2 describe-instances
aws ec2 terminate-instances \
--instance-ids i-11111111111111111
-- AMIの削除
aws ec2 describe-images --owners self
aws ec2 deregister-image \
--image-id ami-11111111111111111
-- EBSスナップショットの削除
aws ec2 describe-snapshots --owner-ids self
aws ec2 delete-snapshot \
--snapshot-id snap-11111111111111111