簡単にできる!Auto Scalingの「起動設定」を「起動テンプレート」に移行しよう

最新の 機能と出会いに 梅雨の中 起動テンプレ 移行してみた
2021.06.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

既に夏のような湿気と暑さに参っています。

▲ 心がサマーカットしたがっています

こんにちは。Shirotaです。
この時期は毎年湿気への怨嗟をどこかしらに漏らしている気がします。
気を取り直して、怨嗟よりもお話ししたいAuto Scalingの話を今日はしたいと思います。

Auto Scalingで「起動テンプレート」、使っていますか?

EC2インスタンスの起動などで便利な、インスタンス起動に必要な情報を設定しておける「起動テンプレート」というものがあります。
こちら、Auto Scalingでも利用することができるようになっております。
Launch Templates for Amazon EC2 instances の紹介

Auto Scalingには元々「起動設定」と言うインスタンス起動に必要な情報を設定しておける機能があったのですが、こちらは2021年6月16日現在、公式ドキュメントによれば 利用をあまり推奨しておりません

We strongly recommend that you do not use launch configurations. They do not provide full functionality for Amazon EC2 Auto Scaling or Amazon EC2. We provide information about launch configurations for customers who have not yet migrated from launch configurations to launch templates.

Launch configurations - Amazon EC2 Auto Scaling

「起動テンプレート」が「起動設定」より推奨される理由

AWSが起動テンプレートの利用を推奨していますが、その理由として より最新の機能や改善をいち早く反映してくれる と言うのもあります。

最新の機能と改善点にアクセスできるように、起動テンプレートから Auto Scaling グループを作成することをお勧めします。Amazon EC2 Auto Scaling で起動設定を引き続き使用する場合は、すべての Auto Scaling グループ機能が使用できるわけではないことに注意してください。

例えば、起動テンプレートでないとAuto Scalingグループの設定でできないこととして、以下に挙げられるものがあります。

  • スポットインスタンスとオンデマンドインスタンスの両方を起動する
  • 複数のインスタンスタイプを指定する
  • 複数の起動テンプレートを指定する

起動テンプレート - Amazon EC2 Auto Scaling (日本語)

起動設定を起動テンプレートへ移行するのは簡単!

「起動設定から起動テンプレートへの移行をした方が良いことは分かったけど、いざ移行しようとすると手間だなぁ」と思われた方もいらっしゃるんじゃないかと思います。
実は、 起動設定から起動テンプレートを作成することができる のです。
手順もかなり簡単です。
今回は、この手順を試してみて簡単にまとめてみたいと思います。

「起動設定」を「起動テンプレート」に変更してみた

今回は、以下の二つの作業についてまとめました。
1. Auto Scalingグループで利用している「起動設定」から「起動テンプレート」を作成
2. Auto Scalingグループで利用している「起動設定」を、1. で作成した「起動テンプレート」に変更

「起動設定」から「起動テンプレート」を作成する

こちらの作業は、現在 コンソールからしか実行できません

起動テンプレートへの起動設定のコピー - Amazon EC2 Auto Scaling (日本語)

まずは、コンソールでEC2サービスを開き、左カラムにある「Auto Scaling→起動設定」を選択します。
そこにある起動設定の中から、起動テンプレートを作成したいものを選択し、右上の「起動テンプレートへのコピー→選択内容のコピー」を選択します。

▲ 利用を推奨しているだけあって、案内がとても親切

次に、起動テンプレートの名前を入力します。
起動設定と同じ名前が初めから入ってるので、特に変更しない際はそのまま「コピー」を選択すれば完了です。
また、作成したテンプレートを使ってすぐにAuto Scalingグループを作成することもできます。
今回は、既存の起動設定を利用しているAuto Scalingグループを利用したいのでここは利用せず起動テンプレートの作成のみを実施しました。

▲ コンソールでの作業、2スクリーンショットでフィニッシュです

Auto Scalingグループの「起動設定」を「起動テンプレート」に差し替える

先ほど起動設定から作成した起動テンプレートですが、起動テンプレート自体がEC2サービスの様々なところで使える(それこそEC2の起動やスポットフリートの作成、最近だとImage Builderでの利用)ため左カラムの インスタンス のところにあります。
起動設定と場所が違うのでお気をつけ下さい。

▲ 私は一瞬、コンソール上で迷子になりました

Auto Scalingグループの起動設定を起動テンプレートに差し替える作業は、 コンソールでもCLIでもできます。
今回は、両方の手順をまとめておきます。
まずはコンソールでの手順です。起動設定を差し替えたいAuto Scalingグループを選択します。
以下のような表記がある場合、そのAuto Scalingグループは起動設定を利用しています。

▲ 最新の機能が使いたい場合は起動テンプレートを使う必要がある

今回は、ここから設定を差し替えます。
「編集」を押すと起動設定の編集をする画面に移動しますが、ここで右上にある「起動テンプレートに切り替える」を選択します。

▲ ここを選択すると

▲ 起動テンプレートの世界に到着

後は、先ほど作成した起動テンプレートを選択してから、右下にある「更新」を押せば起動テンプレートへの差し替えは完了です。

▲ 文言が変わっています

ここまで書いてから気がついたのですが、詳細欄の「起動設定」が「起動テンプレート」になっていました。こちらの方が分かりやすいですね。

同様の作業を、AWS CLIで実行する時には以下のようになります。 実際にCloudShellで実行したものを記載しておきます。 事前に、起動テンプレート一覧から利用したい起動テンプレートID(lt-から始まるID)をメモしておくことをおすすめします。

[cloudshell-user@ip-XXX-XXX-XXX-XXX ~]$ aws autoscaling update-auto-scaling-group --auto-scaling-group-name shirota-test-auto-scaling \
>   --launch-template LaunchTemplateId=lt-XXXXXXXXXXXXXX,Version='$Latest'
[cloudshell-user@ip-XXX-XXX-XXX-XXX ~]$

正常に完了した場合、特にダイアログは出ずにコマンドが終了しました。

サクッと切り替えできるので積極的に使っていこう

AWSが切り替えを推奨しているだけあって、切り替えについてはとてもシンプルな手順でサクッと試すことができました。
先述したのですが、以下のような細かなカスタマイズが使えるようになるのはとても嬉しいことだと思います。

  • スポットインスタンスとオンデマンドインスタンスの両方を起動する
  • 複数のインスタンスタイプを指定する
  • 複数の起動テンプレートを指定する

このブログが、起動設定を使っていてこの機に起動テンプレートに差し替えようと思っている人のお役に立てば幸いです。