クラウド で可用性を高めるために、複数の「可用性ゾーン」にサーバーを分散して置く構成は、一般的になりました。ところが、運用 のなかでゾーン間の台数が偏ってしまい、「冗長を組んだつもりが、実質的な冗長性が目減りしていた」ということが起こりえます。Microsoft は、この偏りを自動で均す機能「Automatic zone balance for Virtual Machine Scale Sets(VMSSのゾーン自動分散)」を正式提供(GA)しました。
何が改善するのか
VMSS(仮想マシンスケールセット)は、同じ構成のVMをまとめて増減できる仕組みです。複数の可用性ゾーンにまたがって置くことで、1つのゾーンに障害 が起きても、ほかのゾーンのVMで動き続けられます。
VMSSのゾーン自動分散の効果と使う前の注意(編集部作成) 作成: 編集部 / もとの資料: Azure公式の更新告知(ID 576334)とMicrosoft Learnを編集部が整理
しかし、スケール操作(台数の増減)や容量の制約によって、ゾーンごとのVMの数が偏ることがあります。偏ったまま運用していると、たまたまVMが多く集まったゾーンで障害が起きたときに、不釣り合いに多くのVMが落ちてしまいます。今回の機能は、ゾーンにまたがるVMSSを常時監視 し、偏りを検知すると自動で均等化 します。方式は「作ってから消す」で、少ないゾーンに新しいVMを作り、その健全性を最大90分確認してから、多いゾーンのVMを1台削除します。一度に動かすのは1台だけです。
影響する会社・しない会社
影響する(役に立つ) : Azureで、複数の可用性ゾーンにまたがるVMSSを使って可用性を組んでいる会社。とくに、オートスケールで台数が増減する環境は、知らないうちにゾーンが偏りやすく、この機能の恩恵を受けやすいです。
影響しない・向かない : VMSSやゾーン冗長を使っていない環境。また、状態(データ)をVM自身に持たせているワークロードには向きません(後述)。
使う前の注意
この機能は便利ですが、仕組みを理解せずに有効化すると、思わぬ影響が出ます。次の3点を押さえておきましょう。
ステートレスが前提 : 偏りの是正は、VMの削除・再作成で行います。インスタンスのIDや固定IP、VMに付けたデータディスクは保持されません。状態をVMに持たせる構成には向きません。
容量に余裕を持たせる : 均している間は、一時的にVMが1台増えます。サブスクリプションのクォータ(上限)や、オートスケールの最大台数・スケールインのルールに、余裕を持たせておく必要があります。
ゾーン障害復旧の代替ではない : これは平常時の偏りを均す機能で、ゾーン障害時のフェイルオーバーの代わりにはなりません。Microsoftも、復旧手段として使うべきではないと明記しています。
情シスが今日やること
対象の棚卸し : 自社のAzure環境で、複数ゾーンにまたがるVMSSを使っているかを確認する。オートスケールを使っている環境は、現在のゾーンごとの台数の偏りも見ておく。
前提の設定を確認 : アプリの健全性監視(Application Health拡張やロードバランサーの正常性プローブ)が設定されているかを確認する。未設定だと、この機能は使えません。
容量と設計の確認 : 一時的な容量+1に耐えるクォータ・上限があるか、ワークロードがステートレスかを確認してから、既定で無効のこの機能を有効化する。
役割を正しく理解 : 障害時の切り替えは別途設計で備える。この機能は「平常時の偏りを均す」ものだと、運用チームで共有する。
「ゾーンに分けたから安心」ではなく、偏りで冗長性が目減りしていないかを見ることが、可用性の維持には欠かせません。自動分散は、その手間を減らす選択肢ですが、前提と限界を理解して使うことが大切です。