推しのAzureサービス「App Service」が可用性ゾーンに対応したので試してみました

みなさん、こんにちは。サイオステクノロジー武井です。

数あるAzureサービス中でも、ワタクシの最も推しなApp Serviceがなんと可用性ゾーンに対応したとのことです。App Service Environment(Isolatedのプラン)はもともと可用性ゾーンに対応していましたが、普通(?)のApp Serviceもいよいよです。

https://azure.github.io/AppService/2021/08/25/App-service-support-for-availability-zones.html

特徴

先のURLから抜粋したものですが、App Serviceの可用性ゾーンには以下の特徴があります。

  • WindowsとLinuxの両方に対応
  • Premium v2もしくはPremium v3のどちらかのプランで利用可能
  • 最低3インスタンス必要
  • 可用性ゾーンは新しいAppServiceプランを作成したときだけ有効(既存のAppServiceプランを可用性ゾーン対応にはできない)
  • 今のところARMテンプレートからのみしか有効にできない

早速試してみた

以下のURLではApp ServiceをさくっとARMテンプレートから作れるサンプルがあります。

https://docs.microsoft.com/ja-jp/azure/app-service/quickstart-arm-template?pivots=platform-linux

これをベースにちょっとやってみましょう。

可用性ゾーンを有効にするには、以下のようにcapacityのフィールドで3インスタンス以上にして、zoneRedundantのフィールドでtrueとして可用性ゾーンを有効にします。

"resources": [
  {
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2018-02-01",
    "name": "your-appserviceplan-name-here",
    "location": "West US 3",
    "sku": {
        "name": "P1v3",
        "tier": "PremiumV3",
        "size": "P1v3",
        "family": "Pv3",
        "capacity": 3
    },
    "kind": "app",
    "properties": {
        "zoneRedundant": true
    }
  }
]

 

ということで公式のARMテンプレートをもとに以下の変更を加えました。

$ diff -u appservice.yml.org appservice.yml
--- appservice.yml.org	2021-08-26 21:09:50.000000000 +0900
+++ appservice.yml	2021-08-26 21:12:00.000000000 +0900
@@ -49,11 +49,13 @@
       "name": "[variables('appServicePlanPortalName')]",
       "location": "[parameters('location')]",
       "sku": {
-        "name": "[parameters('sku')]"
+        "name": "[parameters('sku')]",
+        "capacity": 3
       },
       "kind": "linux",
       "properties": {
-        "reserved": true
+        "reserved": true,
+        "zoneRedundant": true
       }
     },
     {

 

デプロイしてみます。

$ az group create --name myResourceGroup --location "japaneast"
$ az deployment group create --resource-group myResourceGroup --parameters webAppName="" linuxFxVersion="PHP|8.0" --template-file appservice.yml

 

Azureポータルから確かめてみると、たしかにゾーン冗長が有効になっています。ええ感じ。

 

まとめ

というかんじで段々App ServiceがApp Service Environmentに近づいてきた感があります。可用性ゾーン対応、どんどん有効にしていきたいですね。

 

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です