こんにちは、@Manabu です。
この記事では、AWSのALBに2つ目のターゲットグループをアタッチする手順を記載しています。
前提と結果は、ご自身の望むものと違う場合があるので、1つの例として参考にしてください。
はじめに
今回の内容は、ALBのリスナールールを使用してパスごとにトラフィックを分けようと思い、その準備としてターゲットグループを分割したことを記事としてまとめています。
※リスナールールの設定については、記載していません。
最初は、1つのターゲットグループに複数のEC2をアタッチしていたけど、リスナールールを使用したくなったという方は、ぜひ参考にしてみてください。
対応前
対応前の構成は以下の図のようになっていました。
ALBに1つのターゲットグループがあり、EC2が2台アタッチされています。
対応後
対応後の構成は、以下の図のようになります。
ターゲットグループを1つ追加して、それぞれに1台ずつEC2をアタッチしています。
手順
対応した手順について記載してきます。
※すでに「test-target-1」というターゲットグループがあり、そこに2つのインスタンスがアタッチされているということが前提になります。
ターゲットグループの作成
AWSのマネジメントコンソールよりログインし、EC2のコンソールからターゲットグループを作成します。
参考例として、作成した時の設定を紹介します。
ターゲットグループ名:test-target-2
プロトコル:HTTP
IPアドレスタイプ:IPv4
プロトコルバージョン:HTTP1
ヘルスチェックパス:/
test-target-1にアタッチされているインスタンスを1台、作成したターゲットグループに登録します。
リスナールールの修正
ターゲットグループを作成しましたが、この状態ではまだALBにアタッチしていないため、処理が流れてくることはありません。
リスナールールを修正して、二つのターゲットグループにトラフィックを分散するようにします。
今回は、デフォルトで作成されているリスナールールを修正します。
対象のALBを選択し、リスナーとルールから「デフォルト」のルールを選択し、アクションから「ルールの編集」をクリックします。
設定を変更するのは、1箇所だけです。
以下の、「ターゲットグループへ転送」の項目にターゲットグループを追加します。
※重みは均等にしたいので、両方1を設定しています。
この設定で保存すると、ALBからそれぞれのターゲットグループに、均等な割合でトラフィックが分散されるようになります。
※作成したターゲットグループのターゲットから、インスタンスのヘルスステータスを確認するようにしましょう。
トラフィックの確認
ブラウザから、同じドメインにアクセスしてみます。
・test-target-1
・test-target-2
無事、それぞれのターゲットグループに処理が流れていることが確認できました。
最後に
ターゲットグループを新しく追加したいが、作成するだけではALBにアタッチされないし、ALB側での設定が必要ということが勉強になりました。
良かったら参考にしてください。