クイックスタート: Azure CLI を使用して Azure Front Door を作成する
このクイックスタートでは、Azure CLI を使用して Azure Front Door を作成する方法について説明します。 2 つの Azure Web Apps を配信元として使用してこのプロファイルを作成し、WAF セキュリティ ポリシーを追加します。 その後、Azure Front Door エンドポイント ホスト名を使用して、Web アプリへの接続を確認できます。
注意
Web ワークロードの場合は、新たな DDoS 攻撃から保護するために Azure DDoS 保護と Web アプリケーション ファイアウォールを利用することを強くお勧めします。 もう 1 つのオプションは、Web アプリケーション ファイアウォールと共に Azure Front Door を使用することです。 Azure Front Door は、ネットワーク レベルの DDoS 攻撃に対するプラットフォーム レベルの保護を提供します。 詳細については、Azure サービスのセキュリティ ベースラインに関するページを参照してください。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
前提条件
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 で、関連するリソースをリソース グループに割り当てます。 既存のリソース グループを使用することも、新しいリソース グループを作成することもできます。
az group create を実行して、リソース グループを作成します。
az group create --name myRGFD --location centralus
Azure Front Door プロファイルを作成する
このステップでは、2 つの App Service で配信元として使用する Azure Front Door プロファイルを作成します。
az afd profile create を実行して、Azure Front Door プロファイルを作成します。
注意
Azure Front Door Premium の代わりに Azure Front Door Standard をデプロイする場合は、sku パラメーターの値を Standard_AzureFrontDoor に置き換えます。 Standard SKU を選択した場合、WAF ポリシーを使用してマネージド ルールをデプロイすることはできません。 詳細な比較については、 「Azure Front Door レベルの比較」を参照してください。
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
Web アプリの 2 つのインスタンスを作成する
このステップでは、このチュートリアル用に異なる Azure リージョンで実行される 2 つの Web アプリ インスタンスを作成します。 どちらの Web アプリケーション インスタンスも "アクティブ/アクティブ " モードで実行されるため、どちらでもトラフィックに対応することができます。 この構成は、一方がフェールオーバーとして機能する "アクティブ/スタンバイ" 構成とは異なります。
App Service プランを作成する
Web アプリを作成する前に、2 つの App Service プランを、1 つは "米国中部" に、もう 1 つは "米国東部" に作成する必要があります。
az appservice plan create を実行して、App Service プランを作成します。
az appservice plan create \
--name myAppServicePlanCentralUS \
--resource-group myRGFD \
--location centralus
az appservice plan create \
--name myAppServicePlanEastUS \
--resource-group myRGFD \
--location eastus
Web アプリを作成する
App Service プランが作成されたら、az webapp create を実行して、前の手順の各 App Service プランで Web アプリを作成します。 Web アプリ名は、グローバルに一意である必要があります。
az webapp create \
--name WebAppContoso-01 \
--resource-group myRGFD \
--plan myAppServicePlanCentralUS
az webapp create \
--name WebAppContoso-02 \
--resource-group myRGFD \
--plan myAppServicePlanEastUS
次のステップで Front Door をデプロイするときにバックエンド アドレスを定義できるように、各 Web アプリの既定のホスト名をメモしておきます。
Azure Front Door を作成する
Front Door プロファイルを作成する
az afd profile create を実行して、Azure Front Door プロファイルを作成します。
注意
Premium ではなく Azure Front Door Standard をデプロイする場合は、sku パラメーターの値を Standard_AzureFrontDoor
に置き換えます。 Standard SKU を選択した場合、WAF ポリシーを使用してマネージド ルールをデプロイすることはできません。 詳細な比較については、 「Azure Front Door レベルの比較」を参照してください。
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
エンドポイントの追加
このステップでは、Front Door プロファイルにエンドポイントを作成します。 Front Door Standard/Premium の "エンドポイント" は、ドメイン名に関連付けられる 1 つ以上のルートの論理的なグループです。 それぞれのエンドポイントには Front Door によってドメイン名が割り当てられ、ルートを使用してエンドポイントをカスタム ドメインと関連付けることができます。 Front Door プロファイルには、複数のエンドポイントを含めることもできます。
az afd endpoint create を実行して、プロファイルにエンドポイントを作成します。
az afd endpoint create \
--resource-group myRGFD \
--endpoint-name contosofrontend \
--profile-name contosoafd \
--enabled-state Enabled
Front Door でのエンドポイントについて詳しくは、「Azure Front Door のエンドポイント」をご覧ください。
配信元グループを作成する
アプリ インスタンスのトラフィックと予想される応答を定義する配信元グループを作成します。 配信元グループでは正常性プローブによる配信元の評価方法も定義されており、このステップでそれを定義できます。
az afd origin-group create を実行して、2 つの Web アプリを含む配信元グループを作成します。
az afd origin-group create \
--resource-group myRGFD \
--origin-group-name og \
--profile-name contosoafd \
--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
配信元グループを追加する
先ほど作成した両方のアプリ インスタンスを、新しい配信元グループに配信元として追加します。 Front Door の配信元とは、キャッシュが有効でないとき、またはキャッシュが失われたときに、Front Door がそこから内容を取得するアプリケーションのことです。
az afd origin create を実行して、最初のアプリ インスタンスを配信元として配信元グループに追加します。
az afd origin create \
--resource-group myRGFD \
--host-name webappcontoso-01.azurewebsites.net \
--profile-name contosoafd \
--origin-group-name og \
--origin-name contoso1 \
--origin-host-header webappcontoso-01.azurewebsites.net \
--priority 1 \
--weight 1000 \
--enabled-state Enabled \
--http-port 80 \
--https-port 443
この手順を繰り返して、2 番目のアプリ インスタンスを配信元として配信元グループに追加します。
az afd origin create \
--resource-group myRGFD \
--host-name webappcontoso-02.azurewebsites.net \
--profile-name contosoafd \
--origin-group-name og \
--origin-name contoso2 \
--origin-host-header webappcontoso-02.azurewebsites.net \
--priority 1 \
--weight 1000 \
--enabled-state Enabled \
--http-port 80 \
--https-port 443
配信元、配信元グループ、正常性プローブについて詳しくは、「Azure Front Door の配信元と配信元グループ」をご覧ください
ルートを追加する
先ほど作成したエンドポイントを配信元グループにマップするルートを追加します。 このルートでは、エンドポイントからの要求を配信元グループに転送します。
az afd route create を実行して、エンドポイントを配信元グループにマッピングします。
az afd route create \
--resource-group myRGFD \
--profile-name contosoafd \
--endpoint-name contosofrontend \
--forwarding-protocol MatchRequest \
--route-name route \
--https-redirect Enabled \
--origin-group og \
--supported-protocols Http Https \
--link-to-default-domain Enabled
Azure Front Door でのルートについて詳しくは、「配信元へのトラフィック ルーティング方法」をご覧ください。
新しいセキュリティ ポリシーを作成する
Front Door 上の Azure Web Application Firewall (WAF) は、Web アプリケーションを一元的に保護し、一般的な悪用や脆弱性から保護します。
このチュートリアルでは、2 つのマネージド ルールを追加する WAF ポリシーを作成します。 カスタム ルールを使用して WAF ポリシーを作成することもできます
WAF ポリシーを作成する
az network front-door waf-policy create を実行して、Front Door の新しい WAF ポリシーを作成します。 この例では、有効化され、保護モードになるポリシーを作成します。
注意
マネージド ルールは、Front Door Premium レベルでのみ機能します。 カスタム ルールのみを使う場合は、Standard レベルを選択できます。
az network front-door waf-policy create \
--name contosoWAF \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor \
--disabled false \
--mode Prevention
注意
Detection
モードを選択した場合、WAF は要求をブロックしません。
Front Door の WAF ポリシー設定について詳しくは、「Azure Front Door での Web アプリケーション ファイアウォールのポリシーの設定」をご覧ください。
WAF ポリシーにマネージド ルールを割り当てる
Azure で管理される規則セットにより、一般的なセキュリティ脅威に対してアプリケーションを保護するための簡単な方法が提供されます。
az network front-door waf-policy managed-rules add を実行して、WAF ポリシーにマネージド ルールを追加します。 この例では、Microsoft_DefaultRuleSet_2.1 と Microsoft_BotManagerRuleSet_1.0 をポリシーに追加します。
az network front-door waf-policy managed-rules add \
--policy-name contosoWAF \
--resource-group myRGFD \
--type Microsoft_DefaultRuleSet \
--action Block \
--version 2.1
az network front-door waf-policy managed-rules add \
--policy-name contosoWAF \
--resource-group myRGFD \
--type Microsoft_BotManagerRuleSet \
--version 1.0
Front Door のマネージド ルールについて詳しくは、「Web Application Firewall の DRS 規則グループと規則」をご覧ください。
セキュリティ ポリシーを作成する
次に、セキュリティ ポリシーを作成して、これら 2 つの WAF ポリシーを Front Door に適用します。 この設定により、先ほど定義したエンドポイントに Azure マネージド ルールが適用されます。
az afd security-policy create を実行して、WAF ポリシーをエンドポイントの既定のドメインに適用します。
注意
domains と waf-policy パラメーターで、"mysubscription" を自分の Azure サブスクリプション ID に置き換えてください。 az account subscription list を実行して、サブスクリプション ID の詳細を取得します。
az afd security-policy create \
--resource-group myRGFD \
--profile-name contosoafd \
--security-policy-name contososecurity \
--domains /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contosofrontend \
--waf-policy /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF
Front Door をテストする
Azure Front Door Standard/Premium プロファイルを作成する際、グローバルに構成がデプロイされるまでに数分かかります。 完了したら、作成したフロントエンド ホストにアクセスできます。
az afd endpoint show を実行して、Front Door エンドポイントのホスト名を取得します。
az afd endpoint show --resource-group myRGFD --profile-name contosoafd --endpoint-name contosofrontend
ブラウザーで、次のエンドポイントのホスト名 (contosofrontend-<hash>.z01.azurefd.net
) にアクセスします。 要求は、配信元グループ内の最も潜在性の低い Web アプリに自動的にルーティングされます。
即時グローバル フェールオーバーをテストするには、次の手順を使用します。
ブラウザーを開き、次のエンドポイント ホスト名にアクセスします:
contosofrontend-<hash>.z01.azurefd.net
。az webapp stop を実行して、Web Apps の 1 つを停止する
az webapp stop --name WebAppContoso-01 --resource-group myRGFD
ブラウザーを更新します。 同じ情報ページが表示されるはずです。
ヒント
これらの操作では、わずかな待ち時間が発生します。 場合によっては、再度、最新の情報に更新する必要があります。
もう一方の Web アプリを探し、同様に停止します。
az webapp stop --name WebAppContoso-02 --resource-group myRGFD
ブラウザーを更新します。 今回はエラー メッセージが表示されます。
az webapp start を再起動して、Web Apps の 1 つを停止する ブラウザーを更新すると、ページは通常の状態に戻ります。
az webapp start --name WebAppContoso-01 --resource-group myRGFD
リソースをクリーンアップする
Front Door のリソースが不要な場合は、両方のリソース グループを削除します。 リソース グループを削除すると、Front Door とそのすべての関連リソースも削除されます。
az group delete を実行します。
az group delete --name myRGFD
次の手順
次の記事に進んで、フロント ドアにカスタム ドメインを追加する方法を学習してください。