はじめに
こんにちは、あるいはこんばんは。
Azure Virtual Machine(VM、仮想マシン)は、多くの方が利用されているかと思います。Azureには、VMを自動で回復させる機能が複数あることをご存じでしょうか?これらの機能は、システムの可用性を維持するために非常に重要です。
今回は、その中でも代表的な以下の2つの機能について、その概要と注意点を解説します。
- サービスヒーリング (Service Healing)
- 自動インスタンス修復 (Automatic Instance Repairs)
サービスヒーリング (Service Healing)
参考: Service healing: Automatic recovery of virtual machines - Azure Blog
サービスヒーリングは、Azure Virtual Machine(VM)自体が持つ自動回復機能です。Azureの基盤インフラストラクチャが、VMが稼働している物理ホストサーバーに障害(ハードウェア障害など)を検知した場合に、自動的に復旧処理(サービスヒーリング)を実行します。
ただし、この機能はあくまで物理ホストレベルの問題に対応するものであり、VM内部で動作するOSやアプリケーションの障害を検知することはできません。
回復方法としては、問題が発生した物理ホストサーバーの再起動、またはVMを正常な別の物理ホストサーバーへ移動する(ライブマイグレーションまたは再デプロイ)といったアクションが取られます。
この機能は、すべてのVMサイズ、オファリング、リージョンで利用可能であり、デフォルトで有効になっています。特別な設定は不要です。
自動インスタンス修復 (Automatic instance repairs for Azure Virtual Machine Scale Sets)
参考: Azure Virtual Machine Scale Sets の自動インスタンス修復 - Azure Virtual Machine Scale Sets | Microsoft Learn
自動インスタンス修復は、Azure Virtual Machine Scale Sets(VMSS、仮想マシンスケールセット) で利用可能な機能です。
この機能を利用するには、VMSSでアプリケーションの正常性監視(Application Health Extensionなど)を有効にする必要があります。有効にすると、自動インスタンス修復機能が各VMインスタンスのアプリケーションの正常性状態を定期的に監視し、インスタンスが「異常」と判断された場合(例: ヘルスプローブに応答しない場合)に、あらかじめ構成された修復アクションを自動的に実行します。
アプリケーションの正常性監視では、例えばHTTP/HTTPSプロトコルを使用している場合、指定したパスに対してリクエストを送信し、ステータスコード200が返ってくるかどうかで正常性を判断します。
実行される修復アクションとしては、「置換」(インスタンスを削除して新しいインスタンスを作成、これが既定のアクション)、「再イメージ化」(OSディスクを再イメージ化)、「再起動」のいずれかを構成できます。
共存時の注意点
サービスヒーリングはデフォルトで有効であり、自動インスタンス修復はVMSSで明示的に有効化するため、両方の機能が同時に動作する状況はあり得ます。
両機能が共存する場合、意図しない動作が発生する可能性があるため、以下のシナリオを理解しておくことが重要です。
- サービスヒーリングの発生: サービスヒーリングが物理ホストの障害を検知し、その上で稼働しているVMSSのインスタンス(インスタンスAとします)の再起動または別ホストへの移動を開始します。
- アプリケーションの一時停止: インスタンスAの再起動中や移動処理中は、その上で動作しているアプリケーションは一時的に応答できなくなります。
- 自動インスタンス修復の誤検知: VMSSの自動インスタンス修復機能が、この一時的なアプリケーションの無応答状態を「異常」と判断し、設定された修復アクション(例: インスタンスの置換)を開始してしまう可能性があります。
つまり、自動インスタンス修復による修復アクションが実行された場合、それが本当にアプリケーション自体の問題によるものなのか、あるいはサービスヒーリングによる影響(一時的な無応答)によるものなのか、判別が難しいケースがあるということです。これにより、不必要なインスタンスの置換などが発生する可能性があります。
対策: 自動インスタンス修復を構成する際には、猶予期間 (grace period) を適切に設定し、一時的な問題で即座に修復アクションが実行されないように調整することを検討してください。
まとめ
今回は、Azure VMの可用性を高める2つの自動回復機能、「サービスヒーリング」と「自動インスタンス修復」について解説しました。
- サービスヒーリング: Azure基盤側の問題によるVM障害から自動回復する。デフォルトで有効。
- 自動インスタンス修復: VMSS内のインスタンスのアプリケーション異常を検知し、自動修復する。設定が必要。
それぞれの機能の役割と、両者を併用する際の注意点を理解し、システムの要件に合わせて適切に構成・運用することが重要です。
- Azure は、マイクロソフト 企業グループの商標です。
- その他、本資料に記載されている会社名、製品名は、各社の登録商標または商標です。