(仮) ブログ

主にWeb Apps や、Azure PaaS サービス を使う際に役立ちそうなことを書こうと思っています。

意外と知られていない Web Apps の制限

本日は、意外と知られていないけど、よく引っかかる Web Apps の制限についてお話しします。

リクエストの 240 秒制限

Azure Web Apps では、各要求に対して 240 秒のアイドル タイムアウトが設定されています。Web Apps on Linux の場合も同じです。 このため、240 秒以上かかりそうな処理を Azure Web Apps 上で実行したい場合は、Web Apps から Web Job を呼び出すようにしましょう。

docs.microsoft.com

しかし、Azure Web Apps では定期的にメンテナンスによる再起動が発生しますので、Web Job による長時間の処理はあまりオススメできません。 なるべく短く切るように頑張りましょう。

docs.microsoft.com

どのようにメンテナンスが実施されるかは、こちらで紹介されていますので、ぜひ一読してください。

blogs.msdn.microsoft.com

アウトバウンド接続数の制限

Azure Web Apps は、スケールユニットと呼ばれるそれぞれ異なる役割を持つ複数のインスタンス (仮想 VM) で構成されています。 アプリケーションをデプロイすると WebWorker インスタンスと呼ばれるインスタンス上で、アプリケーションが実行されます。 詳しくは下記の記事を参照。

keyomura.hatenablog.com

この WebWorker インスタンスには、アウトバウンド接続の制限があります。実際には下記リンクの通りとなりますが、例えば S1/B1/P1 プランの場合、1920 が制限値となり、インスタンスごとにこの制限が適用されます

github.com

docs.microsoft.com

つまり、S1 プランで、インスタンスを 2 台にスケール アウトしている場合は、アウトバウンドの接続制限は、1920 × 2 となります。 (資料を見ると、実は A シリーズの VM が動作していることがわかります。)

そのほか、上記の Kudu のページには、ローカル ホストにアクセスしようとするとエラーが出ることや、いろんな制限が書いてあるのでオススメです。

自分のアプリケーションの接続数に関しては、Azure ポータルから、自分の Web Apps を選択した後、[問題の診断と解決] から確認することができます。 実はこのブレードから、Web Apps が再起動したかどうかもわかりますので、触ってみてください。

blogs.msdn.microsoft.com

後から制限が発覚すると困りますね。。