Application Load Balancer の加重ターゲットグループを設定する方法を教えてください。

最終更新日: 2020 年 5 月 14 日

Application Load Balancer の加重ターゲットグループを登録しようと考えています。どうすればできますか?

簡単な説明

ロードバランサーに登録されたターゲットグループを使用して、トラフィックを Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、IP アドレスや AWS Lambda 関数に転送できます。加重ルーティングを使用すると、アプリケーションの異なるバージョン間でトラフィックを切り替えることができます。この設定により、アプリケーションへのトラフィックの分散を制御できます。リスナールールの転送アクションに複数のターゲットグループを追加し、各グループの重みを指定できます。この機能は、Blue-Green デプロイによく使われます。

解決方法

ターゲットグループの作成

1.    Amazon EC2 コンソールを開きます。

2.    ナビゲーションバーで、EC2 インスタンス用に選択したリージョンを選択します。

3.    ナビゲーションペインの [ロードバランシング] 下で、[ターゲットグループ] をクリックします。

4.    最初のターゲットグループを作成します。
[ターゲットグループの作成] を選択します。
[ターゲットグループ名] で、ターゲットグループの名前を指定します。
ターゲットグループのプロトコル、ポート、Virtual Private Cloud (VPC) を設定します。
[作成] を選択します。
[インスタンス] で、1 つ以上のインスタンスを選択します。
インスタンスのポートを指定します。
[登録済みに追加] を選択し、[保存] を選択します。

5.    ステップ 4 を繰り返して、2 番目のターゲットグループを作成します。

Application Load Balancer の作成 (まだ作成していない場合)

1.    ナビゲーションペインの [ロードバランシング] 下で、[ロードバランサー] を選択します。

2.    [ロードバランサーを作成] を選択します。

3.    [ロードバランサータイプの選択] で、[Application Load Balancer] を選択します。

4.    [続行] を選択します。

5.    Application Load Balancer の作成のステップを完了します。

6.    [ルーティングの設定] のステップを完了します。
[ターゲットグループ] で、[既存のターゲット] を選択します。
[名前] で、作成した最初のターゲットグループを選択します。
[次へ: ターゲットの登録] をクリックします。

7.    [ターゲットの登録] ページで、ターゲットグループに登録したインスタンスが [登録済みインスタンス] の下に表示されていることを確認します。ここでは、ターゲットグループに登録されているターゲットを変更することはできません。

8.    [確認] ページで、[作成] を選択します。

9.    ロードバランサーが正常に作成されたことが通知されたら、[閉じる] を選択します。

10.    新しく作成したロードバランサーを選択します。

リスナールールールを設定し、ターゲットグループに重みを追加する

1.    [リスナー] タブで、[ルールの表示/編集] を選択します。

2.    [ルールの編集] (鉛筆アイコン) を選択します。

3.    [転送先] オプションの横にある [編集] を選択します。

4.    他のターゲットグループを追加します。

5.    ターゲットグループの重み値を入力します。この値は 0~999 の数値である必要があります。

6.    [チェックマーク] を選択し、[更新] をクリックします。

7.    (オプション) ターゲットグループが維持されている場合は、[グループレベルの維持設定] を設定します。この設定を行うと、ルーティングされたリクエストは、セッションの期間中、ターゲットグループに残ります。デフォルト値は 1 時間です。維持設定期間が終了すると、リクエストはターゲットグループの重みに従って分散されます。

注意: Application Load Balancer は、重みに基づいてターゲットグループにのみトラフィックを分散します。ただし、特定のターゲットグループのすべてのターゲットがヘルスチェックに失敗した場合、Application Load Balancer は自動的にフェイルオーバーしません。代わりに、Application Load Balancer はすべてのリクエストを他のターゲットグループに送信します。

たとえば、最初のターゲットの重みが 70% で、2 番目のターゲットが 30% の場合、ほとんどのリクエストは最初のターゲットグループからのものです。

$ for X in `seq 6`; do curl -so -i /dev/null -w "" http://FINAL-721458494.us-east-2.elb.amazonaws.com; done

<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>

重みを切り替えて 2 番目のターゲットの重みを 70% に設定し、最初のターゲットの重みを 30% に設定した場合、ほとんどのリクエストは 2 番目のターゲットグループからのものになります。

$ for X in `seq 7`; do curl -so -i /dev/null -w "" http://FINAL-721458494.us-east-2.elb.amazonaws.com; done

<h1> This is T2 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>

この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合