次の方法で共有


クイック スタート: ARM テンプレートを使用して Azure フロント ドア (クラシック) を作成する

適用対象: ✔️ Front Door (クラシック)

Von Bedeutung

Azure Front Door (クラシック) は、2027 年 3 月 31 日に廃止されます。 サービスの中断を回避するには、2027 年 3 月までに Azure Front Door (クラシック) プロファイルAzure Front Door Standard または Premium レベルに移行することが重要です。 詳細については、Azure Front Door (クラシック) の廃止に関するページを参照してください。

このクイックスタートでは、Azure Resource Manager テンプレート (ARM テンプレート) を使って、Web エンドポイントの高可用性を設定するための Azure フロント ドア (クラシック) を作成する方法を説明します。

Azure Resource Manager テンプレートは、プロジェクトのインフラストラクチャと構成を定義する JavaScript Object Notation (JSON) ファイルです。 このテンプレートでは、宣言型の構文が使用されています。 デプロイを作成するための一連のプログラミング コマンドを記述しなくても、意図したデプロイを記述できます。

環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、 [Azure へのデプロイ] ボタンを選択します。 テンプレートが Azure portal で開きます。

Resource Manager テンプレートを Azure に配置するボタン。

[前提条件]

  • Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
  • Web サイトまたはアプリケーションの IP または FQDN。

テンプレートを確認する

このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。

このクイックスタートでは、1 つのバックエンドと、/* に一致する 1 つの既定のパスを使って、フロント ドアの構成を作成します。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "3725740582931828211"
    }
  },
  "parameters": {
    "frontDoorName": {
      "type": "string",
      "metadata": {
        "description": "The name of the frontdoor resource."
      }
    },
    "backendAddress": {
      "type": "string",
      "metadata": {
        "description": "The hostname of the backend. Must be an IP address or FQDN."
      }
    }
  },
  "variables": {
    "frontEndEndpointName": "frontEndEndpoint",
    "loadBalancingSettingsName": "loadBalancingSettings",
    "healthProbeSettingsName": "healthProbeSettings",
    "routingRuleName": "routingRule",
    "backendPoolName": "backendPool"
  },
  "resources": [
    {
      "type": "Microsoft.Network/frontDoors",
      "apiVersion": "2021-06-01",
      "name": "[parameters('frontDoorName')]",
      "location": "global",
      "properties": {
        "enabledState": "Enabled",
        "frontendEndpoints": [
          {
            "name": "[variables('frontEndEndpointName')]",
            "properties": {
              "hostName": "[format('{0}.azurefd.net', parameters('frontDoorName'))]",
              "sessionAffinityEnabledState": "Disabled"
            }
          }
        ],
        "loadBalancingSettings": [
          {
            "name": "[variables('loadBalancingSettingsName')]",
            "properties": {
              "sampleSize": 4,
              "successfulSamplesRequired": 2
            }
          }
        ],
        "healthProbeSettings": [
          {
            "name": "[variables('healthProbeSettingsName')]",
            "properties": {
              "path": "/",
              "protocol": "Http",
              "intervalInSeconds": 120
            }
          }
        ],
        "backendPools": [
          {
            "name": "[variables('backendPoolName')]",
            "properties": {
              "backends": [
                {
                  "address": "[parameters('backendAddress')]",
                  "backendHostHeader": "[parameters('backendAddress')]",
                  "httpPort": 80,
                  "httpsPort": 443,
                  "weight": 50,
                  "priority": 1,
                  "enabledState": "Enabled"
                }
              ],
              "loadBalancingSettings": {
                "id": "[resourceId('Microsoft.Network/frontDoors/loadBalancingSettings', parameters('frontDoorName'), variables('loadBalancingSettingsName'))]"
              },
              "healthProbeSettings": {
                "id": "[resourceId('Microsoft.Network/frontDoors/healthProbeSettings', parameters('frontDoorName'), variables('healthProbeSettingsName'))]"
              }
            }
          }
        ],
        "routingRules": [
          {
            "name": "[variables('routingRuleName')]",
            "properties": {
              "frontendEndpoints": [
                {
                  "id": "[resourceId('Microsoft.Network/frontDoors/frontEndEndpoints', parameters('frontDoorName'), variables('frontEndEndpointName'))]"
                }
              ],
              "acceptedProtocols": [
                "Http",
                "Https"
              ],
              "patternsToMatch": [
                "/*"
              ],
              "routeConfiguration": {
                "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration",
                "forwardingProtocol": "MatchRequest",
                "backendPool": {
                  "id": "[resourceId('Microsoft.Network/frontDoors/backEndPools', parameters('frontDoorName'), variables('backendPoolName'))]"
                }
              },
              "enabledState": "Enabled"
            }
          }
        ]
      }
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[parameters('frontDoorName')]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.Network/frontDoors', parameters('frontDoorName'))]"
    }
  }
}

テンプレートには、1 つの Azure リソースが定義されています。

テンプレートをデプロイする

  1. 次のコード ブロックの [使ってみる] を選択して Azure Cloud Shell を開き、指示に従って Azure にサインインします。

    $projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names"
    $location = Read-Host -Prompt "Enter the location (i.e. centralus)"
    $templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.network/front-door-create-basic/azuredeploy.json"
    
    $resourceGroupName = "${projectName}rg"
    
    New-AzResourceGroup -Name $resourceGroupName -Location "$location"
    New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri
    
    Read-Host -Prompt "Press [ENTER] to continue ..."
    

    コンソールからプロンプトが表示されるまで待ちます。

  2. 前のコード ブロックから [コピー] を選択して、PowerShell スクリプトをコピーします。

  3. シェル コンソール ウィンドウを右クリックし、 [貼り付け] を選択します。

  4. 値を入力します。

    テンプレートのデプロイにより、1 つのバックエンドを使用した Front Door が作成されます。 この例では、microsoft.combackendAddress として使用されます。

    リソース グループの名前は、rg が付加されたプロジェクト名です。

    テンプレートが正常にデプロイされるためには、frontDoorName がグローバルに一意の名前である必要があります。 デプロイが失敗した場合は、手順 1. からやり直します。

    テンプレートのデプロイには数分かかります。 完了すると、次のように出力されます。

    Front Door Resource Manager テンプレートの PowerShell デプロイ出力

テンプレートをデプロイするには Azure PowerShell を使用します。 Azure PowerShell だけでなく、Azure portal、Azure CLI、および REST API を使用することもできます。 他のデプロイ方法については、「テンプレートのデプロイ」を参照してください。

デプロイメントを検証する

  1. Azure portal にサインインします。

  2. 左側のウィンドウから [リソース グループ] を選択します。

  3. 前のセクションで作成したリソース グループを選択します 既定のリソース グループ名は、プロジェクト名に rg が追加されたものです。

  4. 前に作成したフロント ドアを選んでから、[フロントエンド ホスト] リンクを選びます。 このリンクにより、Web ブラウザーが開き、作成時に定義したバックエンド FQDN にリダイレクトされます。

    Front Door ポータルの概要

リソースをクリーンアップする

Front Door サービスが必要なくなったら、リソース グループを削除します。 これにより、Front Door とすべての関連リソースが削除されます。

リソース グループを削除するには、Remove-AzResourceGroup コマンドレットを呼び出します。

Remove-AzResourceGroup -Name <your resource group name>

次のステップ

このクイックスタートでは、Front Door を作成しました。

フロント ドアにカスタム ドメインを追加する方法を学習するには、Front Door のチュートリアルに進んでください。