スキップしてコンテンツを表示

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

所要時間2分
0

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

解決策

Application Load Balancer のターゲットグループに異なる重みを割り当てると、トラフィックを比例的に分散できます。

ターゲットグループを作成する

Application Load Balancer に登録するターゲットグループを作成するには、次の手順を実行します。

  1. Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
  2. Amazon EC2 インスタンスが配置されている AWS リージョンを選択します。
  3. ナビゲーションペインの [ロードバランシング][ターゲットグループ] を選択します。
  4. 最初のターゲットグループを作成するには、次の手順を実行します。
    [ターゲットグループを作成] を選択します。
    [ターゲットグループ名] でターゲットグループの名前を指定します。
    ターゲットグループのプロトコル、ポート、仮想プライベートクラウド (VPC) を設定します。
    [作成] を選択します。
    [インスタンス] では、1 つ以上のインスタンスを選択します。
    インスタンスのポートを指定します。
    [保留中として以下を含める] を選択し、[ターゲットグループを作成] を選択します。
  5. 加重ターゲットグループを設定するには、ターゲットグループを 2 つ以上作成する必要があります。ステップ 4 を繰り返して 2 番目のターゲットグループを作成します。

Application Load Balancer を作成する

重要: 使用したい Application Load Balancer がある場合は、「リスナールールを設定し、重みを割り当てる」セクションに進んでください。Application Load Balancer を作成するには、次の手順を実行します。

  1. ナビゲーションペインの [ロードバランシング][ロードバランサー] を選択します。
  2. [ロードバランサーの作成] を選択します。
  3. [ロードバランサータイプの選択][Application Load Balancer] を選択し、[作成] を選択します。
  4. Application Load Balancer の作成ウィザードで次の手順を実行します。
    ロードバランサーの名前を入力します。
    [インターネット向け] または [内部] を選択します。
    [IP アドレスタイプ] を選択します。
    使用する VPC および、2 つ以上のアベイラビリティーゾーンを選択します。
    [セキュリティグループ] でセキュリティグループを選択するか、作成します。
    [リスナーとルーティング] では、デフォルトの HTTP リスナーをポート 80 のままにします。
  5. [ルーティングの設定] ページで次の手順を実行します。
    [ターゲットグループ] では、[既存のターゲット] を選択します。
    [名前] では、最初に作成したターゲットグループを選択します。
    [次へ: ターゲットを登録] を選択します。
  6. [ターゲットの登録] ページで、登録したインスタンスが [登録済みインスタンス] に表示されていることを確認します。
    注: ターゲットを変更する場合は、Target Groups コンソールに戻ります。[ターゲットの登録] ページでは確認のみを行えます。
  7. [レビュー] ページで [作成] を選択します。
  8. Application Load Balancer の作成後、[閉じる] を選択します。
  9. 作成ウィザードが閉じると、ロードバランサーページに戻ります。ロードバランサーのリストから新しいロードバランサーを選択します。

リスナールールを設定し、重みを割り当てる

ターゲットグループに重みを割り当てるには、次の手順を実行して Application Load Balancer にリスナールールを設定します。

  1. [リスナー] タブで [ルールの表示/編集] を選択します。
  2. [ルールを編集] を選択します。
  3. [転送先] の横にある [編集] を選択します。
  4. 先ほど作成した 2 番目のターゲットグループを追加します。
  5. ターゲットグループの重みを 0 ~ 999 の範囲で入力します。
  6. [チェックマーク] を選択し、[更新] を選択します。
  7. (オプション) ターゲットグループがスティッキーである場合は、[グループレベルのスティッキネス] を設定します。
    注: グループレベルのスティッキネスを設定する際、ルーティングされたリクエストはセッション期間中、ターゲットグループに残ります。デフォルトの値は 1 時間です。セッション期間が終了すると、ロードバランサーはターゲットグループの重みに基づいてリクエストを分散します。

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>

この例では、T1 は最初のターゲットグループ (重み: 70%) からの応答を表し、T2 は 2 番目のターゲットグループからの応答 (重み: 30%) を表します。

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>

この例では、T2 は 2 番目のターゲットグループ (重み: 70%) からの応答を、T1 は最初のターゲットグループ (重み: 30%) からの応答を表します。実際のロードバランサー名を入力してください。

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