ClickHouse Cloud は、以下のリージョンからの cross-region PrivateLink をサポートしています。
- sa-east-1
- il-central-1
- me-south-1
- mx-central-1
- eu-central-2
- eu-north-1
- eu-south-2
- eu-west-3
- eu-south-1
- eu-west-2
- eu-west-1
- eu-central-1
- ca-west-1
- ca-central-1
- ap-northeast-1
- ap-southeast-2
- ap-southeast-1
- ap-northeast-2
- ap-northeast-3
- ap-south-1
- ap-southeast-4
- ap-southeast-3
- ap-south-2
- ap-east-1
- af-south-1
- us-west-2
- us-west-1
- us-east-2
- us-east-1 料金に関する注意: クロスリージョンのデータ転送については AWS から課金されます。料金はこちらを参照してください。
- Endpoint “Service name” を取得します。
- AWS エンドポイント を作成します。
- “Endpoint ID” を ClickHouse Cloud 組織に追加します。
- “Endpoint ID” を ClickHouseサービス の許可リストに追加します。
重要な注意事項
この手順の前提条件
- AWS アカウント。
- ClickHouse 側でプライベート エンドポイントを作成および管理するために必要な権限を持つ ClickHouse API key。
手順
エンドポイントの「Service name」を確認する
オプション 1: ClickHouse Cloud コンソール
Service name と DNS name をメモしたら、次のステップに進みます。
オプション 2: API
INSTANCE_ID を取得します:
endpointServiceId と privateDnsHostname を取得します。
endpointServiceId と privateDnsHostname をメモし、次のステップに進みます。
AWSエンドポイントを作成
オプション 1: AWS コンソール
Service nameconsole または endpointServiceIdAPI を Service Name フィールドに入力します。続いて、Verify service をクリックします。
PrivateLink 経由でクロスリージョン接続を確立する場合は、“Cross region endpoint” チェックボックスをオンにして、サービスのリージョンを指定します。サービスのリージョンは、ClickHouse インスタンスが稼働しているリージョンです。
“Service name couldn’t be verified.” という error が表示された場合は、サポート対象リージョンの一覧に新しいリージョンを追加するよう Customer Support へお問い合わせください。
次に、使用する VPC とサブネットを選択します。
必要に応じて、セキュリティグループ/タグを割り当てます。
セキュリティグループでポート
443、8443、9440、3306 が許可されていることを確認してください。Endpoint ID の値を控えておいてください。後続の手順で必要になります。
オプション 2: AWS CloudFormation
Service nameconsoleまたはendpointServiceIdAPIを使用して、VPC エンドポイントを作成します。
サブネット ID、セキュリティグループ、VPC ID には正しい値を使用していることを確認してください。
Endpoint ID の値を控えておいてください。後続の手順で必要になります。
オプション 3: Terraform
service_name は、エンドポイントの”Service name” を取得する 手順で取得した Service nameコンソール または endpointServiceIdAPI です
Endpoint ID の値を控えておいてください。後続の手順で必要になります。
エンドポイントのプライベート DNS 名を設定する
DNS の設定方法はいくつかあります。ご利用のユースケースに応じて設定してください。
“Endpoint ID” を ClickHouseサービスの許可リストに追加する
オプション 1: ClickHouse Cloud コンソール
Endpoint ID を入力し、“Create endpoint” をクリックします。
既存の PrivateLink 接続からのアクセスを許可する場合は、既存のエンドポイントのドロップダウン メニューを使用します。
オプション 2: API
ENDPOINT_ID 環境変数を設定します。
コマンドを実行する前に、次の環境変数を設定します。
PrivateLink を使用したインスタンスへのアクセス
privateDnsHostnameAPI または DNS Nameconsole のプライベート エンドポイントを使用する必要があります。
プライベート DNS ホスト名の取得
オプション 1: ClickHouse Cloud コンソール
オプション 2: API
INSTANCE_ID は手順で取得できます。
privateDnsHostname の値であるホスト名を使用した接続は PrivateLink にルーティングされますが、endpointServiceId のホスト名を使用した接続はインターネット経由でルーティングされます。
トラブルシューティング
1 つのリージョン内の複数の PrivateLink
プライベート エンドポイントへの接続がタイムアウトする
- セキュリティグループを VPC エンドポイントに関連付けてください。
- エンドポイントに関連付けられたセキュリティグループの
inboundルールを確認し、ClickHouse のポートへのアクセスを許可してください。 - 接続テストに使用している VM に関連付けられたセキュリティグループの
outboundルールを確認し、ClickHouse のポートへの接続を許可してください。
プライベートホスト名: ホストのアドレスが見つかりません
- DNS の設定を確認してください
ピアによって接続がリセットされる
- おそらく、Endpoint ID が service の許可リストに追加されていません。手順を参照してください
エンドポイントフィルターを確認する
INSTANCE_ID を取得できます。
リモートデータベースへの接続
AWS PrivateLink は、クライアント/サーバー構成において、1 つ以上の consumer VPC から、service provider VPC 内の特定のサービスまたはインスタンス群への単方向アクセスを許可したい場合に使用します。service provider VPC 内のサービスへの接続を開始できるのは、consumer VPC 内のクライアントのみです。ClickHouse Cloud で MySQL または PostgreSQL のテーブル関数を、AWS VPC でホストされているデータベースに接続するには、AWS のセキュリティグループを設定し、ClickHouse Cloud からの接続を許可してください。ClickHouse Cloud の各リージョンにおけるデフォルトの egress IP アドレス と、利用可能な静的 IP アドレス を確認してください。