EC2 起動テンプレートを更新したら、バージョンも意識しよう

EC2 起動テンプレートを更新したら、バージョンも意識しよう

Clock Icon2025.03.07

こんにちは。まると(@MaruDevG)です。
シンプルではありますがEC2の起動テンプレートを更新した際に変更が反映されず、ハマってしまったことがあったので、将来に向けたメモを残します。

先にまとめ

起動テンプレートを更新したら、使用するバージョンの更新も忘れずに!

起動テンプレートとは

以前書いた記事のおさらいとなりますが、各種プロパティをテンプレート化して後から同じ設定のEC2 インスタンスを立ち上げることができるようにするものです。

https://dev.classmethod.jp/articles/get-started-ec2-launch-template/

ハマったこと

ある日、起動テンプレートの内容を更新して、テンプレートからEC2を起動しようとしたところ、更新内容が反映されないことがありました。

  1. インスタンスタイプ t2.micro のテンプレートを...

launchTemp_1

  1. t3.micro に変更して、バージョンを作成

launchTemp_2

  1. 起動テンプレートからEC2を起動すると...

launchTemp_3

  1. 設定変更前の t2.micro で起動している

launchTemp_4

何を見落としていたか

起動テンプレートの設定を変更すると「バージョン」と呼ばれるものが作成されます。
ただし、バージョンを作成してもデフォルトバージョンは自動で更新されないため、EC2 インスタンス起動時に起動テンプレートのバージョンを指定するか、デフォルトバージョンを変更する必要があります。

起動時にバージョンを指定する方法(AWS CLI)

Versionにバージョン番号を渡すことで指定できます

aws ec2 run-instances --launch-template LaunchTemplateId=<起動テンプレートのID>,Version=<起動テンプレートのバージョン>

# 起動テンプレート(lt-xxxxxxxxxxxxxxxxx)内のバージョン2を使用する
aws ec2 run-instances --launch-template LaunchTemplateId=lt-xxxxxxxxxxxxxxxxx,Version=2

参考
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/launch-instances-from-launch-template.html

起動時にバージョンを指定する方法(AWS マネジメントコンソール)

起動テンプレートからインスタンスを起動する際に、バージョンを指定するドロップダウンメニューがあります。
メニューからバージョンを指定できます。

launchTemp_5

デフォルトバージョンを変更する方法(AWS CLI)

ec2 modify-launch-templateから設定できます。

aws ec2 modify-launch-template --launch-template-id <起動テンプレートのID> --default-version <起動テンプレートのバージョン>

# 起動テンプレート(lt-xxxxxxxxxxxxxxxxx)のデフォルトバージョンを2に変更する
aws ec2 modify-launch-template --launch-template-id lt-xxxxxxxxxxxxxxxxx --default-version 2

参考
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/manage-launch-template-versions.html

デフォルトバージョンを変更する方法(AWS マネジメントコンソール

AWS マネジメントコンソールでデフォルトバージョンを変更したい起動テンプレートを選択し、右上にあるアクションボタンから「デフォルトバージョンを設定」から設定できます。

launchTemp_6

Auto Scaling グループで使用している場合はチェック

Auto Scaling グループを作成する際に起動テンプレートを指定しますが、こちらも必要に応じて設定が必要となります。

  • 特定のバージョン: 指定した特定のバージョンを常に使用
  • 起動テンプレートのデフォルトバージョン: デフォルトバージョンが変更されると自動的に追従
  • 起動テンプレートの最新バージョン: 常に最新バージョンを使用

上記3点から指定できるので、こちらも確認してみてください。

launchTemp_7

終わりに

結構シンプルなところではありますが、デフォルトバージョンの存在は改めて認識しておく必要がありました。
また、Auto Scaling グループもバージョンの指定方法によっては、設定を変更する必要があるのでご注意ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.