koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

MackerelのURL外形監視でAzure App ServiceをAlways on

Microsoft AzureにはApp Serviceという便利なPaaSがあって、趣味でWebアプリケーションを作ったらとりあえずそのFreeプランでホスティングしている。

App ServiceのFreeなど無料や低料金なプランは、一定時間アクセスがないと動作が停止する。アクセスがあったら再開する。これによってリソースを節約することで無料なり安価でPaaSが提供されているのだろう。

f:id:koudenpa:20200916134538p:plain
FreeやSheredなどの低料金プランはアプリケーションが休止する

このアクセスがなかったら停止する振る舞いはPaaSでは一般的(Herokuなんかもそうのはず)で、一定時間アクセスがないと動作が停止するの一定時間より短い間隔で定期的にアクセス、常に動作しているようにするややダーティなプラクティスが存在する。

AzureならLogic Appsで定期的にHTTPRequestを発生させられるだろう。

しかし、僕らにはMackerelのURL外形監視がある。なんと、URLを指定するだけで、1分毎にアクセスして、応答時間の記録まで採ってくれる。便利。

mackerel.io

今回常に動作していて欲しいWebアプリケーションを作っているので、さしあたってこれでAllways onっぽい動作を得てみた。便利。

なお、定期的にアクセスしていれば無制限に動き続けるわけではなくて、Freeなどのプランにはリソース使用料の上限(クォータ)が設けられている。これを超えると一定時間止まる。

https://docs.microsoft.com/en-us/azure/app-service/web-sites-monitor

なので安心して? Always on的な動きをしてもらっている。