App Service Environment を可用性ゾーンのサポートありに移行する

このガイドでは、App Service Environment を可用性ゾーンのサポートなしから可用性のサポートありに移行する方法について説明します。 移行のさまざまなオプションについて紹介します。

Note

この記事では、Isolated v2 App Service プランで使用される App Service Environment v3 について説明します。 可用性ゾーンは、App Service Environment v3 でのみサポートされます。 App Service Environment v1 または v2 を使用していて、可用性ゾーンを使用する場合は、App Service Environment v3 に移行する必要があります。

Azure App Service Environment を可用性ゾーン (AZ) にデプロイして、ビジネス クリティカルなワークロードの回復性と信頼性を実現するのに役立てることができます。 このアーキテクチャは、ゾーン冗長とも呼ばれます。

ゾーン冗長として構成した場合、プラットフォームによって、選択されたリージョン内の 3 つのゾーンすべてに対して Azure App Service プラン インスタンスが自動的に分散されます。 つまり、App Service プランの最小インスタンス数は常に 3 になります。 3 を超える容量を指定し、インスタンスの数が 3 で割り切れる場合は、インスタンスが均等に分散されます。 それ以外の場合は、3*N を超えるインスタンス数が残りの 1 つまたは 2 つのゾーンに対して分散されます。

前提条件

  • App Service Environment を作成するときに可用性ゾーンを構成します。
    • その App Service Environment で作成されたすべての App Service プランには、少なくとも 3 つのインスタンスが必要であり、それらは自動的にゾーン冗長になります。
  • 可用性ゾーンは、新しい App Service Environment を作成するときにのみ指定できます。 既存の App Service Environment は、可用性ゾーンを使用するように変換できません。
  • 可用性ゾーンは、リージョンのサブセットでのみサポートされます。

ダウンタイムの要件

ダウンタイムは、移行の実行方法によって異なります。 既存の App Service Environment は可用性ゾーンを使用するように変換できないため、移行は、可用性ゾーンが有効になった新しい App Service Environment を作成するサイド バイ サイドのデプロイで構成されます。

ダウンタイムは、以前の App Service Environment から可用性ゾーンが有効になった新しい App Service Environment にトラフィックをリダイレクトする方法によって異なります。 たとえば、アプリケーション ゲートウェイカスタム ドメイン、または Azure Front Door を使用する場合、ダウンタイムは、これらの各サービスを新しいアプリの情報で更新するのにかかる時間によって異なります。 また、Azure Traffic Manager などのサービスを使用して同時に複数のアプリにトラフィックをルーティングし、すべてがデプロイされ、完全にテストされた場合にのみ、可用性ゾーンが有効になった新しいアプリに完全に切り替えることもできます。 App Service Environment の移行オプションについて詳しくは、App Service Environment の移行に関するページを参照してください。 App Service Environment v3 を既に使用している場合は、以前のバージョンからの移行に関する情報を無視し、アプリの移行戦略に重点を置きます。

移行ガイダンス: 再デプロイ

再デプロイを使用する場合

App Service Environment で可用性ゾーンを使用する場合、新しく作成された、可用性ゾーンが有効になった App Service Environment にアプリを再デプロイします。

可用性ゾーンを使用する場合の重要な考慮事項

トラフィックは、使用可能なすべての App Service インスタンスにルーティングされます。 ゾーンがダウンした場合は、App Service プラットフォームによって、失われたインスタンスが検出され、新しい置換インスタンスの検索とトラフィックの拡散が必要に応じて自動的に試行されます。 自動スケーリングを構成済みで、さらに多くのインスタンスが必要と判断された場合は、自動スケーリングから App Service に対してインスタンス追加の要求も発行されます。 自動スケーリングの動作は App Service プラットフォームの動作に依存せず、自動スケーリング インスタンス数の指定が 3 の倍数である必要はありません。 また、失われたインスタンスの補填はベストエフォートで実行されるため、ゾーンがダウンするシナリオにおける追加インスタンスの要求は、成功するとは限らないことに注意する必要があります。 推奨される解決策は、次のセクションで説明しているとおり、ゾーンの喪失に対応できるように App Service プランを作成して構成することです。

