内部パススルー ネットワーク ロードバランサのゾーン アフィニティ

ロードバランサのバックエンド サービスで構成されたゾーン アフィニティを使用すると、マルチゾーン アーキテクチャのメリットを維持しながら、ゾーンをまたぐトラフィックを制限し、レイテンシを短縮して、パフォーマンスを向上させることができます。

内部パススルー ネットワーク ロードバランサは、3 つのゾーン アフィニティ オプションをサポートしています。各オプションで、サポートされているクライアントと同じゾーン内の適格なバックエンドに新しい接続をルーティングする際の優先度が異なります。ゾーン アフィニティは、ロードバランサが新しい接続に適格なバックエンドを選択した後に、適格なバックエンドのセットを変更します。ロードバランサの接続トラッキング テーブルにある確立済みの接続は、ゾーン アフィニティの影響を受けません。

互換性

ゾーン アフィニティは、次の内部パススルー ネットワーク ロードバランサと互換性があります。

ゾーン アフィニティは、次の条件を満たす場合にのみ対称ハッシュと互換性があります。

  • 順方向と逆方向の両方の内部パススルー ネットワーク ロードバランサで、ゾーン アフィニティが有効になっています。
  • 送信元 VM からのトラフィックは、同じゾーン内の受信側 VM にのみ転送されます。

ゾーン アフィニティは、次の内部パススルー ネットワーク ロードバランサと互換性がありません。

互換性のあるクライアント

ゾーン アフィニティは、ロードバランサと同じリージョンにある VM クライアントでのみ可能です。ゾーン アフィニティは、次のクライアントと互換性がありません。これらのクライアントは常に、ゾーン アフィニティが無効になっている場合と同様に動作します。

  • クライアント Cloud VPN トンネルとクライアント Cloud Interconnect VLAN アタッチメント: Cloud VPN トンネルCloud Interconnect VLAN アタッチメントは、ゾーンリソースではなくリージョン リソースです。Cloud VPN トンネルまたは VLAN アタッチメントを介して転送されるパケットは、ロードバランサと同じリージョンにあるかどうかに関係なく、ゾーン アフィニティをサポートしません。

  • ロードバランサのリージョンと一致しないリージョンのクライアント VM: グローバル アクセスが有効になっている場合、1 つのリージョンにある内部パススルー ネットワーク ロードバランサには、他のすべてのリージョンのクライアントからアクセスできます。クライアント VM がロードバランサのリージョンとは異なるリージョンにある場合、クライアント VM はロードバランサのバックエンドと共通のゾーンを共有しません。

ゾーン一致

ゾーン一致は、ゾーン アフィニティがトリガーされる条件を表します。ロードバランサは、構成されたゾーン アフィニティを提供するために、対象となるバックエンドの元のセットを変更する場合があります。適格なバックエンドの元のセットの変更は、バックエンドの選択と接続トラッキング プロセスの適格なバックエンドの識別ステップの後に行われます。

