何度かAuto Scaling グループを作ったことがあった。最近、起動設定(Launch Configuration)があまり推奨されなくなったとのことで、その後継と言われる起動テンプレート(Launch Template)を使うことになった。慣れ親しんだものから新しいものへ。
概要図
イメージとしてはこんな形。昔はここの起動テンプレートの部分が、起動設定だったが、完全に置き換わった形となる。

前提
- EC2インスタンスのAMIは取得済
- ELB、ターゲットグループ、リスナーも作成済
作り方
起動テンプレートを作る
EC2の起動テンプレートを開いて新規作成画面にいく。起動テンプレート名を適切なものに指定する。

ネットワーク設定として、サブネットやセキュリティグループを設定できる。

AutoScalingグループを作る
EC2からAutoScalingグループへ進み、作成するボタンを押す。

起動テンプレートを指定すると、バージョンという奇妙な設定が出る。新規作成のときは「Default」でOK.後々、起動テンプレートのAMIを更新すると、このバージョンの数がインクリメントされていく。AMIを変える度に、AutoScalingグループのこのバージョンを変えていくこととなる。

ネットワーク設定としてVPCやAZ、サブネットを選択可能。起動テンプレートにも同じようなネットワーク設定があった気がするが、要件に応じてどちらかにする。
個人的には起動テンプレートで、セキュリティグループをつけて、AutoScalingグループでVPCとAZ(サブネット)を割り当てる方針としている。

インスタンスタイプについても同様に、起動テンプレートと重複している。ここでは起動テンプレートで決めたインスタンスタイプから変える理由がないので、そのまま次へ。

詳細オプションでELBとの連動もできる。ここは後から設定できるので、今はロードバランサーなしで進む。

グループサイズを設定する。インスタンスをいくつデプロイするか?という設定。以下のように全部1にすると、AutoScalingを用いたAutoHealingという動きになる(必ず1台起動しろ、という設定なので、ヘルスチェックに違反すると既存のEC2が終了し、新たにEC2が立ち上がる)。

ELBとAutoScalingグループの連携
先ほど作成したAutoScalingグループより、ELBとの連携設定をする。

アプリケーション、ネットワークまたはGWLBターゲットグループをチェックして、対象ELBのターゲットグループを選ぶ。

ELBとのヘルスチェックをAutoScalingグループに連動させるため、ヘルスチェックを編集する。

ヘルスチェックのタイプ「ELB」にチェックを入れる。猶予期間も任意に変更して、更新。

これでEC2のヘルスチェックだけでなく、ELBのヘルスチェックからもAutoScalingグループの発動が判断されるようになる。
まとめ
起動テンプレートは初めてでしたが、あんまり起動設定と変わらないというか、ちょっときめ細かになった感じで、少し便利になった感はありました。逆にそれ以外は何が変わったんだ?というレベルでもあったというか(笑)
おまけ
起動テンプレートの更新
AMIを更新したいときは、起動テンプレートの以下画面から更新する。

もろもろAMI変えるなどの設定をして、「テンプレートのバージョンを作成」を押す。

作成したAutoScalingグループに戻り、起動テンプレートを編集する。

Latestにしておけば、勝手に新しい起動テンプレートのバージョンを見に行ってくれる。ただし、新バージョンの起動テンプレートに誤りがあったら・・・後の祭り。

楽しいAutoScalingライフを。。。

