可用性ゾーンが有効になっている App Service Environment にデプロイされたアプリケーションは、同じリージョン内の他のゾーンで障害が発生しても、引き続きトラフィックを実行および提供します。 ただし、非実行時の動作 (App Service プランのスケーリング、アプリケーションの作成、アプリケーションの構成、およびアプリケーションの発行を含む) では、他の可用性ゾーンの障害から影響を受ける可能性があります。 App Service Environment のゾーン冗長で確保されるのは、デプロイされたアプリケーションの継続的なアップタイムのみです。

App Service プラットフォームによってインスタンスがゾーン冗長 App Service プランに割り当てられると、基になる Azure Virtual Machine Scale Sets によって提供されるベスト エフォートのゾーン負荷分散が使用されます。 App Service プランの "バランスが取れる" のは、各ゾーンに、その App Service プランで使用される他のすべてのゾーンと同じ数の VM または +/- 1 個の VM がある場合です。

リージョンのデータ所在地

ゾーン冗長App Service Environmentは、デプロイされたリージョン内に顧客データのみ格納します。 App Service に格納されているアプリのコンテンツ、設定、シークレットは、ゾーン冗長 App Service Environment がデプロイされたリージョン内に残ります。

再デプロイ方法

可用性ゾーンを有効にする手順を次に示します。

  1. 可用性ゾーンを再デプロイし、使用できるようにするために、可用性ゾーンをサポートする App Service 占有領域を使用する必要があります。 サポートされるリージョンのいずれかで、新しい App Service Environment を作成します。
  2. 新しい App Service Environment の作成時に zoneRedundant プロパティ (下で説明します) が true に設定されていることを確認します。
  3. 任意のデプロイ方法を使用して、新しい App Service Environment で新しい App Service プランとアプリを作成します。

可用性ゾーンを備えた App Service Environment は、Azure CLIAzure portal、または Azure Resource Manager (ARM) テンプレートを使用して作成できます。

Azure CLI を使用して可用性ゾーンを有効にするには、App Service Environment の作成時に --zone-redundant パラメーターを含めます。

az appservice ase create --resource-group MyResourceGroup --name MyAseName --zone-redundant --vnet-name MyVNet --subnet MySubnet --kind asev3 --virtual-ip-type Internal

Azure portal を使用して可用性ゾーンを備えた App Service Environment を作成するには、[ホスティング] タブで "App Service Environment v3 の作成" を行うとき、ゾーン冗長オプションを有効にします。

可用性ゾーンを備えた App Service Environment を指定するために Azure Resource Manager テンプレートで必要になるのは、Microsoft.Web/hostingEnvironments リソースの zoneRedundant プロパティを変更することだけです。 zoneRedundant プロパティを true に設定する必要があります。

"resources": [
  {
    "apiVersion": "2019-08-01",
    "type": "Microsoft.Web/hostingEnvironments",
    "name": "MyAppServiceEnvironment",
    "kind": "ASEV3",
    "location": "West US 3",
    "properties": {
      "name": "MyAppServiceEnvironment",
      "location": "West US 3",
      "dedicatedHostCount": "0",
      "zoneRedundant": true,
      "InternalLoadBalancingMode": 0,
      "virtualNetwork": {
        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVNet/subnets/MySubnet"
      }
    }
  }
]

価格

ゾーン冗長App Service Environmentには、9つのApp Serviceプラン インスタンスという最小料金があります。 インスタンスが 9 件以上ある場合でも、可用性ゾーンのサポートのための追加料金は発生しません。 ゾーン冗長 App Service Environment の App Service プラン全体で使用しているインスタンス (任意のサイズ) が 9 つ未満の場合、9 つと実行中のインスタンス数の差が課金されます。 この違いは、Windows I1v2インスタンスとして課金されます。

次のステップ