自動クロスリージョン フェイルオーバー用に Private Service Connect のヘルスチェックを構成する
このページでは、サービス プロデューサーが Private Service Connect のヘルスチェックを使用して、自動クロスリージョン フェイルオーバーをサポートするように公開サービスを構成する方法について説明します。
始める前に
Private Service Connect の健全性について確認する。
サポートする各リージョンで、次の要件を満たすターゲット サービスを作成します。
- 次のいずれかの内部ロードバランサを使用する必要があります。
- 次のいずれかのバックエンド タイプを使用する必要があります。
- ネットワーク エンドポイント タイプ
GCE_VM_IP
またはGCE_VM_IP_PORT
のゾーン ネットワーク エンドポイント グループ(NEG) - インスタンス グループ
- ネットワーク エンドポイント タイプ
ターゲット サービスを作成する手順は、選択したロードバランサとバックエンドのタイプによって異なります。ターゲット サービスの作成については、ロードバランサのドキュメントをご覧ください。
サービス アタッチメントを作成して、各ターゲット サービスを公開します。
Private Service Connect のヘルスチェックを使用するには、コンシューマーがクロスリージョン フェイルオーバーをサポートするロードバランサを使用してサービスにアクセスする必要があります。
プロジェクトで Compute Engine API を有効にします。
必要なロール
Private Service Connect のヘルスチェックを構成するために必要な権限を取得するには、プロジェクトに対する Compute ネットワーク管理者 (roles/compute.networkAdmin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、Private Service Connect の健全性を構成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Private Service Connect のヘルスを構成するには、次の権限が必要です。
-
compute.regionHealthAggregationPolicies.list
-
compute.regionHealthAggregationPolicies.get
-
compute.regionHealthAggregationPolicies.create
-
compute.regionHealthAggregationPolicies.update
-
compute.regionHealthAggregationPolicies.delete
-
compute.regionHealthSources.list
-
compute.regionHealthSources.get
-
compute.regionHealthSources.create
-
compute.regionHealthSources.update
-
compute.regionHealthSources.delete
-
compute.regionCompositeHealthChecks.list
-
compute.regionCompositeHealthChecks.get
-
compute.regionCompositeHealthChecks.create
-
compute.regionCompositeHealthChecks.update
-
compute.regionCompositeHealthChecks.delete
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
自動クロスリージョン フェイルオーバーをサポートするように Private Service Connect のヘルスチェックを構成する
以降のセクションでは、自動クロスリージョン フェイルオーバー用に Private Service Connect のヘルスチェックを構成する方法について説明します。
Private Service Connect のヘルスチェックでは、サービス コンシューマーによる構成は必要ありませんが、この機能は、コンシューマーがマルチリージョン デプロイでサポートされている Private Service Connect バックエンドを構成した場合にのみ機能します。サービス ユーザーが Private Service Connect のヘルスチェックを使用するように VPC ネットワークを構成する方法については、自動クロスリージョン フェイルオーバーをご覧ください。
ヘルス集計ポリシーを作成する
クロスリージョン フェイルオーバーをサポートする各リージョンに、1 つ以上のヘルス集約ポリシーを作成します。
ヘルス集計ポリシーは、バックエンド サービスが正常と見なされる基準を定義する再利用可能なリソースです。複数のバックエンド サービスに同じポリシーを適用することも、異なるヘルス要件を持つサービスに対して異なるポリシーを作成することもできます。
gcloud
gcloud beta compute health-aggregation-policies create
コマンドを使用します。
gcloud beta compute health-aggregation-policies create POLICY \ --region=REGION \ --healthy-percent-threshold=PERCENT_HEALTHY \ --min-healthy-threshold=MINIMUM_HEALTHY
次のように置き換えます。
POLICY
: ヘルス集約ポリシーの名前REGION
: ヘルス集約ポリシーのリージョンPERCENT_HEALTHY
: ヘルスソースが正常と見なされるために正常である必要があるバックエンド サービス内のエンドポイントの最小割合(例:75
)デフォルトは
60
です。エンドポイントは、インスタンス グループ内の VM またはネットワーク エンドポイント グループ(NEG)内のネットワーク エンドポイントにできます。MINIMUM_HEALTHY
: ヘルスソースが正常と見なされるために、バックエンド サービスで正常である必要があるエンドポイントの最小数デフォルトは
1
です。
健康状態のソースを作成する
公開されたサービスのリージョン インスタンスごとにヘルスソースを作成します。公開サービス インスタンスが複数のバックエンド サービスの健全性に依存している場合は、バックエンド サービスごとに個別のヘルスソースを作成します。
ヘルスソースは、ヘルス集計ポリシーを特定のバックエンド サービスにリンクするリソースです。複合ヘルスチェックは、1 つ以上のヘルスソースからヘルス状態を集計して、サービスの最終的な複合ヘルス状態を生成します。
gcloud
gcloud beta compute health-sources create
コマンドを使用します。
gcloud beta compute health-sources create HEALTH_SOURCE \ --region=REGION \ --source-type=BACKEND_SERVICE \ --sources=BACKEND_SERVICE \ --health-aggregation-policy=POLICY
次のように置き換えます。
HEALTH_SOURCE
: ヘルスソースの名前REGION
: ヘルスソースのリージョンヘルス集約ポリシーは、ヘルスソースと同じリージョンに存在する必要があります。
BACKEND_SERVICE
: ヘルスチェックのソースとして使用する単一のバックエンド サービスの名前バックエンド サービスは次の要件を満たす必要があります。
- ロード バランシング スキームは
INTERNAL
またはINTERNAL_MANAGED
である必要があります。 - 作成するヘルスソースと同じリージョンに存在する必要があります。
- バックエンドは、タイプ
GCE_VM_IP
またはGCE_VM_IP_PORT
のインスタンス グループまたはネットワーク エンドポイント グループである必要があります。
- ロード バランシング スキームは
POLICY
: このヘルスソースに適用するヘルス集約ポリシーの名前
複合ヘルスチェックを作成する
公開されたサービスの各リージョン インスタンスの複合ヘルスチェックを作成します。
複合ヘルスチェックは、関連付けられたヘルスソースのヘルス状態を集計して、最終的な複合ヘルス状態を作成します。最終的なヘルス ステータスは、ヘルス宛先として指定した転送ルールのリージョン公開サービス インスタンスに適用されます。
gcloud
gcloud beta compute composite-health-checks create
コマンドを使用します。
gcloud beta compute composite-health-checks create COMPOSITE_HEALTH_CHECK \ --region=REGION \ --health-sources=HEALTH_SOURCES \ --health-destination=HEALTH_DESTINATION
次のように置き換えます。
COMPOSITE_HEALTH_CHECK
: 複合ヘルスチェックの名前REGION
: 複合ヘルスチェックのリージョンHEALTH_SOURCES
: 複合ヘルスチェックに関連付ける 1 つ以上のヘルスソースの名前複数のヘルスソースをカンマ区切りリストで指定できます。
HEALTH_DESTINATION
: この複合ヘルスチェックから複合ヘルス状態を受信する転送ルールの URI(例:projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE
)転送ルールは、Private Service Connect ヘルスをサポートし、次の要件を満たすプロデューサー ロードバランサに関連付ける必要があります。
- ロード バランシング スキームは
INTERNAL
またはINTERNAL_MANAGED
である必要があります。 - 複合ヘルスチェックと同じリージョンに存在する必要があります。
- ロード バランシング スキームは
次のステップ
- Private Service Connect のヘルス構成を管理するには、Private Service Connect のヘルス構成を表示、更新、削除するをご覧ください。