Help us understand the problem. What is going on with this article?

Azure App Services が短時間に続けて 500 エラーを吐いた時に自動的に Worker Process をリサイクルする設定を行う手順

More than 3 years have passed since last update.

はじめに

Web アプリケーションを運用している時に、作成したアプリケーションコードのエラーハンドリング不足などの原因で、Web サーバーが 500 エラーを立て続けに吐くことがあるけれど、Web サーバーや Worker Process を再起動するとなぜか直る、という様なシチュエーションに陥ることが、たまにあるかと思います。そういった場合、正攻法としてはアプリケーションコードの該当部分を修正するのがベストなのですが、取り急ぎの対応策として、エラーが発生したらとりあえずサーバーを再起動する、という場当たり的対応策を人力で取られた方も多いのではないでしょうか。

Azure App Services には、そういったシチュエーションで、事前に設定した閾値を超えた場合に自動的に Worker Process を再起動 (Recycle) するための仕組み (Auto Healing / 自動復旧) が用意されています。

この記事では、Azure App Services の自動復旧機能の構成方法について、ご紹介します。

Auto Healing の設定手順

※今回ご紹介する Auto Healing 機能は現在 Preview (Beta) 版での提供です。従って、SLA 的な保証は無しなのですが、この点ご理解いただいたうえでご活用いただければと!
1. まずは、設定を行いたい App Service を Azure ポータルにて開きます。
2. メニューから「問題の診断と解決」を開きます。
0001.JPG
3. 開いたブレードの右ペインから "Mitigate" を探してクリックします。
0002.JPG
4. 新しいブラウザータブが開き "Azure App Service Support" というページが開きます。
5. 開いたページ中段の "Mitigate" タブを開きます。
0004.JPG
6. 画面中央にある "Autoheal" スライダーを "ON" に切り替えます。
0005.JPG
7. すると、ルール設定用の UI がアクティベートされます。
8. 画面下部のタブから、"Status Code" を選択し、その後画面下部中央にある "Add new rule" ボタンをクリックします。
9. ルール追加用の UI がポップアップしますので、必要な設定項目を入力し、画面下部の "Add" ボタンをクリックします。
0006.JPG
例えば、このスクリーンショットの例では、「500 エラーが 30 秒間に 10 回発生したら」という条件を設定しています。
10. 次に、画面右端の "Action" ボタンをクリックし、条件を満たした場合に取るアクションを選択します。
007.JPG
11. 今回は、Worker Process のリサイクルを行いたいので、画面下部のドロップダウンから "Recycle" を選択します。
0008.JPG
12. 最後に、"Update" ボタンをクリックして、設定反映完了です。
0009.JPG
13. 設定が完了すると、このようなポップアップが表示されます。
0010.JPG

Auto Healing が動作したことをイベントログにて確認する

Auto Healing 機能を設定した "Azure App Service Support" の画面の、"Analyze" タブ中、"Event Viewer" 機能から、イベントログの確認が可能です。
0011.JPG

イベント ID "2299" のイベントを確認することで、Worker Process がリサイクルされたことと、その理由を確認できます。
0012.JPG

まとめ

Preview 機能ということで、保証こそないものの、アプリケーションの実際の稼働には影響の薄い部分かつ、万が一のトラブル時に人をはりつけておかなくてもとりあえずの復旧は出来る機能であることから、うまく活用することで省エネ運用ができるのではないでしょうか?

是非、お試しくださいませ!

tokawa-ms
Cloud Solution Architect / Application Development ここは面白そうなことを個人的に試してメモするコーナー。 即ちここに記した内容はいちエンジニアとしての独断と偏見に基づくものであり、所属する組織とは一切の関係がありませんのでご承知おきくださいませ。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away