- Global Access を利用する Region は、同じ VPC に属している必要があります。
- Global Access は PSC レベルで明示的に有効にする必要があります (以下のスクリーンショットを参照してください) 。
- ファイアウォール設定で、他の Region からの PSC へのアクセスがブロックされていないことを確認してください。
- GCP のリージョン間データ転送料金が発生する場合があることに注意してください。
- Private Service Connect 用の GCP サービス アタッチメント を取得します。
- サービス エンドポイントを作成します。
- 「Endpoint ID」を ClickHouse Cloud サービスに追加します。
- 「Endpoint ID」を ClickHouse serviceの許可リストに追加します。
注意
始める前に
以下に、ClickHouse Cloud サービス内で Private Service Connect を設定する方法を示すコード例を記載します。以下の例では、次を使用します。
- GCP リージョン:
us-central1 - GCP プロジェクト (顧客の GCP プロジェクト) :
my-gcp-project - 顧客の GCP プロジェクト内の GCP プライベート IP アドレス:
10.128.0.2 - 顧客の GCP プロジェクト内の GCP VPC:
default
INSTANCE_ID を取得します。
- Organization ID は、ClickHouseコンソール (Organization -> Organization Details) から取得できます。
- 新しいキーを作成するか、既存のキーを使用できます。
Private Service Connect 用の GCP サービス アタッチメントと DNS 名を取得する
オプション 1: ClickHouse Cloud コンソール
endpointServiceId) と DNS name (privateDnsHostname) を控えておいてください。これらは次の手順で使用します。
オプション 2: API
この手順を実行するには、そのリージョンに少なくとも 1 つのインスタンスがデプロイされている必要があります。
endpointServiceId と privateDnsHostname を控えておいてください。これらは後続の手順で使用します。
サービスエンドポイントを作成する
プライベートサービス接続の追加
オプション 1: Google Cloud console を使用する
- Target: Published service を使用します
- Target service: Private Service Connect 用の GCP サービスアタッチメントを取得する 手順で取得した
endpointServiceIdAPI またはService nameconsole を使用します。 - Endpoint name: PSC の Endpoint name に名前を設定します。
- Network/Subnetwork/IP address: 接続に使用するネットワークを選択します。Private Service Connect endpoint 用に IP アドレスを新規作成するか、既存のものを使用する必要があります。この例では、your-ip-address という名前のアドレスを事前に作成し、IP アドレス
10.128.0.2を割り当てています。 - endpoint をどの Region からでも利用できるようにするには、Enable global access チェックボックスを有効にします。
オプション 2: Terraform を使用する
Private Service Connect の GCP サービスアタッチメント と DNS 名を取得する 手順で取得した
endpointServiceIdAPI または Service nameコンソール を使用しますエンドポイントのプライベート DNS 名を設定する
DNS の構成方法は複数あります。ご利用のユースケースに応じて設定してください。
ClickHouse Cloud 組織に Endpoint ID を追加
オプション 1: ClickHouse Cloud コンソール
PSC Connection ID を service の許可リストに追加すると、自動的に組織にも追加されます。
エンドポイントを削除するには、Organization details -> Private Endpoints を開き、削除ボタンをクリックしてエンドポイントを削除します。
オプション 2: API
ENDPOINT_ID は、プライベートサービス接続の追加 の手順にある Endpoint ID の値に置き換えてください。
エンドポイントを追加するには、次を実行します。
ClickHouse service の許可リストに “Endpoint ID” を追加する
オプション 1: ClickHouse Cloud コンソール
Endpoint ID を入力し、Create endpoint をクリックします。
既存の Private Service Connect 接続からのアクセスを許可する場合は、既存のエンドポイントのドロップダウン メニューを使用します。
オプション 2: API
Private Service Connect を使用したインスタンスへのアクセス
privateDnsHostname であるプライベート エンドポイントを使用する必要があります。
プライベートDNSホスト名の取得
オプション 1: ClickHouse Cloud コンソール
オプション 2: API
xxxxxxx.yy-xxxxN.p.gcp.clickhouse.cloud ホスト名への接続は Private Service Connect 経由になります。一方、xxxxxxx.yy-xxxxN.gcp.clickhouse.cloud への接続はインターネット経由になります。
トラブルシューティング
DNS 設定をテストする
privateDnsHostname を使用します
相手側によって接続がリセットされる
- 最も可能性が高いのは、Endpoint ID がサービスの許可リストに追加されていないことです。サービスの許可リストに Endpoint ID を追加する 手順を再度確認してください。
接続を確認する
openssl を使って接続性を確認してください。Private Service Connect エンドポイントの status が Accepted になっていることを確認してください。
OpenSSL で接続できるはずです (出力に CONNECTED と表示されます) 。errno=104 は想定内です。
DNS_NAME - Private Service Connect 用の GCP サービスアタッチメント と DNS 名を取得する 手順の privateDnsHostname を使用します
エンドポイントフィルタを確認する
REST API
リモートデータベースへの接続
サービス指向の設計: プロデューサー サービスは、コンシューマー VPC ネットワークに単一の IP アドレスを公開するロードバランサーを介して公開されます。プロデューサー サービスにアクセスするコンシューマー トラフィックは単方向であり、ピア接続された VPC ネットワーク全体ではなく、サービスの IP アドレスにのみアクセスできます。ClickHouse Cloud で MySQL または PostgreSQL のテーブル関数を GCP VPC 内でホストされているデータベースに接続するには、ClickHouse Cloud からの接続を許可するように GCP VPC のファイアウォール ルールを設定します。ClickHouse Cloud リージョンのデフォルトの egress IP アドレス と、利用可能な静的 IP アドレス を確認してください。