メインコンテンツへスキップ
メインコンテンツへスキップ

ClickPipes 向け AWS PrivateLink

AWS PrivateLink を使用すると、VPC、AWS サービス、オンプレミス環境、および ClickHouse Cloud 間で、安全な接続を確立できます。このとき、トラフィックをパブリックインターネットに公開する必要はありません。

本ドキュメントでは、AWS PrivateLink の VPC エンドポイントを構成するための、ClickPipes のリバースプライベートエンドポイント機能について説明します。

サポートされている ClickPipes データソース

ClickPipes のリバースプライベートエンドポイント機能は、以下の データソースタイプでのみ利用できます:

  • Kafka
  • Postgres
  • MySQL
  • MongoDB

ClickPipesリバースプライベートエンドポイントは、以下のいずれかのAWS PrivateLinkアプローチで構成できます:

VPCリソース

参考文献

クロスリージョンはサポートされていません。

VPCリソースは、PrivateLinkを使用してClickPipesからアクセスできます。このアプローチでは、データソースの前にロードバランサーを設定する必要はありません。

リソース構成は、特定のホストまたはRDSクラスターARNを対象として設定できます。

RDSクラスターからデータを取り込むPostgreSQL CDC(変更データキャプチャ)には、この方法が推奨されます。

VPCリソースでPrivateLinkを設定するには:

  1. リソースゲートウェイを作成する
  2. リソース構成を作成する
  3. リソース共有を作成する

リソースゲートウェイを作成する

リソースゲートウェイは、VPC内の指定されたリソースへのトラフィックを受信するポイントです。

注記

リソースゲートウェイに接続されたサブネットには、十分なIPアドレスが利用可能であることが推奨されます。 各サブネットには少なくとも/26サブネットマスクを使用することが推奨されます。

各VPCエンドポイント(各リバースプライベートエンドポイント)について、AWSはサブネットごとに連続した16個のIPアドレスブロック(/28サブネットマスク)を必要とします。 この要件が満たされない場合、リバースプライベートエンドポイントは失敗状態に遷移します。

リソースゲートウェイは、AWSコンソールから、または以下のコマンドで作成できます:

aws vpc-lattice create-resource-gateway \
    --vpc-identifier <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --security-group-ids <SG_IDs> \
    --name <RESOURCE_GATEWAY_NAME>

出力にはリソースゲートウェイIDが含まれます。これは次のステップで必要になります。

続行する前に、リソースゲートウェイがActive状態になるまで待つ必要があります。以下のコマンドを実行して状態を確認できます:

aws vpc-lattice get-resource-gateway \
    --resource-gateway-identifier <RESOURCE_GATEWAY_ID>

VPCリソース構成を作成する

リソース構成はリソースゲートウェイに関連付けられ、リソースをアクセス可能にします。

リソース構成は、AWSコンソールから、または以下のコマンドで作成できます:

aws vpc-lattice create-resource-configuration \
    --resource-gateway-identifier <RESOURCE_GATEWAY_ID> \
    --type <RESOURCE_CONFIGURATION_TYPE> \
    --resource-configuration-definition <RESOURCE_CONFIGURATION_DEFINITION> \
    --name <RESOURCE_CONFIGURATION_NAME>

最もシンプルなリソース構成タイプは、単一のリソース構成です。ARNを直接指定して構成するか、公開解決可能なIPアドレスまたはドメイン名を共有できます。

例えば、RDSクラスターのARNで構成するには:

aws vpc-lattice create-resource-configuration \
    --name my-rds-cluster-config \
    --type ARN \
    --resource-gateway-identifier rgw-0bba03f3d56060135 \
    --resource-configuration-definition 'arnResource={arn=arn:aws:rds:us-east-1:123456789012:cluster:my-rds-cluster}'
注記

公開アクセス可能なクラスターに対してリソース構成を作成することはできません。 クラスターが公開アクセス可能な場合は、リソース構成を作成する前にクラスターを変更してプライベートにするか、 代わりにIP許可リストを使用する必要があります。 詳細については、AWSドキュメントを参照してください。

出力にはリソース構成ARNが含まれます。これは次のステップで必要になります。また、リソース構成IDも含まれます。これはVPCリソースでClickPipe接続を設定する際に必要になります。

リソース共有を作成する

リソースを共有するには、リソース共有が必要です。これはResource Access Manager(RAM)を通じて実現されます。

Resource-ConfigurationをResource-Shareに配置するには、AWSコンソールを使用するか、ClickPipesアカウントID 072088201116(arn:aws:iam::072088201116:root)を指定して以下のコマンドを実行します。

aws ram create-resource-share \
    --principals 072088201116 \
    --resource-arns <RESOURCE_CONFIGURATION_ARN> \
    --name <RESOURCE_SHARE_NAME>

出力にはResource-Share ARNが含まれます。これはVPCリソースを使用したClickPipe接続のセットアップに必要となります。

VPCリソースを使用してリバースプライベートエンドポイントを持つClickPipeを作成する準備が整いました。以下の設定が必要です。

  • VPC endpoint typeVPC Resourceに設定します。
  • Resource configuration IDをステップ2で作成したResource-ConfigurationのIDに設定します。
  • Resource share ARNをステップ3で作成したResource-ShareのARNに設定します。

VPCリソースを使用したPrivateLinkの詳細については、AWSドキュメントを参照してください。

MSKマルチVPC接続

マルチVPC接続は、AWS MSKの組み込み機能であり、単一のMSKクラスタに複数のVPCを接続できます。 プライベートDNSサポートは標準で提供されており、追加の設定は不要です。 クロスリージョンはサポートされていません。

これはMSK向けClickPipesの推奨オプションです。 詳細については、はじめにガイドを参照してください。

参考文献

MSKクラスタポリシーを更新し、072088201116を許可されたプリンシパルとしてMSKクラスタに追加します。 詳細については、クラスタポリシーのアタッチに関するAWSガイドを参照してください。

接続のセットアップ方法については、ClickPipes向けMSKセットアップガイドを参照してください。

VPCエンドポイントサービス

VPCエンドポイントサービスは、データソースをClickPipesと共有するもう一つの方法です。 データソースの前にNLB(Network Load Balancer)をセットアップし、 VPCエンドポイントサービスがNLBを使用するように設定する必要があります。

VPCエンドポイントサービスはプライベートDNSで設定でき、ClickPipes VPC内でアクセス可能になります。

以下の場合に推奨される選択肢です。

詳細については、はじめにガイドを参照してください。

参考文献

ClickPipesアカウントID 072088201116を、VPCエンドポイントサービスの許可されたプリンシパルに追加します。 詳細については、権限の管理に関するAWSガイドを参照してください。

参考文献

ClickPipes向けにクロスリージョンアクセスを設定できます。VPCエンドポイントサービスの許可されたリージョンにClickPipeのリージョンを追加してください。

リバースプライベートエンドポイントを使用して ClickPipe を作成する

ClickHouse Cloud サービスの SQL Console にアクセスします。

ClickPipes サービス

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

インポートの選択

データソースとして Kafka か Postgres のいずれかを選択します。

データソースの選択

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

リバースプライベートエンドポイントの選択

既存のリバースプライベートエンドポイントを選択するか、新しく作成します。

参考文献

RDS でリージョンをまたいだアクセスが必要な場合は、VPC エンドポイントサービスを作成する必要があります。 そのセットアップの出発点として、このガイド が有用です。

同一リージョン内でのアクセスの場合は、VPC Resource を作成する方法が推奨されます。

リバースプライベートエンドポイントの選択

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

リバースプライベートエンドポイントの選択
  • VPC resource の場合は、configuration share ARN と configuration ID を指定します。
  • MSK multi-VPC の場合は、作成済みエンドポイントで使用する cluster ARN と認証方法を指定します。
  • VPC endpoint service の場合は、service name を指定します。

Create をクリックし、リバースプライベートエンドポイントの準備が完了するまで待ちます。

新しいエンドポイントを作成している場合は、エンドポイントのセットアップに少し時間がかかります。 エンドポイントの準備が整うと、ページは自動的に更新されます。 VPC endpoint service の場合は、AWS コンソールで接続リクエストを承認する必要がある場合があります。

リバースプライベートエンドポイントの選択

エンドポイントの準備が整ったら、DNS 名を使用してデータソースに接続できます。

エンドポイント一覧では、利用可能なエンドポイントの DNS 名を確認できます。 これは、ClickPipes によって内部的にプロビジョニングされた DNS 名か、PrivateLink サービスから提供されたプライベート DNS 名のいずれかです。 DNS 名は完全なネットワークアドレスではありません。 データソースに応じてポートを付加してください。

MSK の接続文字列は AWS コンソールから参照できます。

すべての DNS 名の一覧は、クラウドサービスの設定から参照できます。

既存のリバースプライベートエンドポイントの管理

ClickHouse Cloud のサービス設定で、既存のリバースプライベートエンドポイントを管理できます。

サイドバーの Settings ボタンをクリックします。

ClickHouse Cloud 設定

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

ClickHouse Cloud 設定

リバースプライベートエンドポイントの詳細情報がフライアウトパネルに表示されます。

ここからエンドポイントを削除できます。この操作は、このエンドポイントを使用しているすべての ClickPipes に影響します。

AWS PrivateLink のサポートは、ClickPipes 用では特定の AWS リージョンに限定されています。 利用可能なリージョンについては、ClickPipes のリージョン一覧を参照してください。

この制限は、リージョン間接続が有効になっている PrivateLink VPC エンドポイントサービスには適用されません。

制限事項

ClickHouse Cloud で作成された ClickPipes 用の AWS PrivateLink エンドポイントは、 ClickHouse Cloud サービスと同じ AWS リージョン内に作成されるとは限りません。

現在のところ、クロスリージョン接続をサポートしているのは VPC エンドポイントサービスのみです。

プライベートエンドポイントは特定の ClickHouse サービスに紐づけられており、サービス間で共有・移行することはできません。 1 つの ClickHouse サービスに対して複数の ClickPipes が同じエンドポイントを再利用できます。