ゾーン アフィニティ ロジックをトリガーするには、次のイベント シーケンスが発生する必要があります。

  1. ゾーン アフィニティを有効にする

    ゾーン アフィニティが有効になっている場合は、クライアントが互換性のあるクライアントかどうかを判断する必要があります。

  2. クライアントが互換性のあるクライアントかどうかを判断する

    互換性のあるクライアントの場合は、ゾーン一致が発生するかどうかを判断します。

  3. ゾーン一致が発生するかどうかを判断する

    ゾーン一致とは、クライアント VM が、関連するタイプの構成済みバックエンドを少なくとも 1 つ含むゾーンにあることを意味します。構成可能なさまざまなバックエンドについては、ゾーン一致条件のセクションをご覧ください。

    次のいずれかに該当する場合、ゾーン一致は発生しません。

    • ゾーン アフィニティが無効になっている
    • 互換性のあるクライアントではない
  4. ゾーン アフィニティ ロジックを適用する

    ゾーン一致が発生した場合は、構成されているゾーン アフィニティ オプションに応じてゾーン アフィニティ ロジックを適用します。ゾーン アフィニティを有効にするオプションは次のとおりです。

    • ZONAL_AFFINITY_STAY_WITHIN_ZONE
    • ZONAL_AFFINITY_SPILL_CROSS_ZONE(スピルオーバー率が 0
    • ZONAL_AFFINITY_SPILL_CROSS_ZONE(スピルオーバー率が 0 以外)

    ゾーン一致が発生した場合、構成されているゾーン アフィニティ オプションのタイプに応じて、適格なバックエンドの元のセットが絞り込まれることも、置き換えられることもあります。また、変更されない場合もあります。クライアントからの新しい接続は、適格なバックアップの変更後のセットに転送されます。

ゾーン一致条件

次の表は、ロードバランサがトラフィックをクライアントのゾーンに制限できるかどうかを示しています。3 列目の条件が満たされていない場合、ゾーン アフィニティは無視され、新しい接続は適格なバックエンドに転送されます。

フェイルオーバー構成 適確なバックエンド1 ゾーン一致の条件
フェイルオーバー ポリシーがない 正常なバックエンドまたはすべてのバックエンド クライアント VM は、構成済みのバックエンドが 1 つ以上存在するゾーンにあります。構成済みのバックエンドは、適格なバックエンドの場合もあれば、そうでない場合もあります。
フェイルオーバー ポリシーが構成されている すべての正常なプライマリ バックエンドまたはすべてのプライマリ バックエンド2 クライアント VM は、構成済みのプライマリ バックエンドが 1 つ以上存在するゾーンにあります。構成済みのプライマリ バックエンドは、適格なバックエンドの場合もあれば、そうでない場合もあります。
フェイルオーバー ポリシーが構成されている すべての正常なフェイルオーバー バックエンド3 クライアント VM は、構成済みのフェイルオーバー バックエンドが 1 つ以上存在するゾーンにあります。構成済みのフェイルオーバー バックエンドは、適格なバックエンドの場合もあれば、そうでない場合もあります。
1 適格なバックエンドは、すべての正常なバックエンド、すべてのバックエンド、すべての正常なプライマリ バックエンド、すべての正常なフェイルオーバー バックエンド、またはすべてのプライマリ バックエンドである可能性があります。適格なバックエンドの識別について詳しくは、内部パススルー ネットワーク ロードバランサのトラフィック分散ページのバックエンドの選択と接続トラッキング セクションにあるステップ 2.1 適格なバックエンドを識別するをご覧ください。

2 ロードバランサはフェイルバック モードです。
3 ロードバランサはフェイルオーバー モードです。

ゾーン一致の例

次の状況でゾーン一致があるかどうか考えてみましょう。

  • フェイルオーバー ポリシーが構成されている
  • ゾーン アフィニティが有効になっている
  • クライアントがゾーン A にある
  • プライマリ バックエンドがゾーン B とゾーン C にのみ存在する
  • ゾーン A にプライマリ バックエンドがない

ゾーン アフィニティが有効になっていて、互換性のあるクライアントがある場合でも、クライアント VM のゾーンであるゾーン A にプライマリ バックエンドがないため、ゾーン一致は発生していません。このため、ゾーン アフィニティは無視されます。

ゾーン アフィニティ オプション

内部パススルー ネットワーク ロードバランサは、次のゾーン アフィニティ オプションをサポートしています。

  • ZONAL_AFFINITY_DISABLED(デフォルト): ゾーン アフィニティは無効になっています。ロードバランサは、適格なバックエンドのセットを変更せずに、新しい接続に適格なバックエンドを選択します

  • ZONAL_AFFINITY_STAY_WITHIN_ZONE: ゾーン アフィニティが有効になっています。ゾーン一致が発生すると、ロードバランサは、適格なバックエンドの元のセットを絞り込むか、新しいセットに置き換えることで、トラフィックをクライアントのゾーン内に保持します。このオプションの詳細については、ZONAL_AFFINITY_STAY_WITHIN_ZONE の仕組みをご覧ください。

  • ZONAL_AFFINITY_SPILL_CROSS_ZONE: ゾーン アフィニティが有効になっています。ゾーン一致が発生すると、ロードバランサは適格なバックエンドのセットを絞り込むことも、元のセットを変更しない場合もあります。このオプションを使用すると、クライアントのゾーンに正常なバックエンドが十分にない場合、トラフィックが他のゾーンにスピルオーバーします。スピルオーバーは、スピルオーバー率によって制御されます。このオプションの詳細については、ZONAL_AFFINITY_SPILL_CROSS_ZONE とスピルオーバー率の仕組みをご覧ください。

内部パススルー ネットワーク ロードバランサのバックエンド サービスでゾーン アフィニティを構成する方法については、ゾーン アフィニティを使用するをご覧ください。

ZONAL_AFFINITY_STAY_WITHIN_ZONE の仕組み

ゾーン アフィニティが ZONAL_AFFINITY_STAY_WITHIN_ZONE に設定され、ゾーン一致が発生した場合、ロードバランサは次のいずれかを行い、トラフィックをクライアントのゾーン内に保持します。

  • 適格なバックエンドの元のセットを絞り込む

    クライアントのゾーンに 1 つ以上の適格なバックエンドがある場合、ロードバランサは次の処理を行い、適格なバックエンドのセットを絞り込みます。

    • クライアントのゾーンにない適格なバックエンドをすべて破棄する
    • クライアントのゾーンにある適格なバックエンドのみを使用する

    絞り込み後の適格なバックエンドのセットは、適格なバックエンドの元のセットのサブセットになります。

  • 適格なバックエンドの元のセットを置き換える

    クライアントのゾーンに条件を満たすバックエンドがない場合、ゾーン アフィニティをトリガーするためにゾーン一致が発生したため、クライアントのゾーンには他の構成済みバックエンド(適格なバックエンドのセットに含まれていないバックエンド)が存在します。この場合、ロードバランサは、フェイルオーバー ポリシーが構成されているかどうかを確認します。構成されている場合は、フェイルオーバーの状態に基づいて、クライアントのゾーン内の異常なバックエンドを含む新しいセットで、適格なバックエンドのセットを置き換えます。

    この適格なバックエンドの新しいセットは、次のいずれかで構成されます。

    • フェイルオーバー ポリシーが構成されていない場合、置換後の適格なバックエンドのセットは、クライアントのゾーンにあるすべての異常なバックエンドで構成されます。

    • フェイルオーバー ポリシーが構成されていて、元の適格なバックエンドがプライマリ バックエンドだった場合、置換後の適格なバックエンドのセットは、クライアントのゾーンにある異常なプライマリ バックエンドで構成されます。

    • フェイルオーバー ポリシーが構成されていて、元の適格なバックエンドがフェイルオーバー バックエンドだった場合、置換後の適格なバックエンドのセットは、クライアントのゾーン内の異常なフェイルオーバー バックエンドで構成されます。

次の表に、ZONAL_AFFINITY_STAY_WITHIN_ZONE オプションの絞り込みと置換のシナリオを示します。

適格なバックエンドの元のセット (適格なバックエンドの元のセットの)少なくとも 1 つの適格なバックエンドがクライアントのゾーンにある場合: クライアントのゾーンに(適格なバックエンドの元のセットにある)適格なバックエンドがない場合:
フェイルオーバー ポリシーが構成されていない
正常なすべてのバックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄して、適格なバックエンドの元のセットを絞り込みます 適格なバックエンドの元のセットを置き換えます。適格なバックエンドの新しいセットは、クライアントのゾーンにあるすべての異常なバックエンドで構成されます。
すべてのバックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄して、適格なバックエンドの元のセットを絞り込みます このような状況はありえません。1
フェイルオーバー ポリシーが構成されている
正常なすべてのプライマリ バックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄して、適格なバックエンドの元のセットを絞り込みます 適格なバックエンドの元のセットを置き換えます。適格なバックエンドの新しいセットは、クライアントのゾーンにあるすべての異常なプライマリ バックエンドで構成されます。
正常なすべてのフェイルオーバー バックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄して、適格なバックエンドの元のセットを絞り込みます 適格なバックエンドの元のセットを置き換えます。適格なバックエンドの新しいセットは、クライアントのゾーンにあるすべての異常なフェイルオーバー バックエンドで構成されます。
すべてのプライマリ バックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄して、適格なバックエンドの元のセットを絞り込みます このような状況はありえません。2

1 ゾーン アフィニティにはゾーンの一致が必要です。フェイルオーバー ポリシーが構成されていない場合、ゾーン一致には、クライアントと同じゾーンに少なくとも 1 つのバックエンドが構成されている必要があります。適格なバックエンドがすべて構成済みのバックエンドである場合、クライアントと同じゾーンに少なくとも 1 つの適格なバックエンドが常に存在します。

2 ゾーン アフィニティにはゾーンの一致が必要です。フェイルオーバー ポリシーが構成され、有効なバックエンドがプライマリ バックエンドである場合、ゾーン一致には、クライアントと同じゾーンに構成されたプライマリ バックエンドが少なくとも 1 つ必要です。適格なバックエンドがすべて構成済みのプライマリ バックエンドである場合、クライアントと同じゾーンに 1 つ以上の適格なバックエンドが常に存在します。

ZONAL_AFFINITY_STAY_WITHIN_ZONE オプションについては、次の点に注意してください。

  • このゾーン アフィニティ オプションでは、適格なバックエンドの元のセットが変更されることはありません。
  • このゾーン アフィニティ オプションでは、ゾーン一致条件が満たされている場合、異常なバックエンドを使用することになっても、クライアントのゾーンのバックエンドが優先されます。

ZONAL_AFFINITY_SPILL_CROSS_ZONE とスピルオーバー率の仕組み

ゾーン アフィニティが ZONAL_AFFINITY_SPILL_CROSS_ZONE に設定され、ゾーン一致が発生した場合、クライアントの適格なバックエンドのセットが絞り込まれることも、変更されない場合もあります。

適格なバックエンドの元のセットが変更されていない場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされる可能性があります。この分散は、構成可能なスピルオーバー率によって異なります。スピルオーバー率により、トラフィックが他のゾーンの適格なバックエンドにスピルオーバーを開始するタイミングが決まります。

構成可能なスピルオーバー率は、トラフィックをクライアントのゾーン内に維持するかどうかのしきい値を示します。全体に占める正常で適格なバックエンドの割合が、定義されたスピルオーバー率を下回ると、ゾーン内のクライアントからの新しい接続はすべて、他のゾーン内の適格なバックエンドに分散されます。スピルオーバー率の値は 0.01.0 の範囲(両端を含む)で指定できます。

ZONAL_AFFINITY_SPILL_CROSS_ZONE ゾーン アフィニティの構成時にスピルオーバー率を指定しない場合、Google Cloud はデフォルト値の 0.0 を使用します。

スピルオーバー率が 0 の場合

構成されたスピルオーバー率が 0.0 で、次のいずれかの条件を満たす場合、ロードバランサはクライアントのゾーンにない適格なバックエンドをすべて破棄し、適格なバックエンドのセットを絞り込みます。

  • フェイルオーバー ポリシーが構成されていない場合、適格なバックエンドがすべて正常なバックエンドであり、少なくとも 1 つの適格なバックエンドがクライアントのゾーンに存在する。
  • フェイルオーバー ポリシーが構成されている場合、適格なバックエンドがすべて正常なプライマリ バックエンドであり、少なくとも 1 つの適格なバックエンドがクライアントのゾーンに存在する。
  • フェイルオーバー ポリシーが構成されている場合、適格なバックエンドがすべて正常なフェイルオーバー バックエンドであり、少なくとも 1 つの適格なバックエンドがクライアントのゾーンに存在する。

クライアントのゾーンに適格なバックエンドが存在しない場合:

  • ロードバランサは、適格なバックエンドの元のセットを保持します。
  • 新しい接続は、他のゾーンの適格なバックエンドにスピルオーバーされます。

次の表に、構成済みのスピルオーバー率が 0.0 の場合の ZONAL_AFFINITY_SPILL_CROSS_ZONE オプションの絞り込みシナリオの概要を示します。

適格なバックエンドの元のセット (適格なバックエンドの元のセットの)少なくとも 1 つの適格なバックエンドがクライアントのゾーンにある場合: クライアントのゾーンに(適格なバックエンドの元のセットにある)適格なバックエンドがない場合:
フェイルオーバー ポリシーが構成されていない
正常なすべてのバックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄して、適格なバックエンドの元のセットを絞り込みます 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続は他のゾーンの適格なバックエンドにスピルオーバーします。
すべてのバックエンド 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。 このような状況はありえません。1
フェイルオーバー ポリシーが構成されている
正常なすべてのプライマリ バックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄し、適格なバックエンドの元のセットを絞り込みます。 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続は他のゾーンの適格なバックエンドにスピルオーバーします。
正常なすべてのフェイルオーバー バックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄し、適格なバックエンドの元のセットを絞り込みます。 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続は他のゾーンの適格なバックエンドにスピルオーバーします。
すべてのプライマリ バックエンド 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。 このような状況はありえません。2

1 ゾーン アフィニティにはゾーンの一致が必要です。フェイルオーバー ポリシーが構成されていない場合、ゾーン一致には、クライアントと同じゾーンに少なくとも 1 つのバックエンドが構成されている必要があります。適格なバックエンドがすべて構成済みのバックエンドである場合、クライアントと同じゾーンに少なくとも 1 つの適格なバックエンドが常に存在します。

2 ゾーン アフィニティにはゾーンの一致が必要です。フェイルオーバー ポリシーが構成され、有効なバックエンドがプライマリ バックエンドである場合、ゾーン一致には、クライアントと同じゾーンに構成されたプライマリ バックエンドが少なくとも 1 つ必要です。適格なバックエンドがすべて構成済みのプライマリ バックエンドである場合、クライアントと同じゾーンに 1 つ以上の適格なバックエンドが常に存在します。

0 以外のスピルオーバー率

構成済みのスピルオーバー率が 0.0 より大きく 1.0 以下の場合、ロードバランサは次のいずれかの比率を計算します。

  • フェイルオーバー ポリシーが構成されていない場合、クライアントのゾーン内の適格で正常なバックエンドの数を、クライアントのゾーン内の構成済みのバックエンドの数で割って比率を計算します。

    $$ \frac{\text{count}(\text{Eligible and healthy backends})_{\text{Client's zone}}}{\text{count}(\text{Configured backends})_{\text{Client's zone}}} $$
  • フェイルオーバー ポリシーが構成されていて、すべての適格なバックエンドがプライマリ バックエンドである場合、クライアントのゾーン内の適格で正常なバックエンドの数を、クライアントのゾーン内の構成済みのプライマリ バックエンドの数で割って比率を計算します。

    $$ \frac{\text{count}(\text{Eligible and healthy primary backends})_{\text{Client's zone}}}{\text{count}(\text{Configured primary backends})_{\text{Client's zone}}} $$
  • フェイルオーバー ポリシーが構成されていて、適格なバックエンドがすべてフェイルオーバー バックエンドの場合、クライアントのゾーン内の適格で正常なバックエンドの数を、クライアントのゾーン内の構成済みのフェイルオーバー バックエンドの数で割って比率を計算します。

    $$ \frac{\text{count}(\text{Eligible and healthy failover backends})_{\text{Client's zone}}}{\text{count}(\text{Configured failover backends})_{\text{Client's zone}}} $$

ロードバランサは、計算された比率をスピルオーバー率と比較します。計算された比率がスピルオーバー率以上の場合、ロードバランサは、クライアントのゾーンにない適格なバックエンドをすべて破棄し、適格なバックエンドのセットを絞り込みます。それ以外の場合、ロードバランサは適格なバックエンドの元のセットを使用します。

比率を計算する際は、次の点に注意してください。

  • 適格なバックエンドは、すべての正常なバックエンド、すべてのバックエンド、すべての正常なプライマリ バックエンド、すべての正常なフェイルオーバー バックエンド、またはすべてのプライマリ バックエンドである可能性があります。

  • 適格なバックエンドがすべてのバックエンドまたはすべてのプライマリ バックエンドで構成されている場合を除き、構成済みのバックエンド、構成済みのプライマリ バックエンド、または構成済みのフェイルオーバー バックエンドのセットには、適格なバックエンド以外のバックエンドが含まれています。

  • スピルオーバー率が 1.0 の場合は、次のいずれかに該当します。

    • フェイルオーバー ポリシーが構成されていない場合、適格なバックエンドのセットはすべて正常なバックエンドである必要があり、クライアントのゾーン内の適格なバックエンドの数は、クライアントのゾーンで構成済みのバックエンドの数と一致している必要があります。

    • フェイルオーバー ポリシーが構成されていて、すべての適格なバックエンドがプライマリ バックエンドである場合、適格なバックエンドのセットに正常なプライマリ バックエンドがすべて含まれている必要があり、クライアントのゾーン内の適格なバックエンドの数は、クライアントのゾーンで構成済みのプライマリ バックエンドの数と一致している必要があります。

    • フェイルオーバー ポリシーが構成されていて、適格なバックエンドがすべてフェイルオーバー バックエンドである場合、適格なバックエンドのセットに正常なフェイルオーバー バックエンドがすべて含まれている必要があります。また、クライアントのゾーン内の適格なバックエンドの数は、クライアントのゾーン内で構成済みのフェイルオーバー バックエンドの数と一致している必要があります。

次の表に、構成済みのスピルオーバー率が 0.0 以外の場合の ZONAL_AFFINITY_SPILL_CROSS_ZONE オプションの絞り込みシナリオの概要を示します。

適格なバックエンドの元のセット 計算された比率 >= スピルオーバー率 計算された比率 < スピルオーバー率
フェイルオーバー ポリシーが構成されていない
正常なすべてのバックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄し、適格なバックエンドの元のセットを絞り込みます。 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。
すべてのバックエンド 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。
フェイルオーバー ポリシーが構成されている
正常なすべてのプライマリ バックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄し、適格なバックエンドの元のセットを絞り込みます。 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。
正常なすべてのフェイルオーバー バックエンド クライアントのゾーンにない適格なバックエンドをすべて破棄し、適格なバックエンドの元のセットを絞り込みます。 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。
すべてのプライマリ バックエンド 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。 変更なし。適格なバックエンドの元のセットを使用します。この場合、新しい接続はクライアントのゾーン内の適格なバックエンドに送信されるか、他のゾーン内の適格なバックエンドにスピルオーバーされます。

スピルオーバー率の例

次の例は、フェイルオーバー ポリシーが構成されていない場合の ZONAL_AFFINITY_SPILL_CROSS_ZONE の動作を示しています。

  • 1.0 のスピルオーバー率を構成するときにゾーン アフィニティを適用するには、次の条件を満たす必要があります。

    • 適格なバックエンドのセットは、すべての正常なバックエンドである必要があります。
    • クライアントのゾーン内の正常なバックエンドの数が、クライアントのゾーン内で構成済みのバックエンドの数と一致している必要があります。

    スピルオーバー率が 1.0 の場合、クライアントのゾーン内の適格なバックエンドがすべて正常である必要があります。これにより、新しい接続はすべてクライアントのゾーン内のバックエンドにのみ分散されます。1 つのバックエンドが異常になっても、ロードバランサは新しい接続の一部を他のゾーンのバックエンドに分散します。

  • 0.8 のスピルオーバー率を構成するときにゾーン アフィニティを適用するには、次の条件を満たす必要があります。

    • 適格なバックエンドのセットは、すべての正常なバックエンドである必要があります。
    • クライアントのゾーン内の適格で正常なバックエンドの数を、クライアントのゾーン内の構成済みバックエンドの数で割った値が 0.8 以上である必要があります。

    スピルオーバー率が 0.8 の場合、クライアントのゾーン内の適格なバックエンドの 80% 以上が正常である必要があります。これにより、新しい接続はすべてクライアントのゾーン内のバックエンドにのみ分散されます。クライアントのゾーン内のバックエンドの 80% 未満が正常な場合、ロードバランサは新しい接続の一部を他のゾーンのバックエンドに分散します。

  • 0.0 のスピルオーバー率を構成するときにゾーン アフィニティを適用するには、次の条件を満たす必要があります。

    • 適格なバックエンドのセットは、すべての正常なバックエンドである必要があります。
    • クライアントのゾーンに、適格で正常なバックエンドが少なくとも 1 つ存在する必要があります。

    スピルオーバー率が 0.0 の場合、クライアントのゾーンに正常なバックエンドが 1 つ以上ある限り、新しい接続はすべてクライアントのゾーン内のバックエンドに分散されます。スピルオーバー率が 0.0 で、クライアントのゾーンに正常なバックエンドがない場合、ロードバランサは新しい接続をすべてクライアントのゾーン以外のゾーンにある正常なバックエンドに分散します。

次の図は、スピルオーバー率が 0.8 の場合を示しています。

  • ゾーン 1 とゾーン 2 には、それぞれ 5 つの構成済みバックエンドが存在します。

  • 適格なバックエンドの元のセットには、構成された 10 個のバックエンドのうち 8 個が含まれています。

    • ゾーン 1 で構成された 5 つのバックエンドはすべて正常です。

    • ゾーン 2 で構成された 3 つのバックエンドが正常です。

ゾーン 1 にある互換性のあるクライアントの場合:

  • ゾーン 1 に構成されたバックエンドが 1 つ以上存在するため、ゾーン一致が発生します。

  • ゾーン 1 の適格で正常なバックエンドの数とゾーン 1 の構成済みのバックエンドの数の比率は 5/5 = 1.0 です。

  • ゾーン 1 の互換性のあるクライアントの場合: 計算された比率 1.0 がスピルオーバー率 0.8 よりも大きいため、ロードバランサは、ゾーン 1 にない適格なバックエンドを破棄し、適格なバックエンドのセットを絞り込みます。その結果、ゾーン 1 の互換性のあるクライアントからの新しい接続は、ゾーン 1 の 5 つの適格で正常なバックエンドにのみ分散されます。

ゾーン 2 にある互換性のあるクライアントの場合:

  • ゾーン 2 に構成されたバックエンドが少なくとも 1 つ存在するため、ゾーン一致が発生します。

  • ゾーン 2 の適格で正常なバックエンドの数とゾーン 2 の構成済みのバックエンドの数の比率は 3/5 = 0.6 です。

  • ゾーン 2 の互換性のあるクライアントの場合: 計算された比率 0.6 がスピルオーバー率 0.8 を下回るため、ロードバランサは適格なバックエンドのセットを変更しません。その結果、ゾーン 2 の互換性のあるクライアントからの新しい接続は、元の 8 つの適格で適格なバックエンドに分散されます(ゾーン 1 に 5 つ、ゾーン 2 に 3 つ)。

内部パススルー ネットワーク ロードバランサのゾーン アフィニティの例。
一部のトラフィックが別のゾーンにスピルオーバーしている(クリックして拡大)。

次のステップ