ClickPipes 向け AWS PrivateLink
AWS PrivateLink を使用すると、トラフィックをパブリックインターネットにさらすことなく、 VPC、AWS サービス、オンプレミスシステム、ClickHouse Cloud 間で安全な接続を確立できます。
このドキュメントでは、AWS PrivateLink VPC エンドポイントのセットアップを可能にする ClickPipes のリバースプライベートエンドポイント機能について説明します。
サポートされている ClickPipes データソース
ClickPipes のリバースプライベートエンドポイント機能が利用できるデータソースの種類は、 次のものに限定されます。
- Kafka
- Postgres
- MySQL
- MongoDB
サポートされている AWS PrivateLink エンドポイントの種類
ClickPipes のリバースプライベートエンドポイントは、次のいずれかの AWS PrivateLink 方式で構成できます:
VPC リソース
クロスリージョンはサポートされていません。
VPC リソースには、PrivateLink を使用して ClickPipes からアクセスできます。この方法では、データソースの前段にロードバランサーを設定する必要はありません。
リソース構成では、特定のホストまたは RDS クラスター ARN をターゲットとして指定できます。
これは、RDS クラスターからデータを CDC(変更データキャプチャ)で取り込む Postgres 用として推奨される方法です。
VPC リソースに対して PrivateLink を設定するには:
- リソースゲートウェイを作成する
- リソース構成を作成する
- リソース共有を作成する
リソースゲートウェイを作成する
リソースゲートウェイは、VPC 内で指定したリソースに対するトラフィックを受け取るポイントです。
リソースゲートウェイにアタッチするサブネットには、十分な数の IP アドレスが確保されていることが推奨されます。
各サブネットについて、少なくとも /26 のサブネットマスクを使用することを推奨します。
各 VPC エンドポイント(各 Reverse Private Endpoint)に対して、AWS はサブネットごとに連続した 16 個の IP アドレスからなるブロック(/28 サブネットマスク)を要求します。
この要件を満たさない場合、Reverse Private Endpoint は failed 状態に遷移します。
リソースゲートウェイは、AWS コンソールから、または次のコマンドを使用して作成できます。
出力結果にはリソースゲートウェイ ID が含まれます。これは次の手順で必要になります。
先に進む前に、リソースゲートウェイが Active 状態になるまで待つ必要があります。状態は次のコマンドを実行して確認できます。
VPC Resource-Configuration を作成する
Resource-Configuration は、リソースゲートウェイに関連付けることで、リソースへのアクセスを可能にします。
AWS コンソール から、または次のコマンドを使用して Resource-Configuration を作成できます。
最も単純なリソース構成タイプは、単一のリソース構成です。ARN を直接指定するか、パブリックに名前解決可能な IP アドレスまたはドメイン名を指定して構成できます。
たとえば、RDS クラスターの ARN で構成するには次のようにします。
パブリックにアクセス可能なクラスターに対しては、リソース構成を作成できません。 クラスターがパブリックにアクセス可能な場合は、リソース構成を作成する前に クラスターをプライベートに変更するか、代わりに IP allow list を使用する必要があります。 詳細については、AWS ドキュメント を参照してください。
出力結果には、次のステップで必要となる Resource-Configuration ARN が含まれます。また、VPC リソースを使用した ClickPipe 接続の設定に必要となる Resource-Configuration ID も含まれます。
Resource-Share を作成する
リソースを共有するには Resource-Share が必要です。これは Resource Access Manager (RAM) を通じて行われます。
Resource-Configuration は、AWS コンソール を使用するか、ClickPipes アカウント ID 072088201116 (arn:aws:iam::072088201116:root) を指定して次のコマンドを実行することで Resource-Share に追加できます。
出力には Resource-Share ARN が含まれます。これは、VPC リソースを使用して ClickPipe 接続を設定する際に必要になります。
これで、VPC リソースを使用してReverse private endpoint を用いた ClickPipe を作成する準備が整いました。次の設定を行う必要があります。
VPC endpoint typeをVPC Resourceに設定します。Resource configuration IDを、ステップ 2 で作成した Resource-Configuration の ID に設定します。Resource share ARNを、ステップ 3 で作成した Resource-Share の ARN に設定します。
VPC リソースを用いた PrivateLink の詳細については、AWS のドキュメントを参照してください。
MSK マルチ VPC 接続
Multi-VPC connectivity は、複数の VPC を 1 つの MSK クラスターに接続できる AWS MSK の組み込み機能です。 プライベート DNS は標準でサポートされており、追加の設定は不要です。 リージョン間での利用はサポートされていません。
これは ClickPipes for MSK に推奨されるオプションです。 詳細については、getting started ガイドを参照してください。
MSK クラスターのポリシーを更新し、MSK クラスターで許可されるプリンシパルとして 072088201116 を追加してください。
詳細については、AWS ガイドの attaching a cluster policy を参照してください。
接続のセットアップ方法については、MSK setup guide for ClickPipes を参照してください。
VPC エンドポイントサービス
VPC エンドポイントサービス は、データソースを ClickPipes と共有するための別の方法です。 この方法では、データソースの前段に NLB(Network Load Balancer)を設定し、 その NLB を利用するように VPC エンドポイントサービスを構成する必要があります。
VPC エンドポイントサービスは、ClickPipes の VPC 内からアクセス可能な プライベート DNS を使用して構成できます。
次のようなケースでの利用が推奨されます。
- プライベート DNS サポートを必要とするオンプレミスの Kafka セットアップ
- Postgres CDC のリージョン間接続
- MSK クラスターのリージョン間接続。支援が必要な場合は ClickHouse サポートチームまでお問い合わせください。
詳細については、はじめにガイドを参照してください。
ClickPipes アカウント ID 072088201116 を、VPC エンドポイントサービスの許可されたプリンシパルに追加してください。
詳細については、AWS ガイドの アクセス許可の管理 を参照してください。
リージョン間アクセス は ClickPipes 用に構成できます。VPC エンドポイントサービスの許可リージョンに 使用している ClickPipe のリージョン を追加してください。
リバースプライベートエンドポイントを使用して ClickPipe を作成する
ClickHouse Cloud サービスの SQL Console にアクセスします。

