何度か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ライフを。。。