Webサーバでは何らかのトラブルによってサーバエラーが繰り返し発生して、サービス提供が続けられなくなることがある。Azure Web Appsの場合、自動的にワーカープロセスをリサイクル(再起動)することで、その復旧を図ることができる。
対象サービス:Microsoft Azure、Web Apps(Windows版)
Webサーバの管理者であれば、Webサイトに何らかのトラブルが発生したとき、取りあえずWebサーバまたはワーカープロセスを再起動したら解消した、という経験をしたことがあるだろう。この再起動を自動で行うことができれば、管理者の手間は大幅に軽減されるはずだ。
Azure Web Appsには一定の「条件」を満たしたときに自動でワーカープロセスをリサイクル(再起動)させる「自動復旧(Auto healing)」という機能がある。条件としては、リクエストが大量に受信されたり、サーバエラーが頻発したり、メモリ消費量が増えたり、といった設定ができる。
Web Appsの自動復旧機能は、Azureポータルとは別の「Azure App Service Support」というWeb管理画面で設定できる。ただし、このページ自体は執筆時点でまだプレビューであることに留意していただきたい。
Azure App Service Supportページを開く手順は以下の通りだ。
ちなみにAzure App Service Supportページでは、自動復旧の他にもさまざまな設定や分析が可能だ。
本稿では例として、WebアプリがHTTPステータスコード500.0(内部サーバエラー)を30秒間で3回返したら自動でリサイクルするように設定してみる。
以上で設定は完了だ。
自動復旧によるリサイクルが生じると、Web Appsのイベントログ(FTPサイトの/LogFiles/eventlog.xmlで参照可能)には、次のようなイベントが記録される。
<Event>
<System>
<Provider Name="W3SVC-WP"/>
<EventID>2299</EventID>
<Level>3</Level>
<Task>0</Task>
<Keywords>Keywords</Keywords>
<TimeCreated SystemTime="2017-06-14T04:20:13Z"/>
<EventRecordID>963930484</EventRecordID>
<Channel>Application</Channel>
<Computer>RD**********DD</Computer>
<Security/>
</System>
<EventData>
<Data>Worker Process requested recycle due to 'Status Code' limit.</Data>
</EventData>
</Event>
いったん設定した自動復旧を無効化するには、前述のWeb管理画面で[Autoheal]スライダーをオフにするか、あるいは該当規則の枠の右上にある[×]アイコンをクリックして規則を削除する。
■関連リンク
Copyright© Digital Advantage Corp. All Rights Reserved.