Azure VMスケールセット 自動修復機能の設定手順
このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、Azure CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Azure VM スケールセット 自動修復機能の有効化について、リスクと対策を解説します。
ポリシーの説明
Azure Virtual Machine Scale Sets(VMSS)の自動修復機能は、異常なインスタンスを自動的に検出し、正常なインスタンスに置き換える重要な高可用性機能です。この機能により、アプリケーションの健全性を継続的に監視し、問題のあるインスタンスを自動的に修復することで、サービスの可用性と信頼性を大幅に向上させます。
自動修復機能は以下の2つの方法でヘルス監視を実現できます:
- Load Balancerヘルスプローブ: ネットワークレベルでのヘルスチェック(推奨)
- Application Health拡張機能: VMエージェントを通じた内部ヘルスチェック
修復方法
コンソールでの修復手順
Azure コンソールを使用して、VMスケールセットの自動修復を有効化します。
1. 既存のスケールセットに自動修復を有効化
- Azure Portalにログインし、対象のVMスケールセットを選択
- 左メニューから「正常性と修復」を選択
- 「自動修復」セクションで以下を設定:
- 自動修復を有効にする: オン
- 猶予期間: PT30M(30分を推奨、アプリケーションの起動時間に応じて調整)
- 単純なWebアプリケーション: PT10M~PT20M
- データベース接続を含むアプリケーション: PT20M~PT30M
- 複雑なエンタープライズアプリケーション: PT30M~PT90M
2. ヘルスプローブの設定(Load Balancer使用の場合)
- スケールセットに関連付けられているLoad Balancerを開く
- 「正常性プローブ」を選択し、「+ 追加」をクリック
- プローブの設定:

- 名前: 例「health-probe-http」
- プロトコル: HTTP/HTTPS/TCP(アプリケーションに応じて選択)
- ポート: アプリケーションのポート(例:80、443)
- パス: /health(HTTPプロトコルの場合のみ)
- 間隔: 5秒(最小値)
- 異常しきい値: 2(2回連続失敗で異常と判定)
- 「追加」をクリック

注意: TCPプローブはポートの開放状態のみを確認します。アプリケーションレベルの健全性を確認するにはHTTP/HTTPSプローブを推奨します。
3. スケールセットへのヘルスプローブの関連付け
- VMスケールセットの「ネットワーク」設定に移動
- 「ロード バランサー」タブを選択
- 作成したヘルスプローブを選択
- 「保存」をクリック
4. Application Gateway使用の場合の設定
重要: Application Gatewayのヘルスプローブは、VMSSの自動修復機能と直接連携できません。以下の代替方法を使用してください:
推奨方法 – Application Health拡張機能の使用:
- VMスケールセットの「拡張機能」セクションを開く
- 「+ 追加」をクリック
- 「ApplicationHealthLinux」または「ApplicationHealthWindows」を選択
- 以下の設定を行う:
- プロトコル: http/https/tcp
- ポート: アプリケーションポート
- パス: /health(HTTP/HTTPSの場合)
- 間隔: 5秒
- プローブ数: 1
代替方法 – 内部Load Balancerの併用:
- 内部Load Balancerを作成(ヘルスチェック専用)
- Application Gatewayをインバウンドトラフィック用に使用
- 内部Load Balancerのヘルスプローブを自動修復に使用
5. 自動修復ポリシーの確認と調整
- VMスケールセットの「正常性と修復」に戻る
- 自動修復ポリシーの詳細設定:
- 修復アクション: 「再イメージ化」(インスタンスを初期状態に戻す)
- 「保存」をクリック
修復アクションの選択基準:
- Reimage: ステートレスアプリケーション向け(推奨)
- Restart: 一時的な問題の解決に有効
- Replace: データの完全なリセットが必要な場合
最後に
この記事では、Azure VMスケールセット自動修復機能の有効化について、リスクと対策を解説しました。
自動修復機能は、VMスケールセットの高可用性を実現する上で不可欠な機能です。適切に設定されたヘルスプローブ(Load BalancerまたはApplication Health拡張機能)と組み合わせることで、インスタンスレベルの障害から自動的に回復し、サービスの継続性を確保できます。これにより、運用負荷を削減しながら、ビジネスクリティカルなアプリケーションの信頼性を大幅に向上させることができます。
特に重要なポイント:
- 適切な猶予期間の設定(アプリケーション起動時間の考慮)
- ヘルスエンドポイントの適切な実装
- Application Gateway使用時は Application Health拡張機能を活用
- ゾーン冗長性との組み合わせで99.99%の可用性を実現
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。