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) は、サービス利用者が自分の Virtual Private Cloud (VPC) ネットワーク内からマネージドサービスへプライベートにアクセスできるようにする Google Cloud のネットワーク機能です。同様に、マネージドサービス提供者が自分たちの独立した VPC ネットワーク内でこれらのサービスをホストし、利用者に対してプライベート接続を提供することも可能にします。
サービス提供者は、Private Service Connect サービスを作成することで、自身のアプリケーションを利用者に公開します。サービス利用者は、次のいずれかの Private Service Connect の種類を通じて、それらの Private Service Connect サービスへ直接アクセスします。

デフォルトでは、PSC 接続が承認され確立されていても、ClickHouse サービスは Private Service Connect 経由では利用できません。インスタンスレベルで、以下の 手順 を完了して、PSC ID を許可リストに明示的に追加する必要があります。
Private Service Connect Global Access を使用する際の重要な注意事項:
- Global Access を利用するリージョンは、同一の VPC に属している必要があります。
- Global Access は PSC レベルで明示的に有効化する必要があります(以下のスクリーンショットを参照してください)。
- ファイアウォール設定によって、他リージョンからの PSC へのアクセスがブロックされていないことを確認してください。
- GCP のリージョン間データ転送料金が発生する可能性がある点に注意してください。
リージョン間接続はサポートされていません。提供者と利用者のリージョンは同一である必要があります。ただし、Private Service Connect (PSC) レベルで Global Access を有効にすることで、同一 VPC 内の他リージョンから接続することは可能です。
GCP PSC を有効化するには、次の作業を完了してください:
- Private Service Connect 用の GCP サービスアタッチメントを取得します。
- サービスエンドポイントを作成します。
- 「Endpoint ID」を ClickHouse Cloud サービスに追加します。
- 「Endpoint ID」を ClickHouse サービスの許可リストに追加します。
注意
ClickHouse は、GCP リージョン内で同じ公開されている PSC エンドポイント を再利用できるように、サービスをグループ化しようとします。ただし、このグループ化は保証されず、特に複数の ClickHouse 組織にサービスを分散している場合は当てはまらない可能性があります。 すでに同じ ClickHouse 組織内の他のサービス向けに PSC を構成している場合は、そのグループ化によりほとんどの手順を省略できることが多く、最終ステップである「"Endpoint ID" を ClickHouse サービス許可リストに追加する」に直接進むことができます。
Terraform の例は こちら を参照してください。
始める前に
以下のコード例では、ClickHouse Cloud サービスで Private Service Connect をセットアップする方法を示します。以下の例では、次の値を使用します:
- 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 は、リージョン、プロバイダー、サービス名でフィルタリングして取得します。
- Organization ID は ClickHouse コンソールの「Organization → Organization Details」から確認できます。
- 新しいキーを作成するか、既存のキーを使用できます。
Private Service Connect 用の GCP サービス アタッチメントと DNS 名を取得する
オプション 1: ClickHouse Cloud コンソール
ClickHouse Cloud コンソールで、Private Service Connect 経由で接続したいサービスを開き、Settings メニューを開きます。続いて Set up private endpoint ボタンをクリックします。Service name(endpointServiceId)と DNS name(privateDnsHostname)を控えておきます。これらは次の手順で使用します。

オプション 2: API
この手順を実行するには、そのリージョンに少なくとも1つのインスタンスがデプロイされている必要があります。
Private Service Connect 用の GCP サービス アタッチメントと DNS 名を取得します。
endpointServiceId と privateDnsHostname をメモしておいてください。次の手順で使用します。
サービスエンドポイントの作成
このセクションでは、GCP PSC(Private Service Connect)経由で ClickHouse を設定するための、ClickHouse 固有の詳細について説明します。GCP 固有の手順は、どこを確認すべきかを示すための参考情報として記載していますが、GCP クラウドプロバイダからの通知なしに将来的に変更される可能性があります。GCP の設定は、お客様の具体的なユースケースに基づいて検討してください。
なお、必要な GCP PSC エンドポイントや DNS レコードの設定については、ClickHouse は責任を負いません。
GCP 設定作業に関連する問題については、GCP サポートに直接お問い合わせください。
このセクションでは、サービスエンドポイントを作成します。
プライベートサービス接続の追加
まず、Private Service Connection を作成します。
オプション 1: Google Cloud コンソールを使用する場合
Google Cloud コンソールで、Network services -> Private Service Connect に移動します。

Connect Endpoint ボタンをクリックして、Private Service Connect の作成ダイアログを開きます。
- Target: Published service を選択します。
- Target service: Obtain GCP service attachment for Private Service Connect の手順で取得した
endpointServiceIdAPI またはService nameconsole を使用します。 - Endpoint name: PSC の Endpoint name として任意の名前を設定します。
- Network/Subnetwork/IP address: 接続に使用するネットワークを選択します。Private Service Connect エンドポイント用に新しく IP アドレスを作成するか、既存のものを使用する必要があります。この例では、事前に your-ip-address という名前でアドレスを作成し、IP アドレス
10.128.0.2を割り当てています。 - エンドポイントを任意のリージョンから利用可能にするには、Enable global access チェックボックスを有効にします。

PSC エンドポイントを作成するには、ADD ENDPOINT ボタンをクリックします。
接続が承認されると、Status 列は Pending から Accepted に変わります。

