#問題
複数ボリューム持ちのAMIからインスタンス作成時、「終了時に削除」にチェックを忘れると、インスタンスを終了してもボリュームが迷子になって残る。
存在監視より定期的に掃除しましょう。
#lambda
python3.8
import json
import boto3
def lambda_handler(event, context):
client = boto3.client('ec2', region_name='ap-northeast-1')
res = client.describe_volumes(
Filters = [
{'Name': 'status', 'Values': ['available']}
,{'Name': 'tag:lambda', 'Values': ['delete me']} #status条件だけで足りない時
]
)
#print(res)
for vol in res['Volumes']:
volId = vol['VolumeId']
print(volId)
volres = client.delete_volume(
VolumeId=volId
#,DryRun=True|False
)
print(volres)
return {
'statusCode': 200,
'body': json.dumps('OK')
}
トリガー
- CloudWatchで毎日キック
- 削除なので開発環境で確認してさらに、本番リリースは手動実行後、一日祈ってからトリガーを追加した^^;;
cron
0 1 * * ? *
#ロール
EC2, CloudWatchの権限追加
#参考