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

Azure Private Link

注記

Azure Private LinkはClickHouse CloudのProductionサービスにのみ有効化できます。Developmentサービスはサポートされていません。

このガイドでは、Azure Private Linkを使用して、Azure(顧客所有およびMicrosoftパートナーサービスを含む)とClickHouse Cloudとの間に仮想ネットワーク経由でプライベート接続を提供する方法を示します。Azure Private Linkはネットワークアーキテクチャを簡素化し、パブリックインターネットへのデータ露出を排除することで、Azure内のエンドポイント間の接続を安全にします。

PrivateLinkの概要

AWSやGCPとは異なり、AzureはPrivate Linkを介したクロスリージョン接続をサポートしています。これにより、異なるリージョンにデプロイされたClickHouseサービス間で、VNet間の接続を確立できます。

注記

リージョン間のトラフィックには追加料金が発生する場合があります。最新のAzureドキュメントを確認してください。

Azure Private Linkを有効にするために、以下の手順を完了してください。

  1. Private Link用のAzure接続エイリアスを取得する
  2. Azureにプライベートエンドポイントを作成する
  3. プライベートエンドポイントのGUIDをClickHouse Cloud組織に追加する
  4. プライベートエンドポイントのGUIDをサービスの許可リストに追加する
  5. プライベートリンクを使用してClickHouse Cloudサービスにアクセスする

Azure Private Linkの完全なTerraform例については、こちらを参照してください。

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

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

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

オプション2: API

始める前に、ClickHouse Cloud APIキーが必要です。新しいキーを作成するか、既存のキーを使用できます。プライベートリンク構成を管理するには、Adminキーが必要であることに注意してください。

APIキーを取得したら、コマンドを実行する前に以下の環境変数を設定します:

リージョンからインスタンスIDを取得します:

指定されたリージョンに少なくとも1つのClickHouse Cloudサービスが展開されている必要があります。

前の手順で受け取ったIDを使用して、INSTANCE_ID環境変数を作成します:

Private Link用のAzure接続エイリアスとプライベートDNSホスト名を取得します:

endpointServiceIdをメモしておきます。この値は次のステップで使用します。

Azureにプライベートエンドポイントを作成する

このセクションでは、Azureにプライベートエンドポイントを作成します。AzureポータルまたはTerraformを使用できます。

オプション1: Azureポータルを使用してプライベートエンドポイントを作成する

Azureポータルで、プライベートリンクセンター → プライベートエンドポイントを開きます。

Azureプライベートセンターを開く

作成ボタンをクリックして、プライベートエンドポイント作成ダイアログを開きます。

Azureプライベートセンターを開く

次の画面では、以下のオプションを指定します:

  • サブスクリプション / リソースグループ: プライベートエンドポイント用のAzureサブスクリプションとリソースグループを選択してください。
  • 名前: プライベートエンドポイントの名前を設定します。
  • リージョン: Private Linkを介してClickHouse Cloudに接続されるVNetが展開されているリージョンを選択します。

上記の手順を完了したら、次へ: リソースボタンをクリックします。

プライベートエンドポイント基本情報の作成

Azureリソースに、リソースIDまたはエイリアスで接続のオプションを選択します。

リソースIDまたはエイリアスには、Private Link用のAzure接続エイリアスを取得するステップで取得したendpointServiceIdを使用してください。

次へ: 仮想ネットワークボタンをクリックします。

プライベートエンドポイントリソース選択
  • 仮想ネットワーク: Private Linkを使用してClickHouse Cloudに接続したいVNetを選択してください
  • サブネット: プライベートエンドポイントが作成されるサブネットを選択してください

オプション:

  • アプリケーションセキュリティグループ: プライベートエンドポイントにASGを添付して、プライベートエンドポイントへのネットワークトラフィックをフィルタリングするためにネットワークセキュリティグループで使用できます。

次へ: DNSボタンをクリックします。

プライベートエンドポイント仮想ネットワーク選択

次へ: タグボタンをクリックします。


プライベートエンドポイントDNS構成

オプションで、プライベートエンドポイントにタグを添付できます。

次へ: レビュー + 作成ボタンをクリックします。


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

最後に、作成ボタンをクリックします。

プライベートエンドポイントレビュー

作成されたプライベートエンドポイントの接続状況保留中の状態になります。サービスの許可リストにこのプライベートエンドポイントを追加すると、承認済みの状態に変更されます。

プライベートエンドポイントに関連付けられたネットワークインターフェイスを開き、プライベートIPv4アドレス(この例では10.0.0.4)をコピーします。この情報は次の手順で必要になります。

プライベ��ートエンドポイントIPアドレス

オプション2: Terraformを使用してAzureにプライベートエンドポイントを作成する

Terraformを使用してプライベートエンドポイントを作成するには、以下のテンプレートを使用してください:

プライベートエンドポイントの resourceGuid を取得する

Private Linkを使用するには、プライベートエンドポイント接続GUIDをサービスの許可リストに追加する必要があります。

プライベートエンドポイントリソースGUIDはAzureポータルでのみ表示されます。前のステップで作成されたプライベートエンドポイントを開き、JSONビューをクリックします:

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

プロパティの下にあるresourceGuidフィールドを見つけ、この値をコピーします:

プ�ライベートエンドポイントリソースGUID

Private Linkを介してリソースにアクセスするには、プライベートDNSゾーン(${location_code}.privatelink.azure.clickhouse.cloud)を作成し、VNetにアタッチする必要があります。

プライベートDNSゾーンを作成する

オプション1: Azureポータルを使用する

以下のガイドに従って、Azureポータルを使用してAzureプライベートDNSゾーンを作成してください

オプション2: Terraformを使用する

プライベートDNSゾーンを作成するための以下のTerraformテンプレートを使用してください:

ワイルドカードDNSレコードを作成する

ワイルドカードレコードを作成し、プライベートエンドポイントを指すようにします。

オプション1: Azureポータルを使用する

  1. MyAzureResourceGroupリソースグループを開き、${region_code}.privatelink.azure.clickhouse.cloudプライベートゾーンを選択します。
    • レコードセットを選択します。
  2. 名前に * を入力します。
  3. IPアドレスに、プライベートエンドポイントのIPアドレスを入力します。
  4. OKを選択します。
プライベートリンクDNSワイルドカード設定

オプション2: Terraformを使用する

ワイルドカードDNSレコードを作成するための以下のTerraformテンプレートを使用してください:

プライベートDNSゾーンを仮想ネットワークにリンクするには、仮想ネットワークリンクを作成する必要があります。

オプション1: Azureポータルを使用する

以下のガイドに従って、プライベートDNSゾーンに仮想ネットワークをリンクしてください

オプション2: Terraformを使用する

仮想ネットワークをプライベートDNSゾーンにリンクするための以下のTerraformテンプレートを使用してください:

DNS設定を確認する

westus3.privatelink.azure.clickhouse.cloudドメイン内の任意のレコードは、プライベートエンドポイントIPにポイントされるべきです。(この例では10.0.0.4)。

プライベートエンドポイント_GUID_をClickHouse Cloud組織に追加する

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

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

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

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

オプション2: API

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

プライベートエンドポイントの resourceGuid を取得する ステップからのデータを使用して、VPC_ENDPOINT環境変数を設定します。

プライベートエンドポイントを追加するために次のコマンドを実行します:

プライベートエンドポイントを削除するためのコマンドも実行できます:

プライベートエンドポイントを追加または削除した後、次のコマンドを実行して組織に適用します:

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

デフォルトでは、プライベートリンク接続が承認され、確立されていても、ClickHouse Cloudサービスはプライベートリンク接続を介して利用できません。プライベートリンクを使用して利用可能にする各サービスにプライベートエンドポイントGUIDを明示的に追加する必要があります。

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

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

注記

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

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

オプション2: API

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

プライベートリンクを使用して利用可能な各サービスに対して実行します。

プライベートエンドポイントをサービスの許可リストに追加するためのコマンドを実行します:

サービスの許可リストからプライベートエンドポイントを削除するためのコマンドを実行できます:

サービスの許可リストにプライベートエンドポイントを追加または削除した後、次のコマンドを実行して組織に適用します:

プライベートリンクが有効化されている各サービスには、公開エンドポイントとプライベートエンドポイントがあります。プライベートリンクを介して接続するには、privateDnsHostnameであるプライベートエンドポイントを使用する必要があります。

注記

プライベートDNSホスト名は、Azure VNetからのみ利用可能です。Azure VNetの外部にあるマシンからDNSホストを解決しようとしないでください。

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

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

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

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

オプション2: API

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

次のコマンドを実行します:

次のようなレスポンスが返されます:

この例では、xxxxxxx.region_code.privatelink.azure.clickhouse.cloudホスト名への接続はプライベートリンクにルーティングされます。一方、xxxxxxx.region_code.azure.clickhouse.cloudはインターネット経由でルーティングされます。

プライベートリンクを使用してClickHouse Cloudサービスに接続するには、privateDnsHostnameを使用します。

トラブルシューティング

DNS設定をテストする

${region_code}.privatelink.azure.clickhouse.cloud.ゾーン内のすべてのDNSレコードは、Azureにプライベートエンドポイントを作成するステップの内部IPアドレスを指すべきです。この例では、リージョンはwestus3です。

次のコマンドを実行します:

次のようなレスポンスを受け取るべきです:

ピアによる接続リセット

おそらく、プライベートエンドポイントGUIDがサービスの許可リストに追加されていません。_サービスの許可リストにプライベートエンドポイントGUIDを追加する_ステップを再確認してください。

プライベートエンドポイントが保留中の状態にある

おそらく、プライベートエンドポイントGUIDがサービスの許可リストに追加されていません。_サービスの許可リストにプライベートエンドポイントGUIDを追加する_ステップを再確認してください。

接続をテストする

プライベートリンク接続で問題が発生している場合は、opensslを使用して接続を確認してください。プライベートリンクエンドポイントの状態がAcceptedであることを確認してください。

OpenSSLが接続できるはずです(出力に「CONNECTED」が表示されます)。errno=104は期待されるものです。

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

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

次のコマンドを実行してプライベートエンドポイントフィルターを確認します:

さらなる情報

Azure Private Linkに関する詳細情報は、azure.microsoft.com/en-us/products/private-linkをご覧ください。