正常動作していたアプリケーションがエラー発生するようになった場合
以下の状況になったこと、ありませんでしょうか?
・アプリケーションは問題ないはずなのにエラー発生
・前まで正常に動作していたのにエラー発生
こういう場合、Azureサーバ側のインスタンスの調子が良くない可能性があります。インスタンスを変更すると、調子悪いインスタンスから正常なインスタンスに切り替わって、動作が正常に戻るケースがあります。
手順概要としては、利用しているAppServiceプランをスケールアップしたあとにスケールダウンを行うのですが、その手順を行うとAzureサーバ側で何がどうなるのかをふまえて説明していきます。
具体的な手順
1.Azure ポータル画面にて、該当の "AppServiceプラン" または "AppService" を表示
2.[スケール アップ] を選択し、価格レベル変更ページを表示
3.価格レベルを変更し、[適用] する。例)EP1 から EP2 に変更
4.適用完了後、元の価格レベルに戻して[適用]する。例)EP2 から EP1 に変更
「スケールアップ」から「スケールダウン」を短い期間で行うことで、コストを最小限に抑えることが可能です。
公開情報にはこう書かれています。
〓〓〓 抜粋 〓〓〓
送信IPアドレスを意図的に変更するには、次のようにします。
AppServiceプランの価格レベルをStandardから上げるか、またはPremium v2から下げます。
10分間待ちます。
最初の価格レベルに戻します。
〓〓〓 抜粋 〓〓〓
手順を行うことでAzureサーバ側で何が起きるか?
インスタンスが変更される
アプリケーションが動作している(WebWorkerが使用している)インスタンスが変更されます。
ただ、インスタンスが変更されない場合もありますので、メトリック画面でインスタンスIDを確認することでインスタンスが変更されたかどうかを確認できます。※インスタンスID確認手順の詳細については、Udemy第二弾で詳しく紹介していますのでここでは割愛します。
送信IPが変更される
アプリケーションから通信を送出する際の送信IPアドレスが変更されます。
送信IPが変更されない場合もありますので、実際の送信IPの値について、事前事後確認をした方が良いと思います。
送信IPがAzureポータルのどこに表示されているかは、以下記事に書いてありますのでご参考ください。
なぜ送信IPが変更されるかというと、インスタンスが変更された場合に、スタンプも変更されるということです。
スタンプとは?については、以下記事に書いてありますのでご参考ください。
本番稼働中のシステムをスケールアップダウンするとどうなってしまうのか
スケールアップまたはスケールダウンを行うと、直前までに受付けていたリクエストは旧インスタンスで処理されます。そして、旧インスタンスで処理されなかったリクエストはキューに登録されていて、登録された順に新インスタンスにて処理されます。
一時的に処理されない時間は発生しますが、キューに待機される仕組みになっているため、最終的にはクライアントから送られてきた全てのリクエストを処理してくれます。
以上です。