メインコンテンツまでスキップ
メインコンテンツまでスキップ

AWS PrivateLink

Scale plan feature

AWS PrivateLink is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

Please note AWS PrivateLinkは、VPC間、AWSサービス、オンプレミスシステム、およびClickHouse Cloud間の接続を提供し、インターネットを介さずにトラフィックを管理します。この文書では、AWS PrivateLinkを使用してClickHouse Cloudに接続する方法を説明します。 AWS PrivateLink以外のアドレスからClickHouse Cloudサービスへのアクセスを無効にするには、ClickHouse CloudのIPアクセスリストを使用します。

注記

ClickHouse Cloudは現在、クロスリージョンPrivateLinkをサポートしていません。ただし、VPCピアリングを使用してPrivateLinkに接続することができます。詳細および設定ガイダンスについては、AWSの文書を参照してください。

AWS PrivateLinkを有効にするには、次の手順を完了してください:

  1. エンドポイントサービス名を取得します。
  2. サービスエンドポイントを作成します。
  3. ClickHouse Cloud組織にエンドポイントIDを追加します。
  4. サービスの許可リストにエンドポイントIDを追加します。

AWS PrivateLinkの完全なTerraformの例は、こちらでご覧いただけます。

前提条件

始める前に必要なもの:

  1. AWSアカウント。
  2. プライベートリンクを作成および管理するために必要な権限を持つAPIキー。

手順

ClickHouse CloudをAWS PrivateLinkに接続するための手順は次のとおりです。

エンドポイントサービス名を取得する

オプション 1: ClickHouse Cloudコンソール

ClickHouse Cloudコンソールで、PrivateLink経由で接続したいサービスを開き、設定メニューを開きます。 プライベートエンドポイントの設定ボタンをクリックします。PrivateLinkの設定に使用されるサービス名をコピーします。

プライベートエンドポイント

オプション 2: API

まず、コマンドを実行する前に、次の環境変数を設定します:

地域、プロバイダ、およびサービス名でフィルタリングして、目的のインスタンスIDを取得します:

プライベートリンク設定のためのAWSサービス名を取得します:

このコマンドは次のような結果を返します:

endpointServiceIdをメモし、ステップ2に移動してください

サービスエンドポイントを作成する

次に、前のステップで取得したendpointServiceIdを使用してサービスエンドポイントを作成する必要があります。

オプション 1: AWSコンソール

AWSコンソールを開き、VPCエンドポイントエンドポイントの作成に移動します。

その他のエンドポイントサービスを選択し、前のステップで取得したendpointServiceIdを使用します。完了したら、サービスを確認をクリックします:

AWS PrivateLinkエンドポイント設定

次に、VPCおよびサブネットを選択します:

VPCおよびサブネットの選択

オプションのステップとして、セキュリティグループやタグを割り当てます:

ポート

セキュリティグループ内でポート8443および9440が許可されていることを確認してください。

VPCエンドポイントを作成した後、Endpoint IDの値をメモしておいてください。次のステップで必要になります。

VPCエンドポイントID

オプション 2: AWS CloudFormation

正しいサブネットID、セキュリティグループ、VPC IDを使用していることを確認してください。

オプション 3: Terraform

エンドポイントのプライベートDNS名を変更する

このステップでは、プライベートDNSゾーン<region code>.vpce.aws.clickhouse.cloudの設定をAWS VPCに注入します。

DNSリゾルバ

独自のDNSリゾルバを使用している場合は、<region code>.vpce.aws.clickhouse.cloudのDNSゾーンを作成し、ワイルドカードレコード*.<region code>.vpce.aws.clickhouse.cloudをエンドポイントIDのIPアドレスに向けます。

オプション 1: AWSコンソール

VPCエンドポイントに移動し、VPCエンドポイントを右クリックして、プライベートDNS名を変更を選択します:

AWS PrivateLinkエンドポイントメニュー

開いたページで、プライベートDNS名を有効にするを選択します:

DNS名の変更

オプション 2: AWS CloudFormation

CloudFormationテンプレートを更新し、PrivateDnsEnabledtrueに設定します:

変更を適用します。

オプション 3: Terraform

  • Terraformコード内のaws_vpc_endpointリソースを変更し、private_dns_enabledtrueに設定します:

変更を適用します。

ClickHouse Cloud組織にエンドポイントIDを追加する

オプション 1: ClickHouse Cloudコンソール

組織にエンドポイントを追加するには、サービスの許可リストにエンドポイントIDを追加するステップに進みます。ClickHouse Cloudコンソールを使用してEndpoint IDをサービスの許可リストに追加すると、自動的に組織に追加されます。

エンドポイントを削除するには、組織の詳細 -> プライベートエンドポイントを開き、削除ボタンをクリックしてエンドポイントを削除します。

プライベートエンドポイントの削除

オプション 2: API

コマンドを実行する前に、次の環境変数を設定します:

前のステップのデータを使用してVPC_ENDPOINT環境変数を設定します。

エンドポイントを追加するには、次のコマンドを実行します:

エンドポイントを削除するには、次のコマンドを実行します:

サービスの許可リストにエンドポイントIDを追加する

オプション 1: ClickHouse Cloudコンソール

ClickHouse Cloudコンソールで、PrivateLink経由で接続したいサービスを開き、設定に移動します。前のステップから取得したEndpoint IDを入力します。

注記

既存のPrivateLink接続からのアクセスを許可したい場合は、既存のエンドポイントドロップダウンメニューを使用してください。

プライベートエンドポイントフィルタ

オプション 2: API

プライベートリンクを使用可能にするインスタンスごとに、エンドポイントIDを許可リストに追加する必要があります。

コマンドを実行する前に、次の環境変数を設定します:

許可リストにエンドポイントIDを追加するには:

許可リストからエンドポイントIDを削除するには:

プライベートリンクフィルターが設定された各インスタンスには、パブリックとプライベートのエンドポイントがあります。PrivateLinkを使用してサービスに接続するには、プライベートエンドポイントprivateDnsHostnameを使用する必要があります。

注記

プライベートDNSホスト名は、AWS VPCからのみ利用可能です。ローカルマシンからDNSホストを解決しようとしないでください。

プライベートDNSホスト名を取得する

オプション 1: ClickHouse Cloudコンソール

ClickHouse Cloudコンソールで、設定に移動します。 プライベートエンドポイントの設定ボタンをクリックします。開いたフライアウトで、DNS名をコピーします。

プライベートエンドポイントDNS名
オプション 2: API

コマンドを実行する前に、次の環境変数を設定します:

これにより、次のような出力が得られます:

この例では、xxxxxxx.yy-xxxx-N.vpce.aws.clickhouse.cloudのホスト名への接続はPrivateLinkにルーティングされますが、xxxxxxx.yy-xxxx-N.aws.clickhouse.cloudはインターネット経由でルーティングされます。

トラブルシューティング

ほとんどの場合、各VPCに対して1つのエンドポイントサービスを作成する必要があります。このエンドポイントは、VPCから複数のClickHouse Cloudサービスへのリクエストをルーティングできます。

プライベートエンドポイントへの接続がタイムアウトした

  • VPCエンドポイントにセキュリティグループをアタッチしてください。
  • エンドポイントにアタッチされているセキュリティグループのinboundルールを確認し、ClickHouseポートを許可してください。
  • 接続性テストに使用されるVMにアタッチされているセキュリティグループのoutboundルールを確認し、ClickHouseポートへの接続を許可してください。

プライベートホスト名: ホストのアドレスが見つかりません

  • "プライベートDNS名"オプションが有効になっていることを確認してください。詳細については、ステップを参照してください。

ピアによって接続がリセットされました

  • おそらくエンドポイントIDがサービスの許可リストに追加されていないためです。ステップを参照してください。

エンドポイントフィルターの確認

コマンドを実行する前に、次の環境変数を設定します:

リモートデータベースに接続する

例えば、ClickHouse CloudでMySQLまたはPostgreSQLテーブル関数を使用して、Amazon Web Services (AWS) VPCにホストされたデータベースに接続しようとしているとします。AWS PrivateLinkは、この接続を安全に有効にするためには使用できません。PrivateLinkは一方向の接続です。内部ネットワークやAmazon VPCがClickHouse Cloudに安全に接続できるようにしますが、ClickHouse Cloudが内部ネットワークに接続することはできません。

AWS PrivateLinkの文書によると:

AWS PrivateLinkは、クライアント/サーバーのセットアップがあり、1つ以上の消費者VPCが特定のサービスまたはサービスプロバイダVPC内のインスタンスセットへの一方向のアクセスを許可する場合に使用します。消費者VPC内のクライアントのみが、サービスプロバイダVPC内のサービスへの接続を開始できます。

これを実現するには、AWSセキュリティグループを設定し、ClickHouse Cloudから内部/プライベートデータベースサービスへの接続を許可する必要があります。ClickHouse CloudリージョンのデフォルトのエグレスIPアドレス利用可能な静的IPアドレスを確認してください。