クイックスタート: Azure PowerShell を使用して Azure Front Door を作成する
このクイックスタートでは、Azure PowerShell を使用して Azure Front Door プロファイルを作成する方法を説明します。 配信元として 2 つの Web アプリを使用し、Azure Front Door エンドポイントのホスト名を使用して接続を検証します。
Note
Web ワークロードの場合は、新たな DDoS 攻撃から保護するために Azure DDoS 保護と Web アプリケーション ファイアウォールを利用することを強くお勧めします。 もう 1 つのオプションは、Web アプリケーション ファイアウォールと共に Azure Front Door を使用することです。 Azure Front Door は、ネットワーク レベルの DDoS 攻撃に対するプラットフォーム レベルの保護を提供します。 詳細については、Azure サービスのセキュリティ ベースラインに関するページを参照してください。
前提条件
- アクティブなサブスクリプションが含まれる 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 キーを選択して、コードまたはコマンドを実行します。
リソース グループを作成する
New-AzResourceGroup を使用して、次のようにリソース グループを作成します。
New-AzResourceGroup -Name myRGFD -Location centralus
2 つの Web アプリ インスタンスを作成する
New-AzWebApp を使用して、異なる Azure リージョンに 2 つの Web アプリ インスタンスを作成します。
# Create first web app in Central US region.
$webapp1 = New-AzWebApp `
-Name "WebAppContoso-01" `
-Location centralus `
-ResourceGroupName myRGFD `
-AppServicePlan myAppServicePlanCentralUS
# Create second web app in East US region.
$webapp2 = New-AzWebApp `
-Name "WebAppContoso-02" `
-Location EastUS `
-ResourceGroupName myRGFD `
-AppServicePlan myAppServicePlanEastUS
Azure Front Door を作成する
Azure Front Door プロファイルを作成する
New-AzFrontDoorCdnProfile を実行して、Azure Front Door プロファイルを作成します。
$fdprofile = New-AzFrontDoorCdnProfile `
-ResourceGroupName myRGFD `
-Name contosoAFD `
-SkuName Premium_AzureFrontDoor `
-Location Global
エンドポイントの追加
New-AzFrontDoorCdnEndpoint を実行して、プロファイルにエンドポイントを作成します。
$FDendpoint = New-AzFrontDoorCdnEndpoint `
-EndpointName contosofrontend `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-Location Global
配信元グループを作成する
正常性プローブと負荷分散設定を作成し、New-AzFrontDoorCdnOriginGroup を使用して配信元グループを作成します。
# Create health probe settings
$HealthProbeSetting = New-AzFrontDoorCdnOriginGroupHealthProbeSettingObject `
-ProbeIntervalInSecond 60 `
-ProbePath "/" `
-ProbeRequestType GET `
-ProbeProtocol Http
# Create load balancing settings
$LoadBalancingSetting = New-AzFrontDoorCdnOriginGroupLoadBalancingSettingObject `
-AdditionalLatencyInMillisecond 50 `
-SampleSize 4 `
-SuccessfulSamplesRequired 3
# Create origin group
$originpool = New-AzFrontDoorCdnOriginGroup `
-OriginGroupName og `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HealthProbeSetting $HealthProbeSetting `
-LoadBalancingSetting $LoadBalancingSetting
配信元をグループに追加する
New-AzFrontDoorCdnOrigin を使用して、Web アプリの配信元をその配信元グループに追加します。
# Add first web app origin to origin group.
$origin1 = New-AzFrontDoorCdnOrigin `
-OriginGroupName og `
-OriginName contoso1 `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HostName webappcontoso-01.azurewebsites.net `
-OriginHostHeader webappcontoso-01.azurewebsites.net `
-HttpPort 80 `
-HttpsPort 443 `
-Priority 1 `
-Weight 1000
# Add second web app origin to origin group.
$origin2 = New-AzFrontDoorCdnOrigin `
-OriginGroupName og `
-OriginName contoso2 `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HostName webappcontoso-02.azurewebsites.net `
-OriginHostHeader webappcontoso-02.azurewebsites.net `
-HttpPort 80 `
-HttpsPort 443 `
-Priority 1 `
-Weight 1000
ルートを追加する
New-AzFrontDoorCdnRoute を使用して、エンドポイントを配信元グループにマップします。
$Route = New-AzFrontDoorCdnRoute `
-EndpointName contosofrontend `
-Name defaultroute `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-ForwardingProtocol MatchRequest `
-HttpsRedirect Enabled `
-LinkToDefaultDomain Enabled `
-OriginGroupId $originpool.Id `
-SupportedProtocol Http,Https
Azure Front Door をテストする
Azure Front Door プロファイルの作成後、グローバルに構成が展開されるまでに数分かかります。 完了したら、作成したフロントエンド ホストにアクセスします。
Get-AzFrontDoorCdnEndpoint を実行して、Azure Front Door エンドポイントのホスト名を取得します。
$fd = Get-AzFrontDoorCdnEndpoint `
-EndpointName contosofrontend `
-ProfileName contosoafd `
-ResourceGroupName myRGFD
$fd.hostname
ブラウザーで、次のエンドポイントのホスト名 (contosofrontend-<hash>.z01.azurefd.net
) にアクセスします。 要求は、配信元グループ内の最も待機時間が短い Web アプリに自動的にルーティングされます。
インスタントのグローバル フェールオーバーをテストするには:
ブラウザーを開き、次のエンドポイント ホスト名にアクセスします:
contosofrontend-<hash>.z01.azurefd.net
。Stop-AzWebApp を実行して、Web アプリの 1 つを停止します。
Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
ブラウザーを更新します。 同じ情報ページが表示されるはずです。
他の Web アプリを停止します。
Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-02"
ブラウザーを更新します。 今回はエラー メッセージが表示されます。
Start-AzWebApp を実行して、Web アプリの 1 つを再起動します。 ブラウザーを更新すると、ページは通常の状態に戻ります。
Start-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
リソースをクリーンアップする
Azure Front Door で作成したリソースが不要になった場合は、そのリソース グループを削除します。 この操作により、Azure Front Door とそれに関連するすべてのリソースが削除されます。 Remove-AzResourceGroup を実行します。
Remove-AzResourceGroup -Name myRGFD
次のステップ
Azure Front Door にカスタム ドメインを追加する方法を学習するには、Azure Front Door のチュートリアルに進んでください。