【AWS Lambda】create_imageの使い方を簡単解説!

今回は、boto3関数のcreate_imageについて解説します。
「どうやって使うの?」の解説からパラメータを入力したら自動でコード作成までお手伝いします。

利用目的

指定したEC2のAMIを取得します。
AMIの取得時に静止点を取るために再起動を行わせることも、起動状態のまま無停止で取得させることもできます。
基本的にバックアップデータの整合性確保のために再起動オプションを有効とすることを推奨しています。

取得するAMIに対して、カスタイマイズとして追加のディスクを付与することも可能です。
追加するディスクは、既存のスナップショットIDか新規ディスクを選択することができます。

権限

Lambdaに付与するIAMロールに「ec2:CreateImage」の権限を付与してください。
タグ設定を行う場合は、「ec2:CreateTags」の権限も付与してください。

コード生成

パラメータを入力することで、コピーすればすぐに使えるLambdaコードを生成できます。
「*」のついている物は必須パラメータで、ついていないものはオプションです。
import boto3

ec2_client = boto3.client('ec2')
def lambda_handler(event, context):
    response = ec2_client.create_image(
        InstanceId=,
        Name=,
    )

    return 0

▼基本設定

インスタンスID*
イメージ名*

3~128文字のアルファベット、数字で記入下さい。
以下の記号も使用可能です。
()[] ./-'@_

▼オプション

イメージ説明
再起動設定

AMI取得時に再起動するかを選択します。
再起動しない場合は静止点がとられないため、
低確率ですがイメージが破損することがあります。

▼ディスク設定

デバイス名

AMIにディスク追加したい場合に設定します。
本設定値に加えて、スナップショットIDかディスク容量が必要です。

仮想ボリューム名

インスタンスストアボリュームを追加する場合に
仮想ボリューム名を指定します。
設定値は、「ephemeral<数字>」で設定する必要があります。

▼EBS設定

スナップショットID

AMIにアタッチするボリュームにスナップショットを使用可能です。
本設定に加え、ディスク容量などの設定を加えることで、
元のスナップショットの設定をカスタマイズすることも可能です。

ディスク容量

スナップショットIDを設定している場合は、元の容量以上を設定してください。
スナップショットIDを設定していない場合、新規ディスクが追加されます。
ボリュームサイズに設定可能な値は以下の通りで、単位はGiBです。
gp2,gp3 :1 ~ 16384
io1,io2 : 4 ~ 16384
st1,sc1 : 125 ~ 16,384
standard : 1 ~ 1024

ボリュームタイプ
IOPS

ボリュームタイプ毎に設定可能な値は以下の通りです。
gp3 : 3000-16000 IOPS
io1 : 100-64000 IOPS
io2 : 100-64000 IOPS

スループット

設定可能な値は以下の通りです。
gp3 : 125-1000

暗号化

スナップショットIDを使用していない場合のみ、
本設定は使用可能です。

EC2削除時のEBS削除

▼タグ設定

▼AMIタグ

キー

▼スナップショットタグ

キー

仕様

こちらの記事もどうぞ