-1
Amazonはec2-ami-toolsからawscli(チェックthis)に切り替えたので、Robert Sindallのsolutionはもう使用できなくなりました。未使用Amazon EC2スナップショットを削除
私は新しいpython/json標準のスクリプトを書き直すことにしました。
ご不明な点や解決策をお気軽にお寄せください。
Amazonはec2-ami-toolsからawscli(チェックthis)に切り替えたので、Robert Sindallのsolutionはもう使用できなくなりました。未使用Amazon EC2スナップショットを削除
私は新しいpython/json標準のスクリプトを書き直すことにしました。
ご不明な点や解決策をお気軽にお寄せください。
awscliを正しくインストールして設定してください。 MacOSの場合はbrewのバージョンをお勧めします。インストール後
は、お客様自身の責任でそれを使用するとにかく私のために完璧に動作しますが
aws configure
import json, subprocess
def remove_unused_snaps(region):
line = 'aws ec2 describe-images --region {} --owners self'.format(region)
p = subprocess.Popen(line.split(),
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
obj = json.loads(out.decode("utf-8"))
snaps_used = set(i['BlockDeviceMappings'][0]['Ebs']['SnapshotId'] for i in obj['Images'])
line = 'aws ec2 describe-snapshots --region {} --owner-ids self'.format(region)
p = subprocess.Popen(line.split(),
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
obj = json.loads(out.decode("utf-8"))
snaps_old = set(i['SnapshotId'] for i in obj['Snapshots'])
line = 'aws ec2 delete-snapshot --region {} --snapshot-id'.format(region)
for snap in list(snaps_old - snaps_used):
p = subprocess.Popen(line.split() + [snap],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print(snap, out, err)
はその後、単純にそれを実行します。remove_unused_snaps('us-west-2')