自動クロスリージョン フェイルオーバーのための複合ヘルスについて
複合ヘルスを使用すると、サービス プロデューサーは、リージョンで公開されたサービスのヘルス状態を決定する条件を定義できます。これらのヘルス状態は、Private Service Connect バックエンドを使用するサービス コンシューマーの自動クロスリージョン フェイルオーバーをサポートします。ヘルス状態は、サービス プロデューサーのバックエンド(VM またはネットワーク エンドポイント)の集約された健全性に基づいており、外れ値検出(レスポンスの失敗から健全性を推測)よりも正確なフェイルオーバー シグナルをコンシューマーに提供します。
クロスリージョン フェイルオーバーを有効にするには、サービス プロデューサーとコンシューマーの両方がマルチリージョン デプロイを使用する必要があります。複合ヘルスを構成すると、公開された各リージョン サービスのヘルス状態がコンシューマーのロードバランサに自動的に伝播されます。あるリージョンの公開サービスが異常な状態になると、コンシューマーのロードバランサはそのサービスへのトラフィックの転送を停止し、代わりに別のリージョンの公開サービスの正常なインスタンスにトラフィックを転送します。
デプロイの要件
このセクションでは、サービス プロデューサーとサービス コンシューマーが、複合ヘルスを使用した自動クロスリージョン フェイルオーバーをサポートするマルチリージョン デプロイ用にリソースを構成する方法について説明します。
ロードバランサとバックエンドのタイプの要件の詳細については、 仕様をご覧ください。
プロデューサーの構成:
- 各リージョンにサービスをデプロイします。サービスの各リージョン インスタンスは、バックエンドによるアクセスをサポートするリージョンのロードバランサ上に構成する必要があります。
- サービス アタッチメントを作成して、サービスの各リージョン インスタンスを公開します。
コンシューマーの構成:
- 公開サービスにアクセスする Private Service Connect バックエンドを作成します。バックエンドは、クロスリージョン フェイルオーバーをサポートするロードバランサに基づいており、次の構成が含まれている必要があります。
- 各リージョンのサービス アタッチメントを指す、そのリージョンの Private Service Connect NEG。
- Private Service Connect NEG バックエンドを含むグローバル バックエンド サービス。
次の図は、マルチリージョン デプロイを示しています。
この例は、複数のリージョンで公開されているサービスに接続するコンシューマー グローバル外部アプリケーション ロードバランサを示しています。サポートされているグローバルまたはクロスリージョン ロードバランサを使用してマルチリージョン サービスにアクセスすると、サービス ユーザーは複合ヘルスを利用して、クロスリージョン フェイルオーバーを自動的に行うことができます(クリックして拡大)。
複合ヘルス コンポーネント
複合ヘルスは、次のコンポーネントを使用して、自動クロスリージョン フェイルオーバーをサポートします。
上の図は、 複合ヘルス の主要コンポーネントを示しています。ヘルス集計ポリシーは、ヘルスソースが 正常とみなされる条件を定義します。個々のヘルスソースのヘルス状態は、複合ヘルスチェックによって 1 つの状態に統合され、結果はヘルス宛先に配信されます。
ヘルス集計ポリシー
ヘルス集約ポリシーは、バックエンド サービスが正常とみなされるために満たす必要のある条件を定義するために作成するリソースです。ポリシーは、定期的なヘルスチェックによって決定されたバックエンド サービスのバックエンド(インスタンス グループ内の VM または NEG 内のネットワーク エンドポイント)のヘルス状態を集約します。
次の 2 つの構成可能な条件が満たされている場合、バックエンド サービスは正常とみなされます。
正常なエンドポイントの割合: 正常である必要があるバックエンドの最小割合。デフォルトは 60% です。
正常なエンドポイントの最小数: 正常でなければならないバックエンドの最小数。デフォルト値は 1 です。
たとえば、バックエンド サービスのバックエンドの 75% 以上が正常で、正常なバックエンドが 3 つ以上あることを指定するポリシーを作成できます。正常なバックエンドの数がこれらのしきい値のいずれかを下回ると、バックエンド サービスは異常とみなされます。
ヘルスソース
ヘルスソースは、複合ヘルスチェックの一部として、単一のバックエンド サービスの正常性を集計に使用できるようにするリソースです。ヘルスソースを作成するときに、次の項目を指定します。
- モニタリングするバックエンド サービス
- バックエンド サービスの健全性を判断するヘルス集計ポリシー
ヘルスソースは、ヘルス集約ポリシーで定義された条件を使用して、関連付けられたバックエンド サービスのヘルス状態を判断します。
複合ヘルスチェック
複合ヘルスチェックは、1 つ以上のヘルスソースのヘルス状態を集計して、リージョンで公開されたサービスの単一の複合ヘルス状態を生成するリソースです。関連付けられた各ヘルスソースが正常な場合、公開されたサービスは正常とみなされます。ヘルスソースのいずれかが異常な場合、サービスは異常と見なされます。
ヘルス宛先
ヘルス宛先は、複合ヘルスチェックから最終的な複合ヘルス状態を受け取ります。公開されたサービスの場合、ヘルス宛先はプロデューサーのロードバランサの転送ルールです。ヘルス状態は、この転送ルールに接続するコンシューマー ロードバランサに自動的に伝播されます。
仕様
複合ヘルス の仕様は次のとおりです。
動作:
- バックエンド サービス内の個々のバックエンドの状態は、標準のヘルスチェックによって判断されます。
- 構成可能なヘルス集約ポリシーは、個々のバックエンドの健全性に基づいて、バックエンド サービスの全体的なヘルス状態を決定します。
- 複合ヘルスチェックは、ヘルスソースとして構成された 1 つ以上のバックエンド サービスのヘルス状態を集約し、複合ヘルス状態を作成します。
- 複合ヘルス ステータスは、公開サービスの転送ルールであるヘルス宛先に提供されます。
- 複合ヘルス状態は、接続されたコンシューマー ロードバランサに自動的に伝播されます。異常な状態は、リージョン間の自動フェイルオーバーをトリガーします。
- デフォルトでは、ヘルス状態の遷移は Cloud Loggingに記録されます。プロデューサーは、ヘルスソースと複合ヘルスチェックのログを表示できます。コンシューマーは、複合ヘルスを使用する公開サービスに接続する Private Service Connect NEG のログを表示できます。 詳細については、複合ヘルスをモニタリングするをご覧ください。
構成:
- サービス プロデューサーとコンシューマーは、 マルチリージョン デプロイでリソースを構成する必要があります。
- 公開された各リージョン サービスは、 複合ヘルスをサポートするロードバランサを使用する必要があります。
- ヘルスソースとして使用するバックエンド サービスには、ロード
バランシング スキーム
INTERNALまたはINTERNAL_MANAGEDが必要です。 - 公開されたサービスには、次のいずれかのバックエンド タイプが必要です。
- タイプ
GCE_VM_IP_PORTのネットワーク エンドポイント グループ - タイプ
GCE_VM_IPのネットワーク エンドポイント グループ - マネージド インスタンス グループまたは非マネージド インスタンス グループ
- タイプ
- 公開されたサービスには、 クロスリージョン フェイルオーバーをサポートする ロードバランサを使用する Private Service Connect バックエンドからアクセスする必要があります。
- すべての複合ヘルス リソースはリージョンであり、モニタリングする公開サービスと同じリージョンに存在する必要があります。
- ヘルスソース リソースは、1 つのバックエンド サービスのみを参照する必要があります。
- 複合ヘルスチェック リソースは、1~10 個のヘルスソースを参照する必要があります。
- 転送ルールは、1 つの複合ヘルスチェックのヘルス宛先としてのみ使用できます。
ヘルス状態
複合ヘルスは、次の状態を使用して、公開サービスとバックエンド サービスの健全性を表します。
| ヘルス状態 | モニタリング対象リソース | 説明 |
|---|---|---|
HEALTHY |
ヘルスソース | 関連付けられたバックエンド サービスは、ヘルス集約ポリシーで定義されているとおりに正常です。 |
| 複合ヘルスチェック | 関連付けられた各ヘルスソースが正常であるため、公開されたサービスは正常です。 | |
| Private Service Connect NEG | 関連付けられた公開サービスは、プロデューサーの複合ヘルスチェックで定義されているとおりに正常です。 | |
UNHEALTHY |
ヘルスソース | バックエンド サービスが、ヘルス集約ポリシーで定義された基準を満たしていません。 |
| 複合ヘルスチェック | 関連付けられた 1 つ以上のヘルスソースが異常なため、公開されたサービスは異常です。 | |
| Private Service Connect NEG | 関連付けられた公開サービスは、プロデューサーの複合ヘルスチェックで定義されているとおりに異常です。このステータスは、クロスリージョン フェイルオーバーをトリガーできます。 | |
UNKNOWN |
ヘルスソース | ヘルス状態はまだご利用いただけません。これは、リソースが新しく作成または構成されたときに発生する一時的な状態です。 |
| 複合ヘルスチェック | 関連付けられたヘルスソースは異常ではありませんが、1 つ以上のヘルスソースが不明です。 | |
| Private Service Connect NEG | 関連付けられた公開サービスのヘルス状態はまだご利用いただけません。 |
制限事項
複合ヘルスには次の制限があります。
- 複合ヘルスは、2025 年 10 月 20 日以降に作成されたリソース(プロデューサー転送ルール、サービス アタッチメント、Private Service Connect NEG など)でのみサポートされます。この日付より前に作成されたリソースに対して複合ヘルスを構成すると、複合ヘルス ステータスが正しく認識されない可能性があります。2025 年 10 月 20 日より前に作成されたリソースの複合ヘルス ステータスが必要な場合は、リソースを再作成する必要があります。
- バックエンド サービスや、それらが参照する転送ルールなど、すべての複合ヘルス リソースは、同じプロジェクトに存在する必要があります。
- あるサービスの複合ヘルス状態を別のサービスのヘルスソースとして使用することはできません。
- 接続されているコンシューマーに影響を与えないヘルスチェック構成をテストするモードはありません。構成された複合ヘルスチェックは、フェイルオーバーを直ちにトリガーできます。
- 複合ヘルスは、公開サービスにアクセスする Private Service Connect バックエンドのみをサポートします。
料金
料金については、VPC の料金をご覧ください。
次のステップ
- 複合ヘルスを構成するには、 自動クロスリージョン フェイルオーバー用に複合ヘルスを構成するをご覧ください。