正常性チェックを使用して App Service インスタンスを監視するMonitor App Service instances using Health check

正常性チェックのエラー

この記事では、Azure portal の正常性チェックを使用して App Service インスタンスを監視します。This article uses Health check in the Azure portal to monitor App Service instances. 正常性チェックにより、問題のあるインスタンスが削除され、アプリケーションの可用性が向上します。Health check increases your application's availability by removing unhealthy instances. 正常性チェックを使用するには、App Service プランを 2 つ以上のインスタンスにスケーリングする必要があります。Your App Service plan should be scaled to two or more instances to use Health check. 正常性チェック パスによって、ご利用のアプリケーションの重要なコンポーネントが確認されます。The Health check path should check critical components of your application. たとえば、ご利用のアプリケーションがデータベースとメッセージング システムに依存している場合、正常性チェックのエンドポイントはそれらのコンポーネントに接続する必要があります。For example, if your application depends on a database and a messaging system, the Health check endpoint should connect to those components. アプリケーションが重要なコンポーネントに接続できない場合は、アプリケーションが異常であることを示す 500 レベルの応答コードがパスから返されます。If the application cannot connect to a critical component, then the path should return a 500-level response code to indicate the app is unhealthy.

App Service で正常性チェックを使用した処理What App Service does with Health checks

  • アプリでパスを指定すると、正常性チェックによって、App Service アプリのすべてのインスタンスで 1 分間隔でこのパスに対する ping が実行されます。When given a path on your app, Health check pings this path on all instances of your App Service app at 1-minute intervals.
  • インスタンスが 2 つ以上の要求の後に 200 ~ 299 (200 と 299 を含む) の状態コードで応答しない場合、または ping への応答に失敗した場合は、システムによって異常があると判断され、削除されます。If an instance doesn't respond with a status code between 200-299 (inclusive) after two or more requests, or fails to respond to the ping, the system determines it's unhealthy and removes it.
  • 削除後、正常性チェックによる異常なインスタンスへの ping が継続されます。After removal, Health check continues to ping the unhealthy instance. 引き続き正常に応答しない場合、インスタンスを正常な状態に戻すために、基になる VM が App Service によって再起動されます。If it continues to respond unsuccessfully, App Service restarts the underlying VM in an effort to return the instance to a healthy state.
  • インスタンスが 1 時間、異常のままである場合、それは新しいインスタンスに置き換えられます。If an instance remains unhealthy for one hour, it will be replaced with new instance.
  • さらに、スケール アップまたはスケール アウトする場合は、新しいインスタンスの準備ができていることを保証するために、App Service によって正常性チェック パスに対して ping が実行されます。Furthermore, when scaling up or out, App Service pings the Health check path to ensure new instances are ready.

注意

正常性チェックは 302 リダイレクトには従いません。Health check doesn't follow 302 redirects. App Service プランによれば、1 時間あたり最大で 1 つのインスタンス、1 日あたり最大で 3 つのインスタンスが置き換えられます。At most one instance will be replaced per hour, with a maximum of three instances per day per App Service Plan.

正常性チェックを有効にするEnable Health Check

Azure portal での正常性チェックのナビゲーション

  • 正常性チェックを有効にするには、Azure portal にアクセスし、App Service アプリを選択します。To enable Health check, browse to the Azure portal and select your App Service app.
  • [監視][正常性チェック] を選択します。Under Monitoring, select Health check.
  • [有効] を選択し、/health/api/health など、ご利用のアプリケーションの有効な URL パスを指定します。Select Enable and provide a valid URL path on your application, such as /health or /api/health.
  • [保存] をクリックします。Click Save.

注意事項

正常性チェックの構成変更によって、アプリが再起動します。Health check configuration changes restart your app. 運用環境のアプリへの影響を最小限に抑えるには、ステージング スロットを構成し、運用環境にスワップすることをお勧めします。To minimize impact to production apps, we recommend configuring staging slots and swapping to production.

構成Configuration

正常性チェックのオプションを構成するだけでなく、次のアプリ設定を構成することもできます。In addition to configuring the Health check options, you can also configure the following app settings:

