メインコンテンツまでスキップ
メインコンテンツまでスキップ

Private Service Connect

Scale plan feature

GCP PSC is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

Private Service Connect(PSC)は、消費者が仮想プライベートクラウド(VPC)ネットワーク内で管理されたサービスにプライベートにアクセスできるようにするGoogle Cloudのネットワーキング機能です。同様に、管理サービスプロデューサーは、これらのサービスを独自の別のVPCネットワークでホストし、消費者へのプライベート接続を提供することができます。

サービスプロデューサーは、プライベートサービスコネクトサービスを作成することで、アプリケーションを消費者に公開します。サービス消費者は、これらのプライベートサービスコネクトサービスに直接アクセスします。

参考

デフォルトでは、ClickHouseサービスはプライベートサービス接続経由では利用できません。PSC接続が承認され、確立されていても、以下のステップを完了して、インスタンスレベルでPSC IDを許可リストに明示的に追加する必要があります。

プライベートサービスコネクトのグローバルアクセスを使用する際の重要な考慮事項

  1. グローバルアクセスを利用するリージョンは、同じVPCに属する必要があります。
  2. グローバルアクセスは、PSCレベルで明示的に有効化する必要があります(以下のスクリーンショットを参照)。
  3. ファイアウォール設定が他のリージョンからのPSCへのアクセスをブロックしないことを確認してください。
  4. GCPのリージョン間データ転送料金が発生する可能性があることに注意してください。

リージョン間接続はサポートされていません。プロデューサーと消費者のリージョンは同じである必要があります。ただし、VPC内の他のリージョンから接続するには、プライベートサービスコネクト(PSC)レベルでグローバルアクセスを有効にすることができます。

GCP PSCを有効にするために以下の手順を完了してください

  1. プライベートサービスコネクトのためのGCPサービスアタッチメントを取得します。
  2. サービスエンドポイントを作成します。
  3. ClickHouse Cloudサービスに「エンドポイントID」を追加します。
  4. ClickHouseサービス許可リストに「エンドポイントID」を追加します。

Attention

ClickHouseは、GCPリージョン内で同じ公開されたPSCエンドポイントを再利用するためにサービスをグループ化しようとします。ただし、このグループ化は保証されておらず、特にサービスが複数のClickHouse組織に分散されている場合、特に保証されません。 ClickHouse組織内で他のサービス用にPSCが既に構成されている場合は、そのグループ化のためほとんどのステップをスキップし、次の最終ステップへ直接進むことができます:ClickHouseサービス許可リストに「エンドポイントID」を追加します。

Terraformの例はこちらで見つけることができます。

Before you get started

注記

以下に、ClickHouse Cloudサービス内でプライベートサービスコネクトを設定する方法を示すコード例を提供します。以下の例では、以下を使用します:

  • GCPリージョン: us-central1
  • GCPプロジェクト(顧客GCPプロジェクト): my-gcp-project
  • 顧客GCPプロジェクト内のGCPプライベートIPアドレス: 10.128.0.2
  • 顧客GCPプロジェクト内のGCP VPC: default

ClickHouse Cloudサービスについての情報を取得する必要があります。これは、ClickHouse CloudコンソールまたはClickHouse APIを通じて行うことができます。ClickHouse APIを使用する場合、次の環境変数を設定してください:

新しいClickHouse Cloud APIキーを作成するか、既存のものを使用できます。

地域、プロバイダー、サービス名でフィルタリングしてClickHouseのINSTANCE_IDを取得します:

注記
  • ClickHouseコンソールから組織IDを取得できます(組織 -> 組織の詳細)。
  • 新しいキーを作成するか、既存のものを使用できます。

Obtain GCP service attachment and DNS name for Private Service Connect

Option 1: ClickHouse Cloud console