左側メニューの Data Sources ボタンを選択し、「Set up a ClickPipe」をクリックします。

データソースとして Kafka または Postgres を選択します。

Reverse private endpoint オプションを選択します。

既存のリバースプライベートエンドポイントのいずれかを選択するか、新規に作成します。
RDS へのリージョンをまたぐアクセスが必要な場合は、VPC エンドポイントサービスを作成する必要があります。設定時の良い出発点として、こちらのガイド を参照してください。
同一リージョンでのアクセスの場合は、VPC リソースを作成する方法が推奨されます。

選択したエンドポイントタイプに必要なパラメーターを指定します。

Create をクリックし、リバースプライベートエンドポイントの準備が完了するまで待ちます。
新しいエンドポイントを作成している場合、エンドポイントのセットアップには時間がかかることがあります。 エンドポイントの準備ができると、ページは自動的に更新されます。 VPC エンドポイントサービスでは、AWS コンソールで接続リクエストを承認する必要がある場合があります。

エンドポイントの準備ができたら、DNS 名を使用してデータソースに接続できます。
エンドポイントの一覧で、利用可能なエンドポイントの DNS 名を確認できます。 これは、ClickPipes によって内部でプロビジョニングされた DNS 名か、PrivateLink サービスによって提供されたプライベート DNS 名のいずれかです。 DNS 名は完全なネットワークアドレスではありません。 データソースに応じてポート番号を追加してください。
MSK の接続文字列は AWS コンソールから参照できます。
DNS 名の完全な一覧を表示するには、クラウドサービスの設定画面にアクセスします。
既存のリバースプライベートエンドポイントの管理
既存のリバースプライベートエンドポイントは、ClickHouse Cloud のサービス設定から管理できます。
サイドバーから Settings ボタンを見つけてクリックします。

ClickPipe reverse private endpoints セクション内の Reverse private endpoints をクリックします。

フライアウトパネルに、リバースプライベートエンドポイントの詳細情報が表示されます。
ここからエンドポイントを削除できます。削除すると、このエンドポイントを使用しているすべての ClickPipes に影響します。
サポートされている AWS リージョン
ClickPipes 向けの AWS PrivateLink のサポートは、特定の AWS リージョンに限定されています。 利用可能なリージョンについては、ClickPipes リージョン一覧 を参照してください。
この制限は、リージョン間接続を有効にした PrivateLink VPC エンドポイントサービスには適用されません。
制限事項
ClickHouse Cloud で作成された ClickPipes 用の AWS PrivateLink エンドポイントが、 ClickHouse Cloud サービスと同じ AWS リージョン内に作成されるとは限りません。
現在、リージョンをまたいだ接続をサポートしているのは VPC エンドポイントサービスのみです。
プライベートエンドポイントは特定の ClickHouse サービスに紐づけられており、サービス間で共有したり移行したりすることはできません。 単一の ClickHouse サービスに対して複数の ClickPipes がある場合でも、同じエンドポイントを再利用できます。