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

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

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

数ある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に近づいてきた感があります。可用性ゾーン対応、どんどん有効にしていきたいですね。

 

アバター画像
About 武井 宜行 269 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる