クイックスタート: Azure CLI を使用して Azure Front Door を作成する
このクイックスタートでは、Azure CLI を使用して Azure Front Door を作成する方法について説明します。 2 つの Azure Web Apps を配信元としてプロファイルを設定し、WAF セキュリティ ポリシーを追加します。 最後に、Azure Front Door エンドポイント ホスト名を使用して、Web Apps への接続を確認します。
Note
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 Services で配信元として使用する Azure Front Door プロファイルを作成します。
az afd profile create を実行して、Azure Front Door プロファイルを作成します。
Note
Azure Front Door Premium ではなく Standard をデプロイする場合は、sku パラメーターの値を Standard_AzureFrontDoor
に置き換えます。 WAF ポリシーを使用したマネージド ルールは、Standard SKU では使用できません。 詳細な比較については、Azure Front Door レベルの比較に関する記事を参照してください。
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
Web アプリの 2 つのインスタンスを作成する
このステップでは、異なる Azure リージョンで実行される 2 つの Web アプリ インスタンスを作成します。 どちらのインスタンスもアクティブ/アクティブ モードで動作します。つまり、どちらかがトラフィックを処理できます。 この構成は、1 つのインスタンスがフェールオーバーとして機能するアクティブ/スタンバイ構成とは異なります。
App Service プランを作成する
まず、2 つの App Service プランを、1 つは米国中部、もう 1 つは米国東部に作成します。
次のコマンドを実行して、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 プランに Web アプリを作成します。 Web アプリ名はグローバルに一意である必要があります。
以下のコマンドを実行して Web アプリを作成します。
az webapp create \
--name WebAppContoso-01 \
--resource-group myRGFD \
--plan myAppServicePlanCentralUS
az webapp create \
--name WebAppContoso-02 \
--resource-group myRGFD \
--plan myAppServicePlanEastUS
各 Web アプリの既定のホスト名は、次の手順で Azure Front Door をデプロイするとき、バックエンド アドレスを定義する際に必要になるのでメモしておきます。
Azure Front Door を作成する
Azure Front Door プロファイルを作成する
az afd profile create を実行して、Azure Front Door プロファイルを作成します。
Note
Azure Front Door Premium ではなく Standard をデプロイするには、sku
パラメーターを Standard_AzureFrontDoor
に設定します。 WAF ポリシーを使用したマネージド ルールは、Standard SKU では使用できません。 詳細な比較については、Azure Front Door レベルの比較に関する記事を参照してください。
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
エンドポイントの追加
Azure Front Door プロファイルにエンドポイントを作成します。 "エンドポイント" は、ドメイン名に関連付けられた 1 つ以上のルートの論理的なグループです。 それぞれのエンドポイントには Azure Front Door によってドメイン名が割り当てられ、ルートを使用してエンドポイントをカスタム ドメインと関連付けることができます。 Azure Front Door プロファイルには、複数のエンドポイントを含めることができます。
az afd endpoint create を実行して、プロファイルにエンドポイントを作成します。
az afd endpoint create \
--resource-group myRGFD \
--endpoint-name contosofrontend \
--profile-name contosoafd \
--enabled-state Enabled
Azure 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
配信元グループに配信元を追加する
先ほど作成した両方のアプリ インスタンスを、新しい配信元グループに配信元として追加します。 Azure Front Door の配信元とは、キャッシュが有効でないとき、またはキャッシュ ミスが発生したときに、Azure 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 でのルートについて詳しくは、「配信元へのトラフィック ルーティング方法」をご覧ください。
新しいセキュリティ ポリシーを作成する
Azure Front Door 上の Azure Web Application Firewall (WAF) は、Web アプリケーションを一元的に保護し、一般的な悪用や脆弱性から保護します。
このチュートリアルでは、2 つのマネージド ルールが含まれる WAF ポリシーを作成します。 カスタム ルールを使用して WAF ポリシーを作成することもできます。
WAF ポリシーを作成する
az network front-door waf-policy create を実行して、Azure Front Door の新しい WAF ポリシーを作成します。 この例では、有効化され、保護モードになるポリシーを作成します。
Note
マネージド ルールは、Azure Front Door Premium レベルでのみ使用できます。 Standard レベルではカスタム ルールを使用できます。
az network front-door waf-policy create \
--name contosoWAF \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor \
--disabled false \
--mode Prevention
Note
Detection
モードを選択した場合、WAF では要求がブロックされません。
Azure Front Door の WAF ポリシー設定の詳細については、「Web アプリケーション ファイアウォール用の Azure Front Door でのポリシー設定」を参照してください。
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
Azure Front Door のマネージド ルールの詳細については、「Web Application Firewall の DRS ルール グループとルール」を参照してください。
セキュリティ ポリシーを適用する
次に、セキュリティ ポリシーを作成して、WAF ポリシーを Azure Front Door に適用します。 この設定により、先ほど定義したエンドポイントに Azure マネージド ルールが適用されます。
az afd security-policy create を実行して、WAF ポリシーをエンドポイントの既定のドメインに適用します。
Note
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
Azure Front Door をテストする
Azure Front Door プロファイルを作成した後、グローバルに構成がデプロイされるまでに数分かかります。 完了したら、作成したフロントエンド ホストにアクセスできます。
az afd endpoint show を実行して、Azure 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
リソースをクリーンアップする
Azure Front Door で作成されたリソースが不要になった場合は、リソース グループを削除できます。 このアクションにより、Azure Front Door と関連するすべてのリソースが削除されます。
次のコマンドを実行して、リソース グループを削除します。
az group delete --name myRGFD
次のステップ
次の記事に進んで、カスタム ドメインを Azure Front Door に追加する方法を学習してください。