Azure Resource Manager テンプレートを使用して App Service Environment を作成する

App Service Environment は、Azure Resource Manager テンプレートを使用して作成でき、反復可能なデプロイを行うことができます。

Note

この記事では、Isolated v2 App Service プランで使用される App Service Environment v3 について説明します。

概要

Azure App Service Environment は、インターネットにアクセス可能なエンドポイントまたは Azure Virtual Network 内の内部アドレスのエンドポイントを使用して作成できます。 内部エンドポイントを使用して作成すると、内部ロード バランサー (ILB) と呼ばれる Azure コンポーネントによってそのエンドポイントが提供されます。 内部 IP アドレスの App Service Environment は、ILB ASE と呼ばれます。 パブリック エンドポイントを持つ App Service Environment は、外部 ASE と呼ばれます。

ASE は、Azure Portal または Azure Resource Manager テンプレートを使用して作成できます。 この記事では、Resource Manager テンプレートを使用して外部 ASE または ILB ASE を作成するために必要な手順と構文について説明します。 Azure portal で App Service Environment を作成する方法について説明します。

Azure portal で App Service Environment を作成する場合は、同時に仮想ネットワークを作成するか、またはデプロイする既存の仮想ネットワークを選択できます。

テンプレートから App Service Environment を作成するときは、以下が必要です。

  • Azure Virtual Network。
  • その仮想ネットワーク内のサブネット。 推奨されるサブネット サイズは、将来的な規模の拡大およびスケーリングのニーズに対応できる、256 のアドレスを持つ /24 です。 App Service Environment の作成後は、サイズを変更することはできません。
  • デプロイ先の場所。

App Service Environment の構成

App Service Environment を作成する基本的な Resource Manager テンプレートは次のようになります。

{
    "type": "Microsoft.Web/hostingEnvironments",
    "apiVersion": "2022-03-01",
    "name": "[parameters('aseName')]",
    "location": "[resourceGroup().location]",
    "kind": "ASEV3",
    "properties": {
        "internalLoadBalancingMode": "Web, Publishing",
        "virtualNetwork": {
            "id": "[parameters('subnetResourceId')]"
        },
        "networkingConfiguration": { },
        "customDnsSuffixConfiguration": { }
    },
    "identity": {
        "type": "SystemAssigned"
    }
}

コア プロパティに加えて、App Service Environment の構成に使用できる構成オプションは他にもあります。

  • name:必須。 このパラメーターは、一意の App Service Environment 名を定義します。 名前は 36 文字以下にする必要があります。
  • virtualNetwork -> id: 必須。 サブネットのリソース ID を指定します。 サブネットは空で、Microsoft.Web/hostingEnvironments に委任されている必要があります
  • internalLoadBalancingMode: 必須。 ほとんどの場合、このプロパティを "Web, Publishing" に設定します。これは、HTTP/HTTPS トラフィックと FTP トラフィックの両方が内部 VIP (内部ロード バランサー) 上にあることを意味します。 このプロパティが "None" に設定されている場合、すべてのトラフィックはパブリック VIP (外部ロード バランサー) に残ります。
  • zoneRedundant: 省略可能。 App Service Environment が Availability Zones (AZ) にデプロイされる場合は、true/false で定義します。 詳細については、「リージョンと可用性ゾーン」を参照してください。
  • dedicatedHostCount: 省略可能。 このプロパティは、ほとんどの場合、0 に設定するか、省略します。専用ホストに物理的なハードウェアを分離して App Service Environment をデプロイする場合は、2 に設定できます。
  • upgradePreference: 省略可能。 アップグレードを自動的に開始するか、デプロイを開始する 15 日間の期間を指定するかを定義します。 有効な値は、"None"、"Early"、"Late"、"Manual" です。 詳細については、アップグレードの設定に関するページを参照してください。
  • clusterSettings: 省略可能。 詳細については、クラスター設定に関するページを参照してください。
  • networkingConfiguration -> allowNewPrivateEndpointConnections: 省略可能。 詳細については、ネットワーク構成に関するページを参照してください。
  • networkingConfiguration -> remoteDebugEnabled: 省略可能。 詳細については、ネットワーク構成に関するページを参照してください。
  • networkingConfiguration -> ftpEnabled: 省略可能。 詳細については、ネットワーク構成に関するページを参照してください。
  • networkingConfiguration -> inboundIpAddressOverride: 省略可能。 独自の Azure パブリック IP アドレス (リソース ID を指定) を使用して App Service Environment を作成したり、ILB デプロイ用の静的 IP を定義したりできます。 この設定は、App Service Environment が作成された後は変更できません。
  • customDnsSuffixConfiguration: 省略可能。 App Service Environment のカスタム ドメイン サフィックスを指定できます。 Key Vault からの有効な証明書と、マネージド ID を使用したアクセスが必要です。 特定のパラメーターの詳細については、構成カスタム ドメイン サフィックスに関するページを参照してください。

Note

プロパティ dnsSuffixmultiSizefrontEndScaleFactoruserWhitelistedIpRangesipSslAddressCount は、App Service Environment v3 の作成時にサポートされません。

App Service Environment のデプロイ

たとえば azuredeploy.json という名前の ARM テンプレートと、必要に応じて azuredeploy.parameters.json という名前のパラメーター ファイルを作成すると、Azure CLI コード スニペットを使用して App Service Environment を作成できます。 ファイル パスは、コンピューター上の Resource Manager テンプレート ファイルの場所に一致するように変更してください。 リソース グループ名に独自の値を忘れずに指定してください。

templatePath="PATH/azuredeploy.json"
parameterPath="PATH/azuredeploy.parameters.json"

az deployment group create --resource-group "YOUR-RG-NAME-HERE" --template-file $templatePath --parameters $parameterPath

App Service Environment の作成の所要時間は通常は約 1 時間ですが、ゾーン冗長 App Service Environment である場合や、リージョンで予期しない需要が発生していると、作成プロセスが完了するまでに数時間かかることがあります。

次のステップ