0
0

More than 1 year has passed since last update.

起動テンプレートのAMIをSSMパラメータで指定する

Posted at

背景

アップデートで、EC2起動テンプレートのAMI指定欄にSSMパラメータを指定することができるようになりました。
これにより、AMI更新時に起動テンプレートのAMI欄を修正して新規バージョンを発行する必要がなくなりました。

試してみる

ssm パラメータを作成し、amiを参照する流れを試してみます。
パラメータにラベルをアタッチし、ラベルからバージョンを参照します。
amiを更新する際にはパラメータをoverwriteし、ラベルの付け替えを行います。

更新イメージ.png

パラメータの作成

AMIのIDを管理するパラメータを作成します。
Amazon Linux2から作成した自己所有のAMIを設定しています。

aws ssm put-parameter \
    --name "/amis/custom-image" \
    --type "String" \
    --data-type "aws:ec2:image" \
    --value "ami-0b2abc514ca314069" 

更に、新規作成したパラメータのバージョンにラベル:Currentを設定します。

aws ssm label-parameter-version \
    --name "/amis/custom-image" \
    --labels "Current" \
    --parameter-version 1

パラメータの作成が完了しました。

スクリーンショット 2023-02-09 111033.png

起動テンプレートの作成

EC2のコンソールから起動テンプレートを作成します。
SSMパラメータの参照はAMI設定の箇所で行います。

Browse more AMIsを選択。
スクリーンショット 2023-02-09 105357.png

検索窓の△から「カスタム値/Systems Managerパラメータを指定」を選択。

スクリーンショット 2023-02-09 105448.png

ssmパラメータの文字列を入力します。
入力方法は色々ありますが、今回はlabelで管理したいのでlabelを入力に含めています。
resolve:ssm/amis/custom-image:Current
スクリーンショット 2023-02-09 112353.png

他は任意に設定し、作成を行います。

起動の確認

上記で作成した起動テンプレートからインスタンスを起動すると、ssmパラメータのamiが参照されていることを確認できました。

スクリーンショット 2023-02-09 114313.png

amiの更新も確認してみます。
パラメータをoverwriteし、Currentラベルを付け替えます。

aws ssm put-parameter \
    --overwrite \
    --name "/amis/custom-image" \
    --type "String" \
    --data-type "aws:ec2:image" \
    --value "ami-082762d8b0e73e89c" 

aws ssm label-parameter-version \
    --name "/amis/custom-image" \
    --labels "Current" \
    --parameter-version 2

スクリーンショット 2023-02-09 121418.png

この状態でインスタンスを起動すると、パラメータバージョン2のamiが参照されました。

スクリーンショット 2023-02-09 122015.png

まとめ

EC2起動テンプレートのAMI指定欄にSSMパラメータを指定することができるようになりました。これにより、パラメータを更新するだけで起動テンプレートのAMIを変更することができます。
AMIの指定をSSMパラメータに寄せるのか、起動テンプレート内で指定し新しいバージョンを発行するのかで運用フローが分かれそうですね。個人的にはSSMパラメータに寄せたほうが楽になるかなと思います。
ただ、Image Builderと連携していれば自動でAMIを更新して新バージョンを発行してくれるそうなので、SSM パラメータは不要であると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0