> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure 上の BYOC プライベートネットワーク設定

> Azure 上の BYOC 向けに VNet ピアリングまたはプライベートリンクを設定する

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

ClickHouse BYOC on Azure は、[Azure Virtual Network ピアリング](https://learn.microsoft.com/azure/virtual-network/virtual-network-peering-overview)と[Azure プライベートリンク](https://learn.microsoft.com/azure/private-link/private-link-overview)の 2 つのプライベート接続オプションをサポートしています。どちらのオプションでもトラフィックは Azure バックボーン内を通るため、パブリックインターネットを経由することはありません。

<div id="common-prerequisites">
  ## 前提条件
</div>

VNet ピアリングとプライベートリンクの両方に共通する前提手順。

<div id="step-enable-private-load-balancer-for-clickhouse-byoc">
  ### ClickHouse BYOC のプライベートロードバランサーを有効にする
</div>

ClickHouse Cloud コンソールで、BYOC インフラストラクチャの **プライベートロードバランサー** を有効にします。どちらの接続オプションもこの内部ロードバランサーを経由するため、有効にするまでどちらも利用できません。

<Image img="https://mintcdn.com/private-7c7dfe99/opz1Ra3A0XYGQQzH/images/cloud/reference/byoc-private-load-balancer-azure.webp?fit=max&auto=format&n=opz1Ra3A0XYGQQzH&q=85&s=c04fb293d7b6d74dec045371674c30a3" size="md" alt="BYOC プライベートロードバランサーを有効化" border width="1435" height="1096" data-path="images/cloud/reference/byoc-private-load-balancer-azure.webp" />

インフラストラクチャの **Spoken name** をメモしておきます。ClickHouse は、お客様自身の Azure サブスクリプション内の `clickhouse-cloud-<spoken-name>-default` という名前のマネージドリソースグループに BYOC インフラストラクャをデプロイします。以下の手順では、そのリソースグループ内で BYOC VNet を確認します。

<div id="azure-vnet-peering">
  ## VNet ピアリングを設定する
</div>

開始する前に、[Azure Virtual Network ピアリング](https://learn.microsoft.com/azure/virtual-network/virtual-network-peering-overview)とその[要件および制約](https://learn.microsoft.com/azure/virtual-network/virtual-network-manage-peering#requirements-and-constraints)を確認してください。ClickHouse BYOC では、ピアリング経由で ClickHouse サービスへのネットワーク接続を可能にするために、プライベート ロード バランサーを使用します。

<Note>
  以下の手順は、お客様の VNet の 1 つが BYOC VNet と直接ピアリングする単純なシナリオを対象としています。ハブアンドスポーク トポロジやオンプレミス接続などの高度なシナリオでは、いくつかの調整が必要です。詳細については、[制限事項](#vnet-peering-limitations)を参照してください。
</Note>

<div id="vnet-peering-prerequisites">
  ### ピアリングに関する追加の前提条件
</div>

**アドレス空間が重複していないこと。** ピアリングする仮想ネットワークの IP アドレス範囲は重複できません。ご使用の VNet のアドレス空間と、Azure Portal の BYOC VNet の **概要** ページに表示される BYOC VNet のアドレス空間を比較してください。重複している場合は、代わりにプライベートリンクを使用してください。

**アクセス許可。** ピアリングを作成するには、*両方* の仮想ネットワークに対して `Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write` および `Microsoft.Network/virtualNetworks/peer/action` のアクセス許可が必要です。組み込みの **Network Contributor** ロールには、これらのアクセス許可が含まれます。[仮想ネットワーク ピアリングのアクセス許可](https://learn.microsoft.com/azure/virtual-network/virtual-network-manage-peering#permissions)を参照してください。

<Steps>
  <Step title="BYOC 仮想ネットワークからピアリングを作成する" id="step-1-create-peering-from-byoc-vnet">
    1. [Azure Portal](https://portal.azure.com) にサインインし、**BYOC サブスクリプション**に切り替えます。
    2. **Virtual networks** を検索し、`clickhouse-cloud-<spoken-name>-default` リソース グループ内の BYOC VNet を選択します。
    3. **Settings** で **Peerings** を選択し、**+ Add** を選択します。

    <Image img="https://mintcdn.com/private-7c7dfe99/q1j8AEITpaXZR_oV/images/cloud/reference/byoc-vnetpeering-azure-1.webp?fit=max&auto=format&n=q1j8AEITpaXZR_oV&q=85&s=9f60b83a7702af6f2e978eac6caf729e" size="lg" alt="BYOC VNet ピアリングの作成" border width="3126" height="1556" data-path="images/cloud/reference/byoc-vnetpeering-azure-1.webp" />

    4. ピアリングの両方の設定を入力します。

    <Image img="https://mintcdn.com/private-7c7dfe99/q1j8AEITpaXZR_oV/images/cloud/reference/byoc-vnetpeering-azure-2.webp?fit=max&auto=format&n=q1j8AEITpaXZR_oV&q=85&s=bfa7f148087df37b85d30a53896b7984" size="md" alt="BYOC VNet ピアリングの構成" border width="1326" height="1965" data-path="images/cloud/reference/byoc-vnetpeering-azure-2.webp" />

    5. **Add** をクリックします。
  </Step>

  <Step title="自動作成されなかった場合は、逆方向のピアリングを作成する" id="step-2-create-reverse-peering">
    Azure のピアリングは方向ごとに 1 つずつ、2 つの設定で構成されており、両方が存在するまでトラフィックは流れません。前の手順でポータルが両方の設定を作成した場合は、この手順をスキップします。

    VNet が別のサブスクリプションまたはテナントにあるため、BYOC 側の設定のみを作成した場合、その状態は **Initiated** になります。自身の VNet から対応する設定を作成します。

    1. VNet を所有するサブスクリプションに切り替え、その VNet に対する **Network Contributor** 権限を持つアカウントでサインインします。
    2. 自身の VNet を選択し、**Peerings** → **+ Add** を選択します。
    3. **I know my resource ID** を選択し、**BYOC VNet リソース ID** を貼り付けて、BYOC サブスクリプションを所有する **Directory** を選択します。必要に応じて **Authenticate** を選択します。
    4. **Add** を選択します。
  </Step>

  <Step title="両方の設定が接続されていることを確認する" id="step-3-verify-peering">
    いずれかの仮想ネットワークで **Peerings** を開きます。両側の **Peering status** が **Connected** と表示されている必要があります。状態が **Initiated** のままの場合は対応する設定がなく、**Disconnected** と表示される場合は対応する設定が削除されています。

    ルート テーブルを変更する必要はありません。Azure は、ピアリングされたアドレス空間用のシステム ルートを両側に自動的に追加します。VNet 内の任意のネットワーク インターフェイスの **Effective routes** で確認できます。BYOC のアドレス空間は、次ホップ タイプが **VNet peering** として表示されます。

    <Image img="https://mintcdn.com/private-7c7dfe99/q1j8AEITpaXZR_oV/images/cloud/reference/byoc-vnetpeering-azure-3.webp?fit=max&auto=format&n=q1j8AEITpaXZR_oV&q=85&s=2c88e1adaa1a9f5edcfa345da952a467" size="lg" alt="BYOC VNet ピアリングの確認" border width="2165" height="1505" data-path="images/cloud/reference/byoc-vnetpeering-azure-3.webp" />
  </Step>

  <Step title="ネットワーク セキュリティ グループでピアリングされた VNet からのアクセスを許可する" id="step-4-allow-address-space-through-nsg">
    BYOC サブネットは、デフォルトで VNet 内のトラフィックを拒否する、ClickHouse 管理の[ネットワーク セキュリティ グループ](https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview)によって保護されています。[`VirtualNetwork` サービス タグ](https://learn.microsoft.com/azure/virtual-network/service-tags-overview#available-service-tags)にはピアリングされた VNet のアドレス空間も含まれるため、受信許可ルールを追加するまで、ピアリング経由のトラフィックは破棄されます。

    ピアリングされた VNet の CIDR 範囲を含む受信ルールの追加を依頼するには、ClickHouse Support までお問い合わせください。この手順を実施しない場合、ピアリングは **Connected** と表示されますが、接続はタイムアウトします。
  </Step>

  <Step title="ピアリング経由で ClickHouse service にアクセスする" id="step-5-access-ch-service-via-peering">
    ClickHouse へプライベートにアクセスするため、ピアリングされた VNet から安全に接続できるよう、プライベート ロード バランサーとエンドポイントがプロビジョニングされます。プライベート エンドポイントは、パブリック エンドポイントに `-private` 接尾辞を付けた形式です。例:

    * **パブリック エンドポイント**: `h5ju65kv87.mhp0y4dmph.westus3.azure.clickhouse-byoc.com`
    * **プライベート エンドポイント**: `h5ju65kv87-private.mhp0y4dmph.westus3.azure.clickhouse-byoc.com`
  </Step>
</Steps>

<div id="vnet-peering-limitations">
  ### 制限事項
</div>

**ピアリングは推移的ではありません。** サービスに到達できるのは、BYOC VNet と直接ピアリングされている VNet のみです。ハブの背後にあるスポーク VNet 内のクライアントや、ExpressRoute または VPN ゲートウェイ経由で接続するオンプレミスのクライアントは、単一のピアリングではカバーされません。これらのトポロジでは、**転送されたトラフィックを許可する**設定やゲートウェイ トランジットなど、追加の構成が必要です。詳細は [ゲートウェイとオンプレミス接続](https://learn.microsoft.com/azure/virtual-network/virtual-network-peering-overview#gateways-and-on-premises-connectivity) を参照するか、代わりに プライベートリンク を使用してください。

**リージョン間ピアリングは機能しますが、コストが高くなります。** 異なるリージョンの VNet 間のピアリングはグローバル ピアリングです。ClickHouse には通常どおり到達できます。BYOC のプライベート ロード バランサーは Standard SKU の内部ロード バランサーであり、グローバル ピアリング経由でロード バランサーのフロントエンドに到達することに関する Azure の制限は、Basic SKU のロード バランサーにのみ適用されます。ただし、往復レイテンシの増加と[リージョン間データ転送料金](https://azure.microsoft.com/pricing/details/virtual-network)が発生します。レイテンシに敏感なワークロードには、同一リージョンでのピアリングを推奨します。リージョン間ピアリングが **Connected** と表示されていても接続に失敗する場合、原因はリージョンではありません。最も一般的な原因は、アドレス空間に対する受信ネットワーク セキュリティ グループ ルールが不足していることです。ClickHouse Support にお問い合わせください。

**アドレス空間の変更には再同期が必要です。** ピアリングの作成後に VNet のアドレス空間を変更した場合は、新しい範囲がアドバタイズされるように[ピアリングを同期](https://learn.microsoft.com/azure/virtual-network/update-virtual-network-peering-address-space)し、それらを対象に含めるよう受信ネットワーク セキュリティ グループ ルールを拡張するため、ClickHouse Support にお問い合わせください。

**ピアリング トラフィックには課金されます。** Azure では、ピアリングをまたぐイングレスとエグレスに対して課金されます。[仮想ネットワークの料金](https://azure.microsoft.com/pricing/details/virtual-network)を参照してください。

<div id="delete-vnet-peering">
  ### ピアリングを削除する
</div>

どちらの側からでもピアリングを削除できます。片方を削除するとリンクが切断され、もう片方は **Disconnected** 状態のままになります。完全にクリーンアップするには、両方のピアリングを削除してください。詳細は[ピアリングの削除](https://learn.microsoft.com/azure/virtual-network/virtual-network-manage-peering#delete-a-peering)を参照してください。

<div id="setup-privatelink">
  ## プライベートリンクを設定する
</div>

Azure プライベートリンクは、ClickHouse BYOCサービスへの安全なプライベート接続を提供します。すべてのトラフィックはAzureネットワーク内で処理されるため、パブリックインターネットを経由しません。

<Steps>
  <Step title="ClickHouseコンソールでプライベートリンクを有効にする" id="step-1-enable-private-link">
    <Note>
      前提条件として、**プライベートロードバランサー**を有効にしておいてください。
    </Note>

    <Image img="https://mintcdn.com/private-7c7dfe99/_Wm1iA2BOg7clsCl/images/cloud/reference/byoc-privatelink.webp?fit=max&auto=format&n=_Wm1iA2BOg7clsCl&q=85&s=d3a063f250ac548a25ab7e323ea24cd9" size="md" alt="BYOC PrivateLink を有効化" border width="2800" height="1848" data-path="images/cloud/reference/byoc-privatelink.webp" />
  </Step>

  <Step title={<>エンドポイントサービス名（<code>Service name</code>）を取得する</>} id="step-2-obtain-endpoint-service-name">
    1. ClickHouse Cloud console で、Private Link 経由で接続するサービスの Settings ページに移動します。
    2. "プライベート エンドポイントを設定" をクリックします。
    3. 開いたフライアウトで、`Service name` (Private Link サービスのエイリアス) と `DNS name` の値をコピーします。これらは次の手順で使用します。 (Private Link を有効にしてから値が生成されるまで、しばらく時間がかかる場合があります。)
           <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-privatelink-pe-create.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=f650cb45d35bda7e72386027c94a2133" size="md" alt="プライベート エンドポイント" border width="1898" height="918" data-path="images/cloud/security/azure-privatelink-pe-create.webp" />
  </Step>

  <Step title="ネットワーク内にプライベート エンドポイントを作成する" id="step-3-create-endpoint">
    1. **ご自身の Azure Portal** (クライアントアプリケーションが存在する Azure サブスクリプション) を開き、**Network Foundation** → **Private endpoints** → **Create** の順に選択します。
    2. **Basics** タブで、プライベート エンドポイントのサブスクリプション、リソース グループ、名前、リージョンを選択します。リージョンは、クライアントアプリケーションが接続元として使用する VNet と同じリージョンにします。
           <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-pe-create-basic.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=fab48a5216c31538c13758e70fb669b4" size="md" alt="プライベート エンドポイントの基本設定を作成" border width="784" height="923" data-path="images/cloud/security/azure-pe-create-basic.webp" />
    3. **Resource** タブで、**Connect to an Azure resource by resource ID or alias** を選択し、前の手順で取得した `Service name` を入力します。
           <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-pe-resource.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=910da72d9890bb9e6acf0d318951444c" size="md" alt="プライベート エンドポイントのリソース選択" border width="1122" height="911" data-path="images/cloud/security/azure-pe-resource.webp" />
    4. **Virtual Network** タブで、プライベート エンドポイントを作成する仮想ネットワークとサブネットを選択します。必要に応じて、アプリケーション セキュリティ グループを関連付けて、プライベート エンドポイントへのトラフィックをフィルタリングします。
           <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-pe-create-vnet.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=2a27bbea4d16466ae9e946863ceca6bc" size="md" alt="プライベート エンドポイントの仮想ネットワーク選択" border width="1056" height="917" data-path="images/cloud/security/azure-pe-create-vnet.webp" />
    5. 残りのタブを進み、**Create** をクリックします。作成したプライベート エンドポイントの **Connection status** は、次の手順でその `Resource ID` を ClickHouse service allow list に追加するまで、**Pending** 状態のままです。
    6. プライベート エンドポイントに関連付けられたネットワーク インターフェイスを開き、**Private IPv4 address** をコピーします。DNS 設定の手順で使用します。
           <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-pe-ip.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=e5ee6a31ba1f1f43cbe12b16377ea35a" size="lg" alt="プライベート エンドポイントの IP アドレス" border width="1155" height="621" data-path="images/cloud/security/azure-pe-ip.webp" />
  </Step>

  <Step title={<>プライベート エンドポイントの<code>リソース ID</code>を ClickHouse サービスの許可リストに追加する</>} id="step-4-add-endpoint-id-to-services-allow-list">
    プライベート エンドポイントのリソース ID を取得するには、Azure Portal で先ほど作成したプライベート エンドポイントを開き、**JSON View** をクリックします。次に、最上位レベルの `id` フィールド (ビューの上部に表示される **Resource ID**。形式は `/subscriptions/.../providers/Microsoft.Network/privateEndpoints/<name>`) をコピーします。`properties` オブジェクト内にネストされている `id` フィールドは使用しないでください。

    <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-pe-resource-id.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=e90839650dd0f482b0f92c44f982e968" size="lg" alt="プライベート エンドポイントのリソース ID" border width="1704" height="1824" data-path="images/cloud/security/azure-pe-resource-id.webp" />

    1. ClickHouse Cloud console で、Private Link 経由で接続するサービスの Settings ページに移動します。
    2. 「Set up private endpoint」をクリックします。
    3. 開いたフライアウトで、上で取得した `Resource ID` を、任意の説明とともに `Endpoint ID` フィールドに入力します。
    4. 「Create endpoint」をクリックします。

    <Note>
      既存の Private Link 接続からのアクセスを許可する場合は、既存のエンドポイントのドロップダウンメニューを使用します。
      ドロップダウンには、同じインフラストラクチャ内のサービスへの既存の Private Link 接続が表示されます。
    </Note>

    <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-privatelink-pe-filter.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=6d63219782a1c14f2196d4fdaeebad56" size="md" alt="プライベート エンドポイントのフィルター" border width="1898" height="918" data-path="images/cloud/security/azure-privatelink-pe-filter.webp" />

    <Note>
      Azure Portal で手動承認を行う必要はありません。`Resource ID` を許可リストに追加すると、エンドポイント接続は自動的に承認され、その `LinkID` が ClickHouse service の Istio `AuthorizationPolicy` に自動的に追加されます。サブスクリプション内のプライベート エンドポイントの **Connection status** は **Approved** に変わります。
    </Note>
  </Step>

  <Step title="エンドポイントのプライベート DNS 名を設定する" id="step-5-set-private-dns-name-for-endpoint">
    <Note>
      DNS の構成方法はいくつかあります。ユースケースに応じて DNS を設定してください。
    </Note>

    "DNS name" (サービス ID より後の部分すべて。例: `privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.com`) のすべてのサブドメイン (ワイルドカード) を、プライベート エンドポイントの IP アドレスに向ける必要があります。これにより、VNet 内のサービスやコンポーネントが正しく名前解決できるようになります。Azure Private DNS を使用した一般的な設定は次のとおりです。

    1. 先頭のサービス ID を除いた "DNS name" を名前とする [Private DNS zone を作成します](https://learn.microsoft.com/en-us/azure/dns/private-dns-getstarted-portal)。例: `privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.com`。
    2. ゾーン内にワイルドカード レコード セットを作成します。**Name** には `*` を指定し、**IP Address** には先ほどコピーしたプライベート エンドポイントの IP アドレスを入力します。
    3. [Private DNS zone を仮想ネットワークにリンクします](https://learn.microsoft.com/en-us/azure/dns/private-dns-getstarted-portal#link-the-virtual-network)。これにより、VNet 内のクライアントがゾーンを名前解決できるようになります。

    VNet 内のホストから DNS 設定を確認します。"DNS name" がプライベート エンドポイントの IP アドレスに名前解決されることを確認してください。

    ```bash theme={null}
    nslookup h5ju65kv87.privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.com
    ```
  </Step>

  <Step title="プライベートリンク経由でインスタンスにアクセスする" id="step-6-connect-via-privatelink">
    1. ClickHouse Cloud コンソールで、サービスの Settings ページに移動します。
    2. 「プライベート エンドポイントを設定」をクリックします。
    3. 開いたフライアウトで、`DNS name` をコピーします。
           <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/security/azure-privatelink-pe-dns.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=119bbe26574ec0e4561292ab179ff327" size="md" alt="プライベート エンドポイントの DNS 名" border width="1898" height="918" data-path="images/cloud/security/azure-privatelink-pe-dns.webp" />
           <Note>
             Private Link 経由での ClickHouse サービスへのアクセスは、ClickHouse が BYOC インフラストラクチャ内で管理するサービスレベルの **Istio Authorization Policy** によって制御されます。
           </Note>
  </Step>
</Steps>
