プライベート リンク サービスを、プライベートにルーティング可能な任意の宛先 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 サービスの直接接続とは
Private Link サービス (PLS) 直接接続を使用すると、次のことができます。
- 仮想ネットワーク内のプライベートにルーティング可能な特定の宛先 IP アドレスにトラフィックを直接ルーティングします。
- 直接 IP 接続が必要なシナリオでは、ロード バランサーの要件をバイパスします。
- トラフィックの送信先を正確に制御する必要があるカスタム ルーティング シナリオをサポートします。
- オンプレミス のリソース、サード パーティの SaaS、仮想アプライアンスへのセキュリティで保護されたアクセスなど、拡張されたシナリオを構成します。
一般的なユース ケース
- 静的 IP 接続を必要とするアプリケーションのデータベースに直接接続する
- ロード バランサーの転送で機能しないカスタム アプリケーション シナリオをサポートする
- 直接 IP ベースのルーティングが必要なレガシ アプリケーションを有効にする
- Private Link を使用してユーザー定義ルーティング (UDR) を必要とするシナリオ
- オンプレミスの接続を提供する
主な要件
- 少なくとも 2 つの IP 構成を指定します。この機能では、高可用性のために少なくとも 2 つの IP 構成が 2 つの倍数で必要です。
- 静的宛先 IP アドレスを指定する: ターゲット IP は、仮想ネットワーク内で到達可能である必要があります。
- サブネットで privateLinkServiceNetworkPolicies プロパティを無効にします。このプロパティは、この機能には必要ありません。
制限事項
Private Link サービス Direct Connect を使用する場合は、次の制限事項に注意してください。
- ExpressRoute 経由のオンプレミス接続: PLS Direct Connect と ExpressRoute ゲートウェイは同じ仮想ネットワーク内に存在する必要があり、ピアリングされた仮想ネットワークまたはグローバルにピアリングされた仮想ネットワークの ExpressRoute ゲートウェイを介したオンプレミスの宛先へのルーティングはサポートされていません。
- 宛先としてのプライベート エンドポイントはサポートされていません。宛先 IP アドレスをプライベート エンドポイントにすることはできません。
- 2 つ以上の IP 構成が必要です。PLS 直接接続をデプロイするには、少なくとも 2 つの IP 構成、または 2 の倍数 (最大 8 個の制限 ) が必要です。
- サブスクリプションあたり最大 10 PLS: サブスクリプションごとにリージョンあたり 10 PLS のハードウェア制限があります。
- 帯域幅の制限: 各 PLS 直接接続では、最大 10 Gbps の帯域幅をサポートできます。
- 静的 IP 要件: ターゲットの宛先 IP アドレスは静的に割り当てる必要があります。動的に割り当てられたターゲット IP アドレスはサポートされていません。
- リージョン間の制限: ソース プライベート エンドポイント、プライベート リンク サービス、およびクライアント VM は、同じリージョンに存在する必要があります。 この制限は、機能が一般公開されている場合に削除されます。
- リージョンの可用性: この機能は、限られたリージョン (米国中北部、米国東部 2、米国中部、米国中南部、米国西部、米国西部 2、米国西部 3、アジア南東部、オーストラリア東部、スペイン中部) で利用できます。
-
プライベートエンドポイントのネットワークセキュリティグループサポート:PLS Direct Connectに関連付けられたプライベートエンドポイントでは、
PrivateEndpointNetworkPoliciesが有効化した設定(NetworkSecurityGroupEnabledも含む)はプレビュー中はサポートされません。
考慮事項
- 移行のサポートなし: この機能をデプロイするには、新しい Private Link サービスが必要です。 既存のプライベート リンク サービスの移行はサポートされていません。
- 使用可能なクライアント サポート: PowerShell、CLI、または Terraform を使用して、この新しい Private Link サービスをデプロイします。 ポータルのサポートは、ポータルで機能をアクティブにするプレビュー リンク (aka.ms/PortalPLSDirectConnect) を介して利用できます。 機能を構成するためのプレビュー リンクを使用しない完全なポータル サポートは保留中です。
- IP 転送が有効になっている: サブスクリプションに IP 転送を無効にするポリシーがある場合は、ポリシーを無効にして適切な構成を許可する必要があります。 Private Link サービス Direct Connect ネットワーク インターフェイス (NIC) では、IP 転送が無効 (false) に設定されている場合がありますが、サービスは IP 転送が有効になっているかのように機能します。
Private Link サービス Direct Connect を作成する
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 サービスとプライベート エンドポイントの両方を作成した後、構成を確認します。
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
機能フラグはポータルに表示されません。 この機能に登録するにはどうすればよいですか?
- Azure CLI または PowerShell を使用して機能フラグ Microsoft.Network/AllowPrivateLinkserviceUDR を登録します。詳しい手順については、Azure サブスクリプションでプレビュー機能を設定する - Azure Resource Manager | Microsoft Learn を参照してください。
プロパティ privateLinkServiceNetworkPolicies は、GA のようなケースで True に設定する必要があることはありますか?
- この機能には privateLinkServiceNetworkPolicies プロパティは必要ないため、false に設定します。
Private Link サービスの Direct Connect NIC で IP 転送が無効になっているのはなぜですか?
- NIC は、プラットフォームの要件により、IP 転送が無効になっている状態で表示されます。 これは予想されます。Private Link サービスの Direct Connect では、内部的に必要な転送動作が実行され、トラフィックが正しくルーティングされます。