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

Azure Private Link

Scale plan feature

Azure Private Link is available in the Scale and Enterprise plans. To upgrade, visit the Plans page in the cloud console.

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

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

注記

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

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

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

注意

ClickHouseは、Azureリージョン内で同じ公開されたPrivate Linkサービスを再利用するために、サービスをグループ化しようとします。ただし、このグループ化は保証されておらず、特にサービスを複数のClickHouse組織に分散させている場合は特にそうです。 すでにClickHouse組織内で他のサービスのためにPrivate Linkが設定されている場合、そのグループ化のために大部分の手順をスキップし、最終手順であるプライベートエンドポイントGUIDをサービスの許可リストに追加に直接進むことができます。

ClickHouseのTerraformプロバイダリポジトリでTerraformの例を見つけてください。

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

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

サービス名およびDNS名をメモしておいてください。次のステップで必要になります。

オプション2: API

始める前に、ClickHouse Cloud APIキーが必要です。新しいキーを作成するか、既存のキーを使用できます。

APIキーが手に入ったら、コマンドを実行する前に次の環境変数を設定します:

地域、プロバイダ、サービス名でフィルタリングしてClickHouseのINSTANCE_IDを取得します:

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

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

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

参考

このセクションでは、Azure Private Linkを介してClickHouseを構成するためのClickHouse特有の詳細をカバーしています。Azure特有の手順は参照用に提供されており、どこを見れば良いかのガイドとなりますが、Azureクラウドプロバイダからの通知なしに時間と共に変更される可能性があります。特定のユースケースに基づいてAzure構成を検討してください。

ClickHouseは、必要なAzureプライベートエンドポイントやDNSレコードの構成について責任を負いません。

Azure構成タスクに関する問題は、Azureサポートに直接連絡してください。

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

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

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

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


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

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

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


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

リソースIDまたはエイリアスには、Azure接続エイリアスを取得するステップで取得したendpointServiceIdを使用します。

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


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

オプション:

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

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

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


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

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


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

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

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

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

Terraformを使用してプライベートエンドポイントを作成するために、以下のテンプレートを使用します:

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

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

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

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

プライベートリンクを介してリソースにアクセスするために、プライベート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を選択します。

オプション2: Terraformを使用

ワイルドカードDNSレコードを作成するために、次のTerraformテンプレートを使用します:

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

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

プライベートDNSゾーンに仮想ネットワークをリンクするためのガイドに従ってください。

オプション2: Terraformを使用

注記

DNSを設定する方法はいくつかあります。特定のユースケースに基づいてDNSを設定してください。

Azure接続エイリアスを取得するステップから取得した"DNS名"をプライベートエンドポイントのIPアドレスにポイントする必要があります。これにより、VPC/ネットワーク内のサービスやコンポーネントが適切に解決できるようになります。

DNS設定を確認する

xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloudドメインはプライベートエンドポイントのIPにポイントされる必要があります。(この例では10.0.0.4)

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

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

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

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

オプション2: API

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

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

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

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

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

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

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

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

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

注記

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

オプション2: API

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

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

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

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

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

プライベートリンクが有効な各サービスには、公開エンドポイントとプライベートエンドポイントがあります。プライベートリンクを介して接続するには、Azure接続エイリアスを取得するから取得したprivateDnsHostnameAPIまたはDNS名コンソールを使用する必要があります。

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

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

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

オプション2: API

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

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

以下のような応答を受け取るはずです:

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

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

トラブルシューティング

DNS設定をテストする

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

ここで「dns名」はAzure接続エイリアスを取得するからのprivateDnsHostnameAPIまたはDNS名コンソールです。

次のような応答を受け取るはずです:

接続がリセットされた

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

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

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

接続をテストする

プライベートリンクを介して接続する際に問題がある場合は、opensslを使用して接続を確認してください。プライベートリンクエンドポイントのステータスが受理済みであることを確認します。

OpenSSLは接続できるはずです(出力にCONNECTEDと表示されます)。errno=104は予想されることです。

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

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

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

更なる情報

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