アプリ設定の名前App setting name 使用できる値Allowed values 説明Description
WEBSITE_HEALTHCHECK_MAXPINGFAILURES 2 ~ 102 - 10 ping エラーの最大数。The maximum number of ping failures. たとえば、2 に設定すると、ping に 2 回失敗した後にインスタンスが削除されます。For example, when set to 2, your instances will be removed after 2 failed pings. さらに、スケール アップまたはスケール アウトする場合は、新しいインスタンスの準備ができていることを保証するために、App Service によって正常性チェック パスに対して ping が実行されます。Furthermore, when you are scaling up or out, App Service pings the Health check path to ensure new instances are ready.
WEBSITE_HEALTHCHECK_MAXUNHEALTHYWORKERPERCENT 0 ~ 1000 - 100 正常なインスタンスが過負荷にならないように、ご利用のインスタンスの半分以下が除外されます。To avoid overwhelming healthy instances, no more than half of the instances will be excluded. たとえば、App Service プランが 4 つのインスタンスにスケーリングされ、3 つに異常が発生した場合、最大 2 つが除外されます。For example, if an App Service Plan is scaled to four instances and three are unhealthy, at most two will be excluded. 他の 2 つのインスタンス (1 つは正常、1 つは異常) は、引き続き要求を受信することになります。The other two instances (one healthy and one unhealthy) will continue to receive requests. すべてのインスタンスが異常であるという最悪のシナリオでは、何も除外されません。In the worst-case scenario where all instances are unhealthy, none will be excluded. この動作をオーバーライドするには、アプリ設定を 0100 の値に設定します。To override this behavior, set app setting to a value between 0 and 100. これを大きな値に設定すると、異常なインスタンスがさらに多く削除されます (既定は 50)。A higher value means more unhealthy instances will be removed (default is 50).

認証とセキュリティAuthentication and security

正常性チェックは App Service の認証および認可機能と統合されます。Health check integrates with App Service's authentication and authorization features. これらのセキュリティ機能が有効になっている場合、追加の設定は必要ありません。No additional settings are required if these security features are enabled. ただし、独自の認証システムを使用する場合は、正常性チェック パスによって匿名アクセスが許可される必要があります。However, if you're using your own authentication system, the Health check path must allow anonymous access. サイトで HTTP S のみが有効になっている場合、正常性チェック要求が HTTP S 経由で送信されます。If the site is HTTP S-Only enabled, the Health check request will be sent via HTTP S.

大企業の開発チームは、多くの場合、公開されている API のセキュリティ要件に従う必要があります。Large enterprise development teams often need to adhere to security requirements for exposed APIs. 正常性チェック エンドポイントをセキュリティで保護するには、まず IP 制限クライアント証明書、Virtual Network などの機能を使用して、アプリケーション アクセスを制限する必要があります。To secure the Health check endpoint, you should first use features such as IP restrictions, client certificates, or a Virtual Network to restrict application access. 着信要求の User-AgentHealthCheck/1.0 と一致するように要求することで、正常性チェック エンドポイントをセキュリティで保護できます。You can secure the Health check endpoint by requiring the User-Agent of the incoming request matches HealthCheck/1.0. 以前のセキュリティ機能によって要求が既にセキュリティで保護されているため、User-Agent になりすますことはできません。The User-Agent can't be spoofed since the request would already secured by prior security features.

監視Monitoring

アプリケーションの正常性チェック パスを指定したら、Azure Monitor を使用してご利用のサイトの正常性を監視できます。After providing your application's Health check path, you can monitor the health of your site using Azure Monitor. ポータルの [正常性チェック] ブレードで、上部のツールバーにある [メトリック] をクリックします。From the Health check blade in the Portal, click the Metrics in the top toolbar. これにより新しいブレードが開き、サイトの過去の正常性状態を確認したり、新しいアラート ルールを作成したりできるようになります。This will open a new blade where you can see the site's historical health status and create a new alert rule. サイトの監視方法の詳細については、Azure Monitor に関するガイドを参照してくださいFor more information on monitoring your sites, see the guide on Azure Monitor.

制限事項Limitations

Premium Functions サイトでは、正常性チェックを有効にしないでください。Health check should not be enabled on Premium Functions sites. Premium Functions の迅速なスケーリングにより、正常性チェックの要求によって HTTP トラフィックが不必要に変動する可能性があります。Due to the rapid scaling of Premium Functions, the health check requests can cause unnecessary fluctuations in HTTP traffic. Premium Functions には、スケーリングの決定を通知するために使用される、独自の内部正常性プローブが用意されています。Premium Functions have their own internal health probes that are used to inform scaling decisions.

次のステップNext steps