PSC Connection ID をコピーします。これは次の手順で Endpoint ID として使用します。
オプション 2: Terraform を使用する場合
endpointServiceIdAPI または Service nameconsole には、Private Service Connect 用の GCP サービスアタッチメントの取得 の手順で取得した値を使用します。
エンドポイントのプライベート DNS 名を設定する
DNS の構成方法にはさまざまなものがあります。ユースケースに応じて適切な方法で DNS を設定してください。
Obtain GCP service attachment for Private Service Connect の手順で取得した「DNS 名」を、GCP Private Service Connect エンドポイントの IP アドレスを指すように設定する必要があります。これにより、VPC/ネットワーク内のサービスやコンポーネントが正しく名前解決できるようになります。
Endpoint ID を ClickHouse Cloud 組織に追加する
オプション 1: ClickHouse Cloud コンソール
組織にエンドポイントを追加するには、ClickHouse サービス許可リストへの「Endpoint ID」の追加 の手順に進んでください。ClickHouse Cloud コンソールを使用してサービス許可リストに PSC Connection ID を追加すると、自動的に組織にも追加されます。
エンドポイントを削除するには、Organization details -> Private Endpoints を開き、削除ボタンをクリックしてエンドポイントを削除します。

オプション 2: API
コマンドを実行する前に、次の環境変数を設定します:
以下の ENDPOINT_ID を、Private Service Connection の追加 手順で取得した Endpoint ID の値に置き換えてください。
エンドポイントを追加するには、次を実行します:
エンドポイントを削除するには、次のコマンドを実行します。
組織のプライベートエンドポイントを追加/削除:
ClickHouse サービスの許可リストに「Endpoint ID」を追加する
Private Service Connect で利用可能にしたい各インスタンスについて、許可リストに Endpoint ID を追加する必要があります。
オプション 1: ClickHouse Cloud コンソール
ClickHouse Cloud コンソールで、Private Service Connect 経由で接続したいサービスを開き、Settings に移動します。Adding a Private Service Connection の手順で取得した Endpoint ID を入力し、Create endpoint をクリックします。
既存の Private Service Connect 接続からのアクセスを許可したい場合は、ドロップダウンメニューから既存のエンドポイントを使用してください。

オプション 2: API
コマンドを実行する前に、次の環境変数を設定します。
以下の ENDPOINT_ID を、Adding a Private Service Connection の手順で取得した Endpoint ID の値に置き換えます。
Private Service Connect で利用可能にしたい各サービスについて、この操作を実行します。
追加するには:
削除するには:
Private Service Connect を使用してインスタンスにアクセスする
Private Link を有効にした各サービスには、パブリックエンドポイントとプライベートエンドポイントがあります。Private Link を使用して接続するには、プライベートエンドポイントを使用する必要があります。これは、Private Service Connect 用の GCP サービスアタッチメントと DNS 名の取得 で取得した privateDnsHostname です。
プライベート DNS ホスト名の取得
オプション 1: ClickHouse Cloud コンソール
ClickHouse Cloud コンソールで Settings に移動します。Set up private endpoint ボタンをクリックします。開いたフライアウトで DNS Name をコピーします。

オプション 2: API
この例では、xxxxxxx.yy-xxxxN.p.gcp.clickhouse.cloud ホスト名への接続は Private Service Connect 経由になります。一方、xxxxxxx.yy-xxxxN.gcp.clickhouse.cloud ホスト名への接続はインターネット経由になります。
トラブルシューティング
DNS セットアップのテスト
DNS_NAME - Private Service Connect 用の GCP サービスアタッチメントの取得 の手順で取得した privateDnsHostname を DNS_NAME に指定します
ピアによる接続リセット
- 最もよくある原因は、エンドポイント ID がサービスの許可リストに追加されていないことです。エンドポイント ID をサービスの許可リストに追加 の手順を再確認してください。
接続テスト
PSC リンクを使った接続で問題が発生している場合は、openssl を使って接続を確認してください。Private Service Connect エンドポイントのステータスが Accepted であることを確認します。
OpenSSL は接続できるはずです(出力に CONNECTED が表示されます)。errno=104 は想定される値です。
DNS_NAME - Private Service Connect 用の GCP サービスアタッチメントの取得の手順で取得した privateDnsHostname を使用します
エンドポイントフィルターの確認
REST API
リモートデータベースへの接続
たとえば、ClickHouse Cloud で MySQL や PostgreSQL のテーブル関数を使用し、GCP 上でホストされているデータベースに接続しようとしているとします。GCP PSC は、この接続をセキュアな形で確立するためには利用できません。PSC は一方向の接続です。PSC により、内部ネットワークまたは GCP VPC から ClickHouse Cloud へのセキュアな接続は可能ですが、ClickHouse Cloud から内部ネットワークへの接続は許可されません。
GCP Private Service Connect のドキュメントによると、次のように記載されています。
サービス指向の設計: プロデューササービスは、コンシューマ VPC ネットワークに対して 1 つの IP アドレスを公開するロードバランサを通じて公開されます。プロデューササービスにアクセスするコンシューマトラフィックは単方向であり、ピアリングされた VPC ネットワーク全体ではなく、サービス IP アドレスにのみアクセスできます。
これを行うには、GCP VPC のファイアウォールルールを構成し、ClickHouse Cloud から社内/プライベートなデータベースサービスへの接続を許可します。ClickHouse Cloud リージョンのデフォルトの送信 (egress) IP アドレス と、利用可能な静的 IP アドレス を確認してください。
詳細情報
詳しくは、cloud.google.com/vpc/docs/configure-private-service-connect-services を参照してください。