次の方法で共有


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

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

Azure PowerShell を使用した 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 に自動的にはコピーされません。 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 のチュートリアルに進んでください。