AWS PrivateLink
AWS PrivateLink is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.
AWS PrivateLinkを使用して、VPC、AWSサービス、オンプレミスシステム、及びClickHouse Cloud間で安全な接続を確立し、トラフィックを公衆インターネットにさらすことなく行うことができます。このドキュメントでは、AWS PrivateLinkを使用してClickHouse Cloudに接続する手順を概説します。
ClickHouse CloudのサービスへのアクセスをAWS PrivateLinkアドレスを介してのみ制限するには、ClickHouse CloudのIPアクセスリストの指示に従ってください。
ClickHouse Cloudは、以下のリージョンからのクロスリージョンPrivateLinkをサポートしています:
- sa-east-1
- il-central-1
- me-central-1
- me-south-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は、地域間データ転送にユーザーに料金を請求します。料金についてはこちらをご覧ください。
AWS PrivateLinkを有効にするには、以下を完了してください:
- エンドポイント "サービス名" を取得します。
- AWSエンドポイントを作成します。
- "エンドポイントID" をClickHouse Cloud組織に追加します。
- "エンドポイントID" をClickHouseサービスの許可リストに追加します。
Terraformの例はこちらにあります。
重要な考慮事項
ClickHouseは、AWSリージョン内で同じ公開済みサービスエンドポイントを再利用するために、サービスをグループ化しようとします。しかし、このグループ化は保証されておらず、特に複数のClickHouse組織にサービスを分散させている場合は注意が必要です。 すでにClickHouse組織内の他のサービスのためにPrivateLinkが設定されている場合、このグループ化により、ほとんどのステップをスキップして直接最終ステップに進むことができます:ClickHouseの "エンドポイントID" をClickHouseサービスの許可リストに追加します。
このプロセスの前提条件
開始する前に、以下が必要です:
- あなたのAWSアカウント。
- ClickHouse APIキーで、ClickHouse側でプライベートエンドポイントを作成および管理するための権限を持っていること。
手順
AWS PrivateLinkを介してClickHouse Cloudサービスに接続するための手順を示します。
エンドポイント "サービス名" を取得する
オプション 1: ClickHouse Cloudコンソール
ClickHouse Cloudコンソールで、PrivateLink経由で接続したいサービスを開き、設定メニューに移動します。

サービス名
と DNS名
をメモして、次のステップに進んでください。
オプション 2: API
コマンドを実行する前に、以下の環境変数を設定します:
地域、プロバイダー、およびサービス名でフィルタリングしてClickHouseのINSTANCE_ID
を取得します:
PrivateLinkの設定のためのendpointServiceId
とprivateDnsHostname
を取得します:
このコマンドを実行すると、以下のような結果が返されるはずです:
endpointServiceId
と privateDnsHostname
をメモして、次のステップに進んでください。
AWSエンドポイントを作成する
このセクションでは、AWS PrivateLink経由でClickHouseを設定するためのClickHouse固有の詳細を扱います。AWS固有の手順は、どこを見ればよいかを示すための参考として提供されますが、AWSクラウドプロバイダーからの通知なしに変更される可能性があります。特定の使用例に基づいてAWS設定を考慮してください。
ClickHouseは、必要なAWS VPCエンドポイント、セキュリティグループルール、またはDNSレコードの設定について責任を負いません。
以前にPrivateLinkを設定する際に「プライベートDNS名」を有効にし、新しいサービスをPrivateLink経由で設定する際に問題が発生した場合は、ClickHouseサポートにお問い合わせください。他のAWS設定タスクに関連する問題については、直接AWSサポートにお問い合わせください。
オプション 1: AWSコンソール
AWSコンソールを開き、VPC → エンドポイント → エンドポイントを作成 に進みます。
NLBとGWLBを使用するエンドポイントサービスを選択し、エンドポイント "サービス名" ステップから取得したサービス名
consoleまたはendpointServiceId
APIをサービス名フィールドに入力します。サービスを確認をクリックします:

PrivateLinkを使用してクロスリージョナル接続を確立する場合は、「クロスリージョンエンドポイント」チェックボックスを有効にし、サービスリージョンを指定します。サービスリージョンは、ClickHouseインスタンスが稼働している場所です。
「サービス名を確認できませんでした。」というエラーが表示された場合は、新しいリージョンをサポートされているリージョンリストに追加するように顧客サポートにお問い合わせください。
次に、自分のVPCとサブネットを選択します:

オプションのステップとして、セキュリティグループ/タグを割り当てます:
セキュリティグループでポート443
、8443
、9440
、3306
が許可されていることを確認してください。
VPCエンドポイントを作成したら、エンドポイントID
の値をメモします。これは今後のステップで必要になります。

