ClickPipes は、グローバルアクセスを介したクロスリージョン PSC 接続をサポートしています。ClickPipes インフラストラクチャが稼働するリージョンとは異なるリージョンにあるエンドポイントでは、グローバルアクセスが必要です。詳細については、ClickPipes GCP リージョンのドキュメントを確認してください。
サポートされるパターン
前提条件
- GCP でホストされる ClickHouse Cloud サービス。ClickPipes は、一部の例外を除き、ClickHouse Cloud サービスと同じリージョンで実行されます。
- ソースで PSC を有効にし、PSC サービスアタッチメントを管理するための IAM 権限 (
roles/compute.networkAdmin) 。 - サービスアタッチメントへの接続を許可されたClickPipes コンシューマープロジェクト (
clickpipes-production)。 - ClickPipes をプログラムでプロビジョニングする場合: サービスを所有する組織の ClickHouse Cloud API キー。
リバース プライベート エンドポイントを作成する
RPE を作成するには、データソースについて次の情報が必要です。- サービス アタッチメント URI:
projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>。データソースの前段に公開されている PSC エンドポイントです。 - private DNS 名: パイプの接続先ホスト名です。PSC エンドポイントには DNS 名が紐付かない静的な内部 IP が割り当てられるため、ClickPipes がこのホスト名をその IP に解決します。
- ClickPipes UI
- Terraform
- API
- ClickHouse Cloud でサービスを開き、Data Sources > ClickPipes に移動します。
- 取り込み元のデータソースを選択します。
- Setup your ClickPipe connection で Use secure connection をオンにし、+ Reverse private endpoint をクリックして GCP PSC service attachment を選択します。
- サービス アタッチメント URI、private DNS 名、説明 を入力します。
- Create をクリックします。エンドポイントの状態は
Provisioning→Readyと遷移します。 (Cloud SQL や AlloyDB などのネイティブ PSC ソースでは、ClickPipes コンシューマープロジェクトを許可リストに登録すると接続が自動承認されるため、PendingAcceptanceは表示されません。プロデューサー所有 PSC の場合は、プロデューサー所有 接続の承認を参照してください。)
カスタム プライベート DNS 名
GCP PSC では DNS が伝播されないため、ClickPipes がエンドポイントの静的な内部 IP に解決できるよう、すべての GCP PSC エンドポイントにカスタム private DNS マッピングが必要です。 標準の ClickPipes カスタム プライベート DNS 命名規則が適用されます。ワイルドカードのサポート、サービス の リバースプライベートエンドポイント 間での一意性、予約済み接尾辞に関する制限は、すべての provider で同じように適用されます。Managed Kafka のように複数の broker を持つソースでは、クラスター全体に単一のワイルドカードを使用するのではなく、アドバタイズされているすべての broker に対して上記のセットアップを繰り返してください。具体的には、broker の サービスアタッチメント ごとにリバースプライベートエンドポイントを 1 つずつ作成し、その broker のホスト名に対するカスタム private DNS マッピングを設定します。ブートストラップ用のホスト名に専用のエンドポイントは不要です。いずれかの broker エンドポイントに追加のマッピングとして登録してください。完全な例については、gcp-managed-kafka Terraform モジュールを参照してください。
GCP PSC では、マッピングの privateDnsName のみが使用されます。PSC エンドポイントは、紐付ける DNS 名のない静的 IP を公開するため、internalDNSName フィールドはサポートされません。マッピングは常にその IP に解決されます。
プロデューサー所有の接続を承認する
プロデューサー所有 PSC では、接続を自動的に承認するため、ClickPipes コンシューマープロジェクト (clickpipes-production) をサービスアタッチメントの自動承認リストに追加します。これを省略すると、手動で承認するまで RPE は PendingAcceptance のままとなります。
接続を承認するには、サービスアタッチメントのコンシューマー承認リストに、エンドポイントの数値 ID ベースの URI (projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID>) を追加する必要があります。サービスアタッチメント上の保留中の接続の endpointWithId 値を取得するには、次を実行します。
status が PENDING のエントリの endpointWithId から https://www.googleapis.com/compute/beta/ プレフィックスを削除し、結果を --consumer-accept-list に渡します。
--consumer-accept-list は新しいコンシューマープロジェクトを受け入れリストに追加するのではなく、リスト全体を上書きします。サービスアタッチメントがすでに他のプロジェクトまたはエンドポイントを受け入れている場合は、すべてを同じコマンドで指定してください。指定しなかったものはアクセスできなくなります。リバース プライベート エンドポイントの管理
既存のリバース プライベート エンドポイントは、ClickHouse Cloud サービスの設定で管理できます。- ClickHouse Cloud コンソールのサイドバーで、
Settingsに移動します。
ClickPipe reverse private endpoints で、Reverse private endpoints をクリックします。
リバース プライベート エンドポイントの詳細情報がフライアウトに表示されます。ここから RPE を削除できます。エンドポイントの × をクリックし、削除を確認します。削除は永続的であり、そのエンドポイントを現在使用している ClickPipe はすべて機能しなくなります。
エンドポイントのカスタム private DNS マッピングを変更するには、Cloud API または Terraform を使用します。更新すると、マッピングが追加されるのではなく、マッピングのリスト全体が置き換えられます。
エンドポイントに Rejected または Failed と表示される場合は、ステータスの下にあるメッセージを確認してください。これにより、プロデューサーによって拒否された接続なのか、切断された接続または対応が必要な接続なのかを判別できます。通常、どちらの場合も、サービスアタッチメントの許可リストに ClickPipes コンシューマープロジェクトが含まれていないことを示します。エンドポイントについて GCP が報告するステータスを確認するには、サービスアタッチメントの connectedEndpoints を記述します。
既知の制限事項
- PSC サービス アタッチメントを一度に要求できる ClickHouse Cloud サービスは 1 つだけであり、複数のサービス間で再利用することはできません。サービス アタッチメントを別のサービスに移動するには、既存の要求を解除するため、ClickHouse Support にお問い合わせください。