[アップデート] EC2起動テンプレートのAMI指定でSSM Parameterがサポートされました
しばたです。
本日よりEC2起動テンプレートのAMI指定でSSM Parameterの名前を指定して使える様になりました。
AWSからのアナウンスはこちらになります。
どういうことか?
AWSのドキュメントにある図を見れば一発なのでこちらをご覧ください。
従来起動テンプレートにあるAMIを更新するには直接テンプレートの内容を更新する必要がありました。
今回の更新でAMIに
resolve:ssm:(SSMパラメーター名)
resolve:ssm:(SSMパラメーター名):(バージョン番号)
resolve:ssm:(SSMパラメーター名):(ラベル名)
の形式でSSM Parameterの名前を指定することができる様になり、AMI更新の自動化をより簡易にできる様になりました。
併せてAMI ID以外のパラメーターを誤って変更してしまうリスクも減らせる形となります。
試してみた
それでは早速試してみます。
今回は私の検証用AWSアカウントの東京リージョンで検証しています。
1. SSM Parameterの準備
はじめにSSM Parameterを新規作成します。
名前はmy-golden-image
としています。
起動テンプレートで使うためには「文字列」タイプでデータ型を「aws:ec2:image
型」にする必要があります。
値にはAMI IDを記載します。
今回は本日時点で最新のAmazon Linux 2イメージ ami-0bba69335379e17f8
(amzn2-ami-kernel-5.10-hvm-2.0.20221210.1-x86_64-gp2) を入力しました。
SSM Parameterを新規作成すると以下のメッセージが表示され、入力内容の検証後にSSM Parameterが更新されます。
パラメータを作成中です。データ型に対してパラメータ値を検証中です。パラメータはすぐに利用できない可能性があります。失敗については、Amazon CloudWatch の通知を確認してください。
出来上がった結果はこんな感じです。
なお、AMI IDに不正な値を入力した場合はエラーメッセージが一切出ることなくただ値が更新されない形になります。
2. 起動テンプレートの準備
次に起動テンプレートの準備をします。
EC2のマネジメントコンソールから新しい起動テンプレートを作成します。
名前はmy-template
としています。
AMIの選択欄で「その他のAMIを閲覧する」を選びます。
AMIの検索画面に遷移するのでテキストボックス右の検索欄をクリックし「カスタム値/Systems Managerパラメーター指定」を選びます。
ここでSSM Parameter名を指定するダイアログが表示されるので、先ほど作成したmy-golden-image
をresolve:ssm:my-golden-image
の形式で指定してやります。
「保存」しAMIの指定がresolve:ssm:my-golden-image
になっていればOKです。
AMI以外のパラメーターは環境に応じてよしなに設定してください。
作成結果はこんな感じです。
AMI ID欄がresolve:ssm:my-golden-image
とSSM Parameter名になっています。
3. EC2の起動
動作確認のため、この起動テンプレートからEC2を一台起動してみます。
作成されたインスタンスは下図となります。
ちゃんとAmazon Linux 2のAMI ami-0bba69335379e17f8
になっています。
4. AMI IDの変更
今度はSSM ParameterのAMI IDを変えてみます。
通常の用途であればOS/ディストリビューションは変えず最新のセキュリティパッチやアプリケーション更新が適用されたAMIに切り替えるでしょうが、今回は分かりやすさのためにAmazon Linux 2 → Ubuntu 20.04[1]とディストリビューションを変えてみます。
SSM Parameterの編集画面を開き値を ami-068e3d6bc44010346
(Canonical, Ubuntu, 20.04 LTS, amd64 focal image build on 2023-01-12)に変更します。
変更後はこんな感じで値が変わりバージョンが1 → 2
に更新されます。
この時点で起動テンプレートは何も変更ありません。
バージョンは1
のまま変わらず、AMI指定もそのままです。
ここから新しいインスタンスを起動すると、
次のインスタンスはUbuntu 20.04になります。
いい感じですね。
補足 : Systems Manager パラメータで検索
AMIの検索画面で「Systems Manager パラメータで検索」がありましたが、こちらはあくまでも検索用です。
こちらの場合はSSM パラメーター → AMI ID
の解決を行い、起動テンプレートに設定されるのは解決後のAMI ID(固定値)となるのでご注意ください。
最後に
以上となります。
地味ですが便利な更新ですね。
起動テンプレートを使った自動化がやりやすくなると思いますので機会があれば是非試してみてください。
本当はUbuntu 22.04にするつもりだったのですが指定を間違えました... ↩︎