Private Service Connect
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を許可リストに明示的に追加する必要があります。
プライベートサービスコネクトのグローバルアクセスを使用する際の重要な考慮事項:
- グローバルアクセスを利用するリージョンは、同じVPCに属する必要があります。
- グローバルアクセスは、PSCレベルで明示的に有効化する必要があります(以下のスクリーンショットを参照)。
- ファイアウォール設定が他のリージョンからのPSCへのアクセスをブロックしないことを確認してください。
- GCPのリージョン間データ転送料金が発生する可能性があることに注意してください。
リージョン間接続はサポートされていません。プロデューサーと消費者のリージョンは同じである必要があります。ただし、VPC内の他のリージョンから接続するには、プライベートサービスコネクト(PSC)レベルでグローバルアクセスを有効にすることができます。
GCP PSCを有効にするために以下の手順を完了してください:
- プライベートサービスコネクトのためのGCPサービスアタッチメントを取得します。
- サービスエンドポイントを作成します。
- ClickHouse Cloudサービスに「エンドポイントID」を追加します。
- 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サービスアタッチメントを取得ステップで取得した
endpointServiceId
APIまたはサービス名
コンソールを使用します。 - エンドポイント名: PSCのエンドポイント名に名前を設定します。
- ネットワーク/サブネットワーク/ IPアドレス: 接続に使用したいネットワークを選択します。プライベートサービスコネクトエンドポイントのために新しいIPアドレスを作成するか、既存のIPアドレスを使用する必要があります。私たちの例では、名前をyour-ip-addressとし、IPアドレス
10.128.0.2
を割り当てたアドレスを事前に作成しました。 - エンドポイントをどのリージョンからも利用できるようにするために、グローバルアクセスを有効にするチェックボックスを有効にできます。

PSCエンドポイントを作成するには、ADD ENDPOINTボタンを使用します。
接続が承認されると、ステータス列は保留中から承認済に変わります。

PSC接続IDをコピーします。次のステップでエンドポイントIDとして使用します。
Option 2: Using Terraform
endpointServiceId
APIまたはサービス名
コンソールを使用して、プライベートサービスコネクトの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
- おそらく、エンドポイントIDがサービス許可リストに追加されていない可能性があります。_Add endpoint ID to services allow-list_ステップを再度確認してください。
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を訪れてください。