Azure AppService(webapp)オートスケーリングにて完全に起動するまでリクエストをトラフィックを流さないようにする方法

Shunya Kawamura 65 評価のポイント
2024-07-22T01:13:44.5733333+00:00

AzureのAppservicceにてオートスケーリング時に新規に起動したインスタンス内でプロセスが完全に起動するまでトラフィックを流さないようにすることは可能でしょうか。

オートスケーリング後にアプリが完全に起動していない状態でトラフィックが流れることにより、エラーが発生することを危惧しております。

Azure
Azure
Microsoft が管理する世界のデータ センター ネットワークを介してアプリケーションとサービスを構築、配置、および管理するインフラストラクチャおよびクラウド コンピューティング プラットフォーム。
409 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. zaamasu 791 評価のポイント
    2024-07-23T00:14:52.54+00:00

    はじめまして。

    検証を踏まえた(※)回答になりますが、App Service機能のみでオートスケール時の通信エラーを完全に防ぐ方法はない認識です。App Serviceにはインスタンス毎に通信を振り分けるための透過的なLBが存在しますが、当該LBはユーザ側で操作不可(オートスケール時の細かい通信制御不可)となります。
    ※JMETERで通信を多量発生させたうえで、App Serviceでオートスケール実施時の挙動確認

    エラー防止を優先する対処方法は以下が考えられます。参考になれば幸いです。

    1. API ManagementをApp Serviceのフロントに配置し、リトライポリシーを用いてオートスケール時に通信エラーをリトライさせることで回避する(参考情報は以下)。
      再試行
      Azure APIM services の 4xx や 5xx のトラブルシューティング パート 2
    2. 1と同様のリトライ処理をApp Serivceのフロントに位置するアプリケーションにて実装する。
    3. App Serviceのアプリをコンテナ化し、Azure Kubernetes Serviceにてローリングアップデート機能を用いる(参考情報は以下)。
      ローリングアップデートの実行
      Kubernetesでダウンタイムゼロのローリングアップデートを実現する
    4. オートスケール機能は用いない (システム閉塞時に手動で対処)。
    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。