状況
Linux の App Service で動く Node.js アプリを、コード変更とアプリ設定の変更を数十件含むリリースでデプロイした。直後から全リクエストが 503 になる。前回のリリースまでは正常で、CPU とメモリのメトリックは低いままである。
原因を調べる順番として、最も適切なものは?
- Aログストリームでコンテナーの起動ログを読む
- BApp Service を削除して作り直す
- CApp Service プランをスケールアップする
- D今回のリリースで変えたスタートアップコマンドとアプリ設定
正答
- A → D → C → B
- C → A → D → B
- D → C → B → A
- B → A → D → C
解説
CPU とメモリが低いまま全リクエストが 503 なので、負荷ではなくアプリ(コンテナー)が起動できていないと考える。まずログストリームで起動ログを読み(A)、モジュールが見つからない、待ち受けポートが違うなどの理由を確かめる。変更が数十件あり、どれが原因か差分からは見当が付かないので、差分を上から読むよりログで当たりを付けてから、該当するスタートアップコマンドやアプリ設定(D)を確かめるほうが速い。スケールアップ(C)は負荷が原因のときの手段で、メトリックからは根拠がなく料金も上がる。作り直し(B)は設定やカスタムドメインを失ううえ、コードや設定の誤りは直らないので最後。復旧を急ぐなら、調査と並行して前のリリースへの切り戻しを検討する。
この問題を含む Azure のテストを制限時間つきで解く
Azureクイズへ