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

【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。

【7/5開催】azd+Terraform? ~ポイントを押えてAzure上へのアプリケーション環境をラクチン構築~
ツールの概要説明から、実際の開発におけるポイントをお伝えします!

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!

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

数ある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 武井 宜行 271 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.


*


質問はこちら 閉じる