次の方法で共有


Private Link サービスの Direct Connect の構成

プライベート リンク サービスを、プライベートにルーティング可能な任意の宛先 IP アドレスに接続できるようになりました。

Azure Private Link サービスを使用すると、サービス プロバイダーはアプリケーションを標準ロード バランサーの背後に配置することで、顧客がプライベートかつ安全にアプリケーションを使用できるようになります。 Private Link サービス Direct Connect は、この機能を拡張し、プライベート リンク サービスをプライベートにルーティング可能な任意の宛先 IP アドレスに直接接続できるようにします。 この構成は、データベース接続やカスタム アプリケーションなど、直接 IP ベースのルーティングを必要とするアプリケーションにプライベート接続を提供するシナリオに特に役立ちます。

この記事では、Private Link サービス Direct Connect と、Azure PowerShell、Azure CLI、または Terraform を使用して作成する方法について説明します。

この機能はパブリック プレビュー段階であり、一部のリージョンで利用できます。 サブスクリプションに対して有効にする前に、すべての考慮事項を確認してください。

ポータルのサポートは、ポータルで機能をアクティブ化するプレビュー リンク (aka.ms/PortalPLSDirectConnect) を介して利用できます。 機能にアクセスするためのプレビュー リンクを使用しない完全なポータル サポートは保留中です。

[前提条件]

  • アクティブなサブスクリプションを持つ Azure アカウント。
  • ローカルにインストールされている Azure PowerShell、または Azure Cloud Shell を使用します。 詳しくは、Azure PowerShell のインストールに関する記事をご覧ください。
  • Azure CLI がローカルにインストールされているか、Azure Cloud Shell を使用します。 詳細については、「 Azure CLI のインストール」を参照してください。
  • Terraform の場合: Terraform をインストールして構成します
  • サブスクリプションで機能フラグ Microsoft.Network/AllowPrivateLinkserviceUDR を有効にします。 Azure CLI または PowerShell を使用して登録する手順に従います。 Azure プレビュー機能を有効にします
  • サブネットを持つ仮想ネットワーク。
  • 宛先 IP アドレスとして設定するルーティング可能な IP アドレス。

Private Link サービス (PLS) 直接接続を使用すると、次のことができます。

  • 仮想ネットワーク内のプライベートにルーティング可能な特定の宛先 IP アドレスにトラフィックを直接ルーティングします。
  • 直接 IP 接続が必要なシナリオでは、ロード バランサーの要件をバイパスします。
  • トラフィックの送信先を正確に制御する必要があるカスタム ルーティング シナリオをサポートします。
  • オンプレミス のリソース、サード パーティの SaaS、仮想アプライアンスへのセキュリティで保護されたアクセスなど、拡張されたシナリオを構成します。

一般的なユース ケース

  • 静的 IP 接続を必要とするアプリケーションのデータベースに直接接続する
  • ロード バランサーの転送で機能しないカスタム アプリケーション シナリオをサポートする
  • 直接 IP ベースのルーティングが必要なレガシ アプリケーションを有効にする
  • Private Link を使用してユーザー定義ルーティング (UDR) を必要とするシナリオ
  • オンプレミスの接続を提供する

主な要件

  • 少なくとも 2 つの IP 構成を指定します。この機能では、高可用性のために少なくとも 2 つの IP 構成が 2 つの倍数で必要です。
  • 静的宛先 IP アドレスを指定する: ターゲット IP は、仮想ネットワーク内で到達可能である必要があります。
  • サブネットで privateLinkServiceNetworkPolicies プロパティを無効にします。このプロパティは、この機能には必要ありません。

制限事項

Private Link サービス Direct Connect を使用する場合は、次の制限事項に注意してください。

  • 2 つ以上の IP 構成が必要です。PLS 直接接続をデプロイするには、少なくとも 2 つの IP 構成、または 2 の倍数 (最大 8 個の制限 ) が必要です。
  • サブスクリプションあたり最大 10 PLS: サブスクリプションごとにリージョンあたり 10 PLS のハードウェア制限があります。
  • 帯域幅の制限: 各 PLS 直接接続では、最大 10 Gbps の帯域幅をサポートできます。
  • 静的 IP 要件: 宛先 IP はプライベート、静的、直接到達可能である必要があり、動的に変更される IP はサポートされていません。
  • リージョン間の制限: ソース プライベート エンドポイント、プライベート リンク サービス、およびクライアント VM は、同じリージョンに存在する必要があります。 この制限は、機能が一般公開されている場合に削除されます。
  • リージョンの可用性: この機能は、限られたリージョン (米国中北部、米国東部 2、米国中部、米国中南部、米国西部、米国西部 2、米国西部 3、アジア南東部、オーストラリア東部、スペイン中部) で利用できます。

考慮事項

  • 移行のサポートなし: この機能をデプロイするには、新しい Private Link サービスが必要です。 既存のプライベート リンク サービスの移行はサポートされていません。
  • 使用可能なクライアント サポート: PowerShell、CLI、または Terraform を使用して、この新しい Private Link サービスをデプロイします。 ポータルのサポートは、ポータルで機能をアクティブにするプレビュー リンク (aka.ms/PortalPLSDirectConnect) を介して利用できます。 機能を構成するためのプレビュー リンクを使用しない完全なポータル サポートは保留中です。
  • IP 転送が有効になっている: サブスクリプションに IP 転送を無効にするポリシーがある場合は、ポリシーを無効にして適切な構成を許可する必要があります。

Azure PowerShell を使用して Private Link サービス Direct Connect を作成するには、次のスクリプトを使用します。

# Define variables
$resourceGroupName = "rg-pls-directconnect"
$___location = "westus"
$vnetName = "pls-vnet"
$subnetName = "pls-subnet"
$plsName = "pls-directconnect"
$destinationIP = "10.0.1.100"

# Create resource group
New-AzResourceGroup -Name $resourceGroupName -Location $___location

# Create virtual network (corrected parameter name)
$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix "10.0.1.0/24" -privateLinkServiceNetworkPoliciesFlag "Disabled"
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $resourceGroupName -Location $___location -AddressPrefix "10.0.0.0/16" -Subnet $subnet

# Get subnet reference
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName

# Create IP configurations for Private Link service (minimum 2 or in multiples of 2 required)
$ipConfig1 = @{
    Name = "ipconfig1"
    PrivateIpAllocationMethod = "Dynamic"
    Subnet = $subnet
    Primary = $true
}

$ipConfig2 = @{
    Name = "ipconfig2"
    PrivateIpAllocationMethod = "Dynamic"
    Subnet = $subnet
    Primary = $false
}

# Create Private Link service Direct Connect
$pls = New-AzPrivateLinkservice `
    -Name $plsName `
    -ResourceGroupName $resourceGroupName `
    -Location $___location `
    -IpConfiguration @($ipConfig1, $ipConfig2) `
    -DestinationIPAddress $destinationIP

Write-Output "Private Link service created successfully!"
Write-Output "Private Link service ID: $($pls.Id)"
Write-Output "Destination IP Address: $destinationIP"

接続をテストするためのプライベート エンドポイントを作成する

Private Link サービス Direct Connect を作成した後、プライベート エンドポイントを作成して接続をテストします。

# Variables for Private Endpoint
$peResourceGroupName = "rg-pe-test"
$peVnetName = "pe-vnet"
$peSubnetName = "pe-subnet"
$privateEndpointName = "pe-to-pls"
$privateLinkserviceId = "/subscriptions/your-subscription-id/resourceGroups/rg-pls-destinationip/providers/Microsoft.Network/privateLinkservices/pls-directconnect"

# Create resource group for PE
New-AzResourceGroup -Name $peResourceGroupName -Location $___location

# Create VNet for Private Endpoint
$peSubnet = New-AzVirtualNetworkSubnetConfig -Name $peSubnetName -AddressPrefix "10.1.1.0/24" -PrivateEndpointNetworkPoliciesFlag "Disabled"
$peVnet = New-AzVirtualNetwork -Name $peVnetName -ResourceGroupName $peResourceGroupName -Location $___location -AddressPrefix "10.1.0.0/16" -Subnet $peSubnet

# Get subnet reference for Private Endpoint
$peSubnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $peVnet -Name $peSubnetName

# Create Private Endpoint
$privateLinkserviceConnection = @{
    Name = "connection-to-pls"
    PrivateLinkserviceId = $privateLinkserviceId
}

$privateEndpoint = New-AzPrivateEndpoint -Name $privateEndpointName -ResourceGroupName $peResourceGroupName -Location $___location -Subnet $peSubnet -PrivateLinkserviceConnection $privateLinkserviceConnection

Write-Output "Private Endpoint created: $($privateEndpoint.Name)"

構成を確認する

Private Link サービスとプライベート エンドポイントの両方を作成した後、構成を確認します。

# Get Private Link service details
$pls = Get-AzPrivateLinkservice -Name $plsName -ResourceGroupName $resourceGroupName

Write-Output "Private Link service: $($pls.Name)"
Write-Output "Provisioning State: $($pls.ProvisioningState)"
Write-Output "Destination IP: $($pls.DestinationIPAddress)"
Write-Output "IP Configurations: $($pls.IpConfigurations.Count)"

# Check Private Endpoint connections
$connections = $pls.PrivateEndpointConnections
foreach ($connection in $connections) {
    Write-Output "PE Connection: $($connection.Name) - Status: $($connection.PrivateLinkserviceConnectionState.Status)"
}

トラブルシューティング

一般的な問題と解決策

問題: "2 の倍数に少なくとも 2 つの IP 構成を含める必要があります"

解決策: PLS 直接接続を構成するときは、少なくとも 2 つの IP 構成を構成してください。

問題: "宛先 IP アドレスに到達できません"

解決策: 次のことを確認します。

  • 宛先 IP は仮想ネットワーク内で到達可能です
  • PLS と宛先 IP の間に IP 転送または NAT がない
  • 必要なトラフィックを許可するネットワーク セキュリティ グループ

リソースをクリーンアップする

テスト後、継続的な料金を回避するためにリソースをクリーンアップします。

# Remove resource groups (this deletes all resources within them)
Remove-AzResourceGroup -Name $resourceGroupName -Force
Remove-AzResourceGroup -Name $peResourceGroupName -Force

FAQs

機能フラグはポータルに表示されません。 この機能に登録するにはどうすればよいですか?

プロパティ privateLinkServiceNetworkPolicies は、GA のようなケースで True に設定する必要があることはありますか?

  • この機能には privateLinkServiceNetworkPolicies プロパティは必要ないため、false に設定します。

次のステップ