AWS SDK for Python boto3でインスタンスAMIを保存する

boto3を使ってAMIを保存する。必要情報はアクセスキーなど基本的なものと取りたいInstanceId。

client = boto3.client('ec2',  
    aws_access_key_id=parsed['access_key'],
    aws_secret_access_key=parsed['secret_key'],
    region_name=parsed['region']
)

image_response = client.create_image(
    InstanceId='i-hogehogehoge',
    Name='hogehogeName',
    Description='hogehogeDescription',
    NoReboot=True
)

こんな感じで簡単に取るように指示を出せる。 NoRebootで再起動させない事もできる。ただ、そうなるとAWS非推奨でデータの整合性は担保できないため注意。 まぁ、それでも再起動させたくないケースは多いハズ。 また、ブラウザ経由と同じくNameは重複できないので、時間やら乱数入れるなりしてかぶらないように。

取り終わったあとに何かさせたい場合には

waiter = client.get_waiter('image_available')
waiter.wait()

などで待たせたあとに何か処理をかけば良い。ただ、AMIの作成完了までの時間があまりに長いもの(1時間以上?未確認)だと、 エラーを出してしまうらしいので注意。 その場合はwaiterなどの処理方法を変えてあげてね。

AWSを利用した導入事例のご紹介

実際に構築を行ったAWSの事例を紹介しています。導入の目的に近い事例をご覧いただくと、実際の構成例やメリット、注意点などが把握できます。

ブックオフコーポレーション株式会社様
第一生命保険株式会社様
株式会社電通様
株式会社LIFULL様
株式会社リブセンス様
TBSアナウンス部様
明治大学様
拓殖大学様