オプション 2: AWS CloudFormation
次に、エンドポイント "サービス名" ステップで取得したサービス名
consoleまたはendpointServiceId
APIを使用してVPCエンドポイントを作成する必要があります。
正しいサブネットID、セキュリティグループ、およびVPC IDを使用してください。
VPCエンドポイントを作成したら、エンドポイントID
の値をメモします。これは今後のステップで必要になります。
オプション 3: Terraform
以下のservice_name
は、エンドポイント "サービス名" ステップで取得したサービス名
consoleまたはendpointServiceId
APIです。
VPCエンドポイントを作成したら、エンドポイントID
の値をメモします。これは今後のステップで必要になります。
エンドポイントのプライベートDNS名を設定する
DNSを構成する方法はさまざまです。特定の使用例に応じてDNSを設定してください。
エンドポイント "サービス名" ステップから取得した "DNS名" をAWSエンドポイントネットワークインターフェースにポイントする必要があります。これにより、VPC/ネットワーク内のサービス/コンポーネントがそれを正しく解決できるようになります。
"エンドポイントID" をClickHouseサービスの許可リストに追加する
オプション 1: ClickHouse Cloudコンソール
追加するには、ClickHouse Cloudコンソールに移動し、PrivateLinkを介して接続したいサービスを開いてから、設定に移動します。プライベートエンドポイントを設定をクリックしてプライベートエンドポイントの設定を開きます。 Create AWS Endpoint ステップから取得したエンドポイントID
を入力します。エンドポイントを作成をクリックします。
既存のPrivateLink接続からのアクセスを許可したい場合は、既存のエンドポイントドロップダウンメニューを使用してください。

削除するには、ClickHouse Cloudコンソールに移動し、サービスを見つけ、サービスの設定に進み、削除したいエンドポイントを見つけます。リストから削除します。
オプション 2: API
PrivateLinkを使用して利用可能である必要がある各インスタンスの許可リストにエンドポイントIDを追加する必要があります。
Create AWS Endpoint ステップからのデータを使用してENDPOINT_ID
環境変数を設定します。
コマンドを実行する前に、以下の環境変数を設定します:
許可リストにエンドポイントIDを追加するには:
許可リストからエンドポイントIDを削除するには:
PrivateLinkを使用してインスタンスにアクセスする
Private Linkが有効な各サービスには、パブリックエンドポイントとプライベートエンドポイントがあります。Private Linkを使用して接続するには、Obtain Endpoint "Service name" から取得したprivateDnsHostname
APIまたはDNS名
consoleを使用する必要があります。
プライベートDNSホスト名を取得する
オプション 1: ClickHouse Cloudコンソール
ClickHouse Cloudコンソールで、設定に移動します。プライベートエンドポイントを設定ボタンをクリックします。開いたフライアウトで、DNS名をコピーします。

オプション 2: API
コマンドを実行する前に、以下の環境変数を設定します:
ステップからINSTANCE_ID
を取得できます。
このコマンドを実行すると、以下のような出力が得られます:
この例では、privateDnsHostname
ホスト名の値を介しての接続はPrivateLinkにルーティングされますが、endpointServiceId
ホスト名を介した接続はインターネットを経由します。
トラブルシューティング
1つのリージョンでの複数のPrivateLink
ほとんどの場合、各VPCに対して単一のエンドポイントサービスを作成するだけで済みます。このエンドポイントは、VPCから複数のClickHouse Cloudサービスへのリクエストをルーティングできます。 詳細についてはこちらを参照してください。
プライベートエンドポイントへの接続がタイムアウトした
- VPCエンドポイントにセキュリティグループを割り当ててください。
- エンドポイントに添付されているセキュリティグループの
inbound
ルールを確認し、ClickHouseのポートを許可してください。 - 接続テストに使用されるVMに添付されているセキュリティグループの
outbound
ルールを確認し、ClickHouseのポートへの接続を許可してください。
プライベートホスト名:ホストのアドレスが見つかりませんでした
- DNS構成を確認してください。
ピアによって接続がリセットされた
- おそらく、エンドポイントIDがサービスの許可リストに追加されていないためです。 ステップを確認してください。
エンドポイントフィルターの確認
コマンドを実行する前に、以下の環境変数を設定します:
ステップからINSTANCE_ID
を取得できます。
リモートデータベースに接続する
たとえば、MySQLやPostgreSQLのテーブル機能をClickHouse Cloudで使用し、Amazon Web Services (AWS) VPCにホストされたデータベースに接続しようとしている場合、AWS PrivateLinkはこの接続を安全に有効にするために使用できません。PrivateLinkは一方向の接続です。あなたの内部ネットワークまたはAmazon VPCがClickHouse Cloudに安全に接続することはできますが、ClickHouse Cloudがあなたの内部ネットワークに接続することはできません。
AWS PrivateLinkを使用するのは、クライアント/サーバーセットアップがあり、消費者VPCがサービスプロバイダーVPC内の特定のサービスまたはインスタンスのセットに一方向のアクセスを許可したい場合です。消費者VPC内のクライアントのみがサービスプロバイダVPC内のサービスへの接続を開始できます。
これを行うには、AWSセキュリティグループを設定して、ClickHouse Cloudがあなたの内部/プライベートデータベースサービスに接続できるようにします。ClickHouse Cloudリージョンのデフォルトの送信IPアドレスや、利用可能な静的IPアドレスを確認してください。