ClickHouse Cloudコンソールで、プライベートサービスコネクトを介して接続したいサービスを開き、次に設定メニューを開きます。「プライベートエンドポイントを設定」ボタンをクリックします。サービス名endpointServiceId)とDNS名privateDnsHostname)をメモしておきます。次のステップで使用します。

Option 2: API

注記

このステップを実行するためには、リージョン内に少なくとも1つのインスタンスがデプロイされている必要があります。

プライベートサービスコネクトのGCPサービスアタッチメントとDNS名を取得します:

endpointServiceId及びprivateDnsHostnameをメモしてください。次のステップで使用します。

Create service endpoint

参考

このセクションでは、GCP PSC(プライベートサービスコネクト)を介してClickHouseを構成するためのClickHouse特有の詳細をカバーしています。GCP特有のステップは参照として提供されていますが、変更される可能性があることに注意してください。特定のユースケースに基づいてGCP設定を検討してください。

ClickHouseは必要なGCP PSCエンドポイント、DNSレコードの構成に責任を負いません。

GCP設定タスクに関連する問題がある場合は、GCPサポートに直接連絡してください。

このセクションでは、サービスエンドポイントを作成します。

Adding a Private Service Connection

まず最初に、プライベートサービス接続を作成します。

Option 1: Using Google Cloud console

Google Cloudコンソールで、ネットワークサービス -> プライベートサービスコネクトに移動します。

エンドポイントを接続」ボタンをクリックして、プライベートサービスコネクトの作成ダイアログを開きます。

  • ターゲット: 公開サービスを使用
  • ターゲットサービス: プライベートサービスコネクトのGCPサービスアタッチメントを取得ステップで取得したendpointServiceIdAPIまたはサービス名コンソールを使用します。
  • エンドポイント名: PSCのエンドポイント名に名前を設定します。
  • ネットワーク/サブネットワーク/ IPアドレス: 接続に使用したいネットワークを選択します。プライベートサービスコネクトエンドポイントのために新しいIPアドレスを作成するか、既存のIPアドレスを使用する必要があります。私たちの例では、名前をyour-ip-addressとし、IPアドレス10.128.0.2を割り当てたアドレスを事前に作成しました。
  • エンドポイントをどのリージョンからも利用できるようにするために、グローバルアクセスを有効にするチェックボックスを有効にできます。

PSCエンドポイントを作成するには、ADD ENDPOINTボタンを使用します。

接続が承認されると、ステータス列は保留中から承認済に変わります。

PSC接続IDをコピーします。次のステップでエンドポイントIDとして使用します。

Option 2: Using Terraform

注記

endpointServiceIdAPIまたはサービス名コンソールを使用して、プライベートサービスコネクトのGCPサービスアタッチメントを取得ステップを参照してください。

Set Private DNS Name for Endpoint

注記

DNSの構成方法はいくつかあります。特定のユースケースに応じてDNSを設定してください。

プライベートサービスコネクトのGCPサービスアタッチメントを取得ステップから取得した「DNS名」をGCPプライベートサービスコネクトエンドポイントIPアドレスにポイントする必要があります。これにより、VPC/ネットワーク内のサービス/コンポーネントがそれを正しく解決できるようになります。

Add Endpoint ID to ClickHouse Cloud organization

Option 1: ClickHouse Cloud console

組織にエンドポイントを追加するには、ClickHouseサービス許可リストに「エンドポイントID」を追加ステップに進んでください。ClickHouse Cloudコンソールを使用してPSC接続IDをサービス許可リストに追加すると、自動的に組織に追加されます。

エンドポイントを削除するには、組織の詳細 -> プライベートエンドポイントを開き、削除ボタンをクリックしてエンドポイントを削除します。

Option 2: API

コマンドを実行する前にこれらの環境変数を設定してください:

Adding a Private Service Connectionステップからの「エンドポイントID」の値でENDPOINT_IDを以下のように置き換えます。

エンドポイントを追加するには、次のコマンドを実行します:

エンドポイントを削除するには、次のコマンドを実行します:

組織にプライベートエンドポイントを追加/削除します:

Add "Endpoint ID" to ClickHouse service allow list

プライベートサービスコネクトを使用して利用可能なインスタンスごとに、エンドポイントIDを許可リストに追加する必要があります。

Option 1: ClickHouse Cloud console

ClickHouse Cloudコンソールで、プライベートサービスコネクトを介して接続したいサービスを開き、次に設定に移動します。Adding a Private Service Connectionステップで取得したエンドポイントIDを入力してください。エンドポイントを作成をクリックします。

注記

既存のプライベートサービスコネクト接続からのアクセスを許可したい場合は、既存のエンドポイントドロップダウンメニューを使用してください。

Option 2: API

コマンドを実行する前にこれらの環境変数を設定してください:

Adding a Private Service Connectionステップからの「エンドポイントID」の値でENDPOINT_IDを置き換えます。

プライベートサービスコネクトを使用して利用可能である必要がある各サービスに対して実行します。

追加するには:

削除するには:

Accessing instance using Private Service Connect

プライベートリンクが有効な各サービスには、パブリックおよびプライベートエンドポイントがあります。プライベートリンクを使用して接続するには、プライベートサービスコネクトのGCPサービスアタッチメントを取得から取得したprivateDnsHostnameを使用する必要があります。

Getting Private DNS Hostname

Option 1: ClickHouse Cloud console

ClickHouse Cloudコンソールで、設定に移動します。「プライベートエンドポイントを設定」ボタンをクリックします。開いた飛び出しウィンドウで、DNS名をコピーします。

Option 2: API

この例では、xxxxxxx.yy-xxxxN.p.gcp.clickhouse.cloudホスト名への接続はプライベートサービスコネクトにルーティングされます。一方、xxxxxxx.yy-xxxxN.gcp.clickhouse.cloudはインターネット経由でルーティングされます。

Troubleshooting

Test DNS setup

DNS_NAME - プライベートサービスコネクトのGCPサービスアタッチメントを取得ステップからのprivateDnsHostnameを使用します。

Connection reset by peer

Test connectivity

PSCリンクを使用して接続する際に問題がある場合は、opensslを使用して接続性を確認してください。プライベートサービスコネクトエンドポイントのステータスが承認済であることを確認してください:

OpenSSLは接続できる必要があります(出力にCONNECTEDと表示されます)。errno=104は予期される結果です。

DNS_NAME - プライベートサービスコネクトのGCPサービスアタッチメントを取得ステップからのprivateDnsHostnameを使用します。

Checking Endpoint filters

REST API

Connecting to a remote database

たとえば、ClickHouse CloudでMySQLまたはPostgreSQLテーブル関数を使用して、GCPにホストされたデータベースに接続しようとしているとします。GCP PSCはこの接続を安全に有効にするために使用できません。PSCは一方向の単方向接続です。内部ネットワークやGCP VPCがClickHouse Cloudに安全に接続できるようにしますが、ClickHouse Cloudが内部ネットワークに接続することはできません。

GCPプライベートサービスコネクトに関するドキュメントによれば:

サービス指向の設計:プロデューサーサービスは、消費者VPCネットワークに対し単一のIPアドレスを公開する負荷分散装置を介して公開されます。プロデューサーサービスにアクセスする消費者トラフィックは一方向であり、サービスのIPアドレスにのみアクセスでき、全体のピアVPCネットワークにアクセスすることはできません。

これを実現するには、ClickHouse Cloudから内部/プライベートデータベースサービスへの接続を許可するようにGCP VPCファイアウォールルールを構成してください。ClickHouse Cloudリージョンのデフォルトの出口IPアドレスと、利用可能な静的IPアドレスを確認してください。

More information

詳細な情報については、cloud.google.com/vpc/docs/configure-private-service-connect-servicesを訪れてください。