コンテンツに移動
ネットワーキング

Private Service Connect に関するトラブルシューティングのベスト プラクティス

2024年3月7日
Google Cloud Japan Team

※この投稿は米国時間 2024 年 2 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。

Private Service Connect は、VPC ネットワークからサービス プロデューサーへのプライベートで安全な接続を確立するクラウド ネットワーキング サービスです。このサービスは、スピーディーなサービスの利用、データの保護、サービス管理の簡素化を支援することを目的としています。しかし、すべての複雑なネットワーキング設定と同様に、物事が計画どおり進むとは限りません。この投稿をお読みいただくと、Private Service Connect に関連する問題への対処に役立つヒントを、Cloud Support に問い合わせる前に見つけることができます。

Private Service Connect の概要

トラブルシューティングの説明に入る前に、Private Service Connect の基本事項について簡単にご説明します。設定を理解することが、問題を切り分けるための鍵となります。

Private Service Connect はプライベート サービス アクセスと似ていますが、サービス プロデューサーの VPC ネットワークがコンシューマー ネットワークに接続される際に VPC ネットワーク ピアリングが使用されない点が異なります。Private Service Connect のサービス プロデューサーは、Google、サードパーティ、あるいはユーザーの場合がありえます。

コンシューマーとプロデューサーについて考える場合、コンシューマー側で構成されている Private Service Connect の種類と、プロデューサー側で接続が想定されているマネージド サービスの種類を理解することが重要です。コンシューマーはサービスを要求する側で、プロデューサーはサービスを提供する側です。以下のように、さまざまな種類の Private Service Connect 構成があります。

  • Private Service Connect エンドポイント: IP アドレスが割り振られた転送ルールとして構成され、Google API バンドルやサービス アタッチメントをターゲットにしてマネージド サービスにマッピングされます。これらのマネージド サービスは、グローバル Google API から Google マネージド サービス、サードパーティ サービス、社内開発の組織内サービスまで、多岐にわたります。

    • コンシューマーが Google API バンドルを参照するエンドポイントを作成する場合、エンドポイントの IP アドレスはグローバル内部 IP アドレスになります。コンシューマーの VPC ネットワークおよび接続されたネットワークの全サブネットの外側にある内部 IP アドレスがコンシューマーによって選択されます。

    • コンシューマーがサービス アタッチメントを参照するエンドポイントを作成する場合、エンドポイントの IP アドレスは、サービス アタッチメントと同じリージョンのサブネットに含まれる、コンシューマーの VPC ネットワークのリージョン内部 IP アドレスになります。

  • Private Service Connect バックエンド: ロケーション Google API や公開済みサービスのサービス アタッチメントを参照する、種類が Private Service Connect の特殊なネットワーク エンドポイント グループで構成されます。サービス アタッチメントは、対応しているプロデューサーのロードバランサへのリンクです。

  • Private Service Connect インターフェース: サービス プロデューサーがサービス コンシューマーへの接続を開始できるようにする特殊なタイプのネットワーク インターフェースです。

Private Service Connect の仕組み

