Private Link を使用して Azure Front Door Premium を Azure Application Gateway に接続する (プレビュー)
この記事では、Azure Private Link を使用して Azure Application Gateway にプライベートに接続するように Azure Front Door Premium を構成する手順について説明します。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
ローカルにインストールされた Azure PowerShell または Azure Cloud Shell。
注意
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
Azure Cloud Shell
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
オプション | 例とリンク |
---|---|
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
機能している Azure Front Door Premium のプロファイルとエンドポイントを用意します。 Azure Front Door プロファイルを作成する方法の詳細については、Front Door の作成 - PowerShellに関する記事を参照してください。
機能している Azure Application Gateway を用意します。 Application Gateway を作成する方法の詳細については「Azure PowerShell を使用した Azure Application Gateway による Web トラフィックの転送」を参照してください
Azure Application Gateway へのプライベート接続を有効にする
Azure Application Gateway の Private Link を構成するページの手順に従います。ただし、プライベート エンドポイントを作成する最後の手順は省いてください。
配信元グループを作成し、アプリケーション ゲートウェイを配信元として追加する
New-AzFrontDoorCdnOriginGroupHealthProbeSettingObject を使用して、正常性プローブの設定を格納するためのメモリ内オブジェクトを作成します。
$healthProbeSetting = New-AzFrontDoorCdnOriginGroupHealthProbeSettingObject ` -ProbeIntervalInSecond 60 ` -ProbePath "/" ` -ProbeRequestType GET ` -ProbeProtocol Http
New-AzFrontDoorCdnOriginGroupLoadBalancingSettingObject を使用して、負荷分散の設定を格納するためのメモリ内オブジェクトを作成します。
$loadBalancingSetting = New-AzFrontDoorCdnOriginGroupLoadBalancingSettingObject ` -AdditionalLatencyInMillisecond 50 ` -SampleSize 4 ` -SuccessfulSamplesRequired 3
New-AzFrontDoorCdnOriginGroup を実行して、アプリケーション ゲートウェイを含めた配信元グループを作成します。
$origingroup = New-AzFrontDoorCdnOriginGroup ` -OriginGroupName myOriginGroup ` -ProfileName myFrontDoorProfile ` -ResourceGroupName myResourceGroup ` -HealthProbeSetting $healthProbeSetting ` -LoadBalancingSetting $loadBalancingSetting
Get-AzApplicationGatewayFrontendIPConfig コマンドを使用して、Application Gateway のフロントエンド IP 構成の名前を取得します。
$AppGw = Get-AzApplicationGateway -Name myAppGateway -ResourceGroupName myResourceGroup $FrontEndIPs= Get-AzApplicationGatewayFrontendIPConfig -ApplicationGateway $AppGw $FrontEndIPs.name
New-AzFrontDoorCdnOrigin コマンドを使用して、アプリケーション ゲートウェイを配信元グループに追加します。
New-AzFrontDoorCdnOrigin ` -OriginGroupName myOriginGroup ` -OriginName myAppGatewayOrigin ` -ProfileName myFrontDoorProfile ` -ResourceGroupName myResourceGroup ` -HostName 10.0.0.4 ` -HttpPort 80 ` -HttpsPort 443 ` -OriginHostHeader 10.0.0.4 ` -Priority 1 ` -PrivateLinkId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/myAppGateway ` -SharedPrivateLinkResourceGroupId $FrontEndIPs.name ` -SharedPrivateLinkResourcePrivateLinkLocation CentralUS ` -SharedPrivateLinkResourceRequestMessage 'Azure Front Door private connectivity request' ` -Weight 1000 `
Note
SharedPrivateLinkResourceGroupId
は、Azure Application Gateway のフロントエンド IP 構成の名前です。
プライベート エンドポイントを承認する
Get-AzPrivateEndpointConnection を実行して、承認が必要なプライベート エンドポイント接続の接続名を取得します。
Get-AzPrivateEndpointConnection -ResourceGroupName myResourceGroup -ServiceName myAppGateway -PrivateLinkResourceType Microsoft.Network/applicationgateways
Approve-AzPrivateEndpointConnection を実行して、プライベート エンドポイント接続の詳細を承認します。 接続を承認するには、前の手順の出力の Name 値を使用します。
Get-AzPrivateEndpointConnection -Name aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.bbbbbbbb-1111-2222-3333-cccccccccccc -ResourceGroupName myResourceGroup -ServiceName myAppGateway -PrivateLinkResourceType Microsoft.Network/applicationgateways
Azure Front Door のセットアップを完了する
New-AzFrontDoorCdnRoute コマンドを使用して、エンドポイントを配信元グループにマップするルートを作成します。 このルートでは、エンドポイントからの要求を配信元グループに転送します。
# Create a route to map the endpoint to the origin group
$Route = New-AzFrontDoorCdnRoute `
-EndpointName myFrontDoorEndpoint `
-Name myRoute `
-ProfileName myFrontDoorProfile `
-ResourceGroupName myResourceGroup `
-ForwardingProtocol MatchRequest `
-HttpsRedirect Enabled `
-LinkToDefaultDomain Enabled `
-OriginGroupId $origingroup.Id `
-SupportedProtocol Http,Https
最後の手順を完了すると、Azure Front Door プロファイルは完全に機能します。
前提条件
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
機能している Azure Front Door Premium プロファイルとエンドポイント。 Front Door を作成する - CLI に関するページを参照してください。
機能している Azure Application Gateway。 「Azure Application Gateway による Web トラフィックの転送 - Azure CLI」を参照してください。
Azure Application Gateway へのプライベート接続を有効にする
Azure Application Gateway の Private Link を構成する方法に関するページの手順に従います。ただし、プライベート エンドポイントを作成する最後の手順はスキップしてください。
配信元グループを作成し、アプリケーション ゲートウェイを配信元として追加する
az afd origin-group create を実行して、配信元グループを作成します。
az afd origin-group create \ --resource-group myResourceGroup \ --origin-group-name myOriginGroup \ --profile-name myFrontDoorProfile \ --probe-request-type GET \ --probe-protocol Http \ --probe-interval-in-seconds 60 \ --probe-path / \ --sample-size 4 \ --successful-samples-required 3 \ --additional-latency-in-milliseconds 50
az network application-gaeay frontend-ip list を実行して、Application Gateway のフロントエンド IP 構成の名前を取得します。
az network application-gateway frontend-ip list --gateway-name myAppGateway --resource-group myResourceGroup
az afd origin create を実行して、アプリケーション ゲートウェイを配信元グループに配信元として追加します。
az afd origin create \ --enabled-state Enabled \ --resource-group myResourceGroup \ --origin-group-name myOriginGroup \ --origin-name myAppGatewayOrigin \ --profile-name myFrontDoorProfile \ --host-name 10.0.0.4 \ --origin-host-header 10.0.0.4 \ --http-port 80 \ --https-port 443 \ --priority 1 \ --weight 500 \ --enable-private-link true \ --private-link-location centralus \ --private-link-request-message 'Azure Front Door private connectivity request.' \ --private-link-resource /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRGAG/providers/Microsoft.Network/applicationGateways/myAppGateway \ --private-link-sub-resource-type myAppGatewayFrontendIPName
Note
private-link-sub-resource-type
は Azure Application Gateway フロントエンド IP 構成の名前です。
プライベート エンドポイント接続を承認する
az network private-endpoint-connection list を実行して、承認が必要なプライベート エンドポイント接続の ID を取得します。
az network private-endpoint-connection list --name myAppGateway --resource-group myResourceGroup --type Microsoft.Network/applicationgateways
az network private-endpoint-connection approve を実行して、前の手順の ID を使用してプライベート エンドポイント接続を承認します。
az network private-endpoint-connection approve --id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/myAppGateway/privateEndpointConnections/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.bbbbbbbb-1111-2222-3333-cccccccccccc
Azure Front Door のセットアップを完了する
az afd route create を実行して、エンドポイントを配信元グループにマップするルートを作成します。 このルートでは、エンドポイントからの要求を配信元グループに転送します。
az afd route create \
--resource-group myResourceGroup \
--profile-name myFrontDoorProfile \
--endpoint-name myFrontDoorEndpoint \
--forwarding-protocol MatchRequest \
--route-name myRoute \
--https-redirect Enabled \
--origin-group myOriginGroup \
--supported-protocols Http Https \
--link-to-default-domain Enabled
最後の手順を完了すると、Azure Front Door プロファイルは完全に機能します。
回避するべき一般的なミス
Azure Private Link を有効にして Azure Application Gateway の配信元を構成する場合によくある間違いを次に示します。
Azure Application Gateway で Azure Private Link を構成する前に Azure Front Door 配信元を構成する。
パブリック オリジンを含む既存の配信元グループに Azure Private Link を使用して Azure Application Gateway の配信元を追加する。 Azure Front Door では、同じ配信元グループにパブリック オリジンとプライベート オリジンを混在させることはできません。
SharedPrivateLinkResourceGroupId
の値として、正しくない Azure Application Gateway フロントエンド IP 構成の名前を指定する。
private-link-sub-resource-type
の値として、正しくない Azure Application Gateway フロントエンド IP 構成の名前を指定する。
次のステップ
ストレージ アカウントでの Private Link サービスについて学習します。