クイックスタート: Azure PowerShell を使用して Azure Front Door を作成する

適用対象: ✔️ Front Door Standard ✔️ Front Door Premium

このクイックスタートでは、Azure PowerShell を使用して Azure Front Door プロファイルを作成する方法を説明します。 配信元として 2 つの Web アプリを使用し、Azure Front Door エンドポイントのホスト名を使用して接続を検証します。

Azure PowerShell を使用した Azure Front Door のデプロイ環境のダイアグラム。

注

Web ワークロードの場合は、新たに発生する DDoS 攻撃から保護するために 、Azure DDoS Protection と 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 に自動的にはコピーされません。 Azure Cloud Shell の [使ってみる] の例を示すスクリーンショット。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Azure Cloud Shell を起動するボタン。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Azure portal の [Cloud Shell] ボタンを示すスクリーンショット

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. 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 アプリに自動的にルーティングされます。

メッセージ「Web アプリは実行中で、お客様のコンテンツを待機しています」のスクリーンショット

インスタントのグローバル フェールオーバーをテストするには:

  1. ブラウザーを開き、次のエンドポイント ホスト名にアクセスします: contosofrontend-<hash>.z01.azurefd.net。

  2. Stop-AzWebApp を実行して、Web アプリの 1 つを停止します。

    Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
    
  3. ブラウザーを更新します。 同じ情報ページが表示されるはずです。

  4. 他の Web アプリを停止します。

    Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-02"
    
  5. ブラウザーを更新します。 今回はエラー メッセージが表示されます。

    Web アプリの両方のインスタンスが停止したというメッセージのスクリーンショット。

  6. 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 のチュートリアルに進んでください。