Private Service Connect を実現している基盤のネットワーク テクノロジーはネットワーク アドレス変換(NATであり、Andromeda という Google Cloud のソフトウェア定義ネットワーキング スタックが使用されています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_psc-arch.max-1200x1200.png

接続エンドポイントを使用し、内部ネットワーク パススルー ロードバランサに基づいて公開済みのサービスにアクセスするために、Private Service Connect がどのように動作するのかを詳しく説明します。このシナリオでは、サービス アタッチメントをターゲットとする転送ルールを構成することによって、コンシューマー側で Private Service Connect エンドポイントを設定します。このエンドポイントには、VPC ネットワーク内の IP アドレスが割り当てられます。

  1. VPC ネットワーク内の VM インスタンスからこのエンドポイントにトラフィックが送信されると、ホストのネットワーキング スタックでクライアントサイドのロード バランシングが適用され、ロケーション、負荷、健全性に基づいてトラフィックが宛先ホストに送信されます。
  2. パケットはカプセル化され、Google Cloud のネットワーク ファブリックを介してルーティングされます。
  3. 宛先ホストでは、パケット プロセッサにより送信元ネットワーク アドレス変換(SNAT)と宛先ネットワーク アドレス変換(DNAT)が適用されます。それぞれに、構成された NAT サブネットと、サービスのプロデューサー IP アドレスが使用されます。
  4. パケットは、ロードバランサのバックエンドとして機能する VM インスタンスに配信されます。

これらはすべて、Andromeda のコントロール プレーンによってオーケストレーションされます。いくつかの例外を除き、このプロセスでは中間に介在するものがないため、ラインレート パフォーマンスを実現できます。その他の詳細については、Private Service Connect のアーキテクチャとパフォーマンスをご覧ください。

以上を踏まえると、問題が発生する可能性のある主なコンポーネントが送信元ホスト、ネットワーク ファブリック、宛先ホスト、コントロール プレーンであることがわかるはずです。

トラブルシューティング ツールの理解

Google Cloud コンソールでは以下のようなツールが提供されており、Private Service Connect で発生しうる多くの問題のトラブルシューティングが可能です。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_-_psc-tools-overview.max-2200x2200.jpg

接続テスト

接続テストは、ネットワーク エンドポイント間の接続を確認できる診断ツールです。構成を分析し、場合によってはエンドポイント間でライブ データプレーン分析を行います。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/3_-_psc-demo-connectivity-test.gif
  • 構成分析は Private Service Connect をサポート: コンシューマーはソースシステムから PSC エンドポイント(または PSC NEG バックエンドを使用するコンシューマー ロードバランサ)への接続を確認でき、プロデューサーはサービスがコンシューマーに対して機能していることを確認できます。

  • ライブデータ プレーン分析は公開済みのサービスと Google API Private Service Connect エンドポイントをサポート: データプレーン経由でプローブ パケットを送信することで、ホスト間のネットワーク到達性とレイテンシを確認します。この機能は、レイテンシとパケットロスのベースライン診断を行います。ライブデータ プレーン分析を利用できない場合、コンシューマーは、サービス プロデューサーと連携することにより、tcpdump を使用して送信元と宛先で同時パケット キャプチャを収集できます。

Cloud Logging

Cloud Logging は、ロギングデータとイベントの保存、検索、分析、モニタリング、アラート通知を可能にするフルマネージド サービスです。

  • 監査ログで Private Service Connect のアクティビティをモニタリングできます。Private Service Connect リソースに対する意図的・非意図的な変更を追跡し、エラーや警告を確認し、エンドポイントの接続ステータスの変更をモニタリングします。監査ログは、主に設定時や構成の更新時における問題のトラブルシューティングに役立ちます。この例では、GCE 転送ルールのリソースに関する監査ログを調べることで、エンドポイントの接続ステータス変更(pscConnectionStatus)を追跡できます。
読み込んでいます...

  • VPC フローログで Private Service Connect のトラフィックをモニタリングします。
    コンシューマーは、クライアント サブネットで VPC フローログを有効にして、Private Service Connect エンドポイントへのトラフィック フローをモニタリングできます。これにより、コンシューマーは VM インスタンスからの外向きトラフィックを検証できるようになります。

    プロデューサーは、ターゲット ロードバランサのサブネットで VPC フローログを有効にし、VM インスタンスのバックエンドへの内向きトラフィックをモニタリングできます。

    VPC フローログは一部のサンプリング対象を抽出して記録するため、短時間だけ有効な接続をキャプチャできない可能性があることを考慮してください。より詳細な情報を取得するには、tcpdump を使用してパケット キャプチャを実行します。
https://storage.googleapis.com/gweb-cloudblog-publish/images/5_-_psc-flow-logging.max-2200x2200.jpg

Cloud Monitoring

もうひとつのオブザーバビリティ ツールとして Cloud Monitoring があり、Private Service Connect のパフォーマンスを可視化できます。

  • 公開済みのサービスをモニタリングするプロデューサー指標NAT ポート、接続済みの転送ルール、サービス アタッチメント ID による接続などのサービス アタッチメント リソースの使用状況を確認し、接続性やパフォーマンスの問題との相関関係を特定します。プロデューサー側に破棄されたパケットがあるかどうかを確認します(プレビュー機能)。 

    • 破棄された受信パケット数は、NAT リソースの枯渇に関連します。

    • 破棄された送信パケット数は、NAT 変換の状態が期限切れになった後もサービス バックエンドからコンシューマーにパッケージが送信されていることを示しています。この状況が発生した場合、NAT サブネットに関する推奨事項に従っていることを確認してください。パケット キャプチャにより、破棄されたパケットの性質をより詳細に把握できます。この MQL クエリを使用することで、プロデューサーは特定のサービス アタッチメントの NAT サブネット容量をモニタリングできます。
読み込んでいます...

  • エンドポイントをモニタリングするコンシューマー指標
    クライアントから Private Service Connect エンドポイントへの、作成、開始、終了された接続の数を追跡できます。パケットの破棄が見られる場合、プロデューサー指標も確認します。

    詳しくは、Private Service Connect の接続をモニタリングするをご覧ください。
https://storage.googleapis.com/gweb-cloudblog-publish/original_images/6_-_psc-demo-prod-metrics.gif

ヒント: 既知の上限(Private Service Connect の割り当てなど)に近づいていることを通知するためのアラートを事前に設定してください。

この例では、MQL クエリを使用して PSC 内部 LB 転送ルールの割り当ての使用状況を追跡できます。

読み込んでいます...

マニュアルを読む

Google Cloud ドキュメントを参照し、制限とサポートされている構成を確認します。

  • Private Service Connect ガイドに従う
    特に新規デプロイでは、コンポーネントが正しく構成されていないことや、互換性がないことや、サポートされていないことがよくあります。正しい手順に沿って構成していることを確認し、制限と互換性の図を確認してください。
  • VPC のリリースノートを確認する
    Private Service Connect に関連する既知の問題があるかどうかを確認し、望ましくない動作の原因となった可能性がある新機能を特定します。
https://storage.googleapis.com/gweb-cloudblog-publish/images/7_-_psc-docs.max-2200x2200.jpg

一般的な問題

発生している固有の状況と、Private Service Connect ジャーニーのライフサイクルにおける段階に応じて、適切なツールは異なります。まず、コンシューマーとプロデューサーのプロジェクト詳細を収集し、発生しているのが実際に Private Service Connect の問題であり、プライベート サービス アクセスの問題ではないことを確認します。

一般的には、関連コンポーネントや追加機能の設定時や更新時に問題が発生する可能性があります。また、実行時にすべての構成が完了していても、接続性やパフォーマンスの問題が発生することもあります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/8_-_psc-tshoot-flow.max-2200x2200.jpg

設定時の問題

構成ガイドに従い、範囲と制限について理解していることを確認してください。

  1. ログ エクスプローラで、エラー メッセージや警告を確認します。
  2. 構成ガイドに従い、設定に互換性があり、設定がサポートされていることを確認します。
  3. Private Service Connect の転送ルールなどの関連する割り当てを超過していないかどうかを確認します。
  4. Private Service Connect コンポーネントの構成の妨げになる可能性がある組織のポリシーがあるかどうかを確認します。

実行時の問題

問題を接続のコンシューマー側とプロデューサー側に切り分けます。

  1. コンシューマー側では、Private Service Connect ページの接続ステータスでエンドポイントまたはバックエンドが受け入れられているかどうかを確認します。または、プロデューサー側で、承認接続リストと拒否接続リスト、接続調整設定を確認します。
  2. エンドポイントに接続できない場合は、DNS の解決のバイパスをチェックし、接続テストを実行して、送信元エンドポイントの IP アドレスから宛先の PSC エンドポイントへのルートとファイアウォールを検証します。サービス プロデューサー側で、プロデューサー VPC ネットワーク内と、Private Service Connect NAT サブネットの IP アドレスから、プロデューサー サービスに接続できるかどうかを確認します。
  3. パフォーマンスの問題(ネットワーク レイテンシやパケットの破棄など)が発生している場合、ライブデータ プレーン分析を利用してベースラインを確認し、アプリケーションやサービスの問題を切り分けることができるかどうかを試します。また、Metrics Explorer で接続やポートの枯渇、パケットの破棄が起きていないかどうかを確認します。

Cloud サポートとの連携

問題を特定し、分析したら、追加の支援を依頼するため Cloud サポートへの連絡が必要になる場合があります。円滑なサポートのために、お客様のニーズ、ビジネスへの影響、収集した情報についての詳細をお伝えいただけるようご準備ください。

-テクニカル ソリューション コンサルタント Juan Fernández

投稿先