0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:ALB + Fargate + FastAPI 環境における「502 Bad Gateway」エラーの切り分け手順

Last updated at Posted at 2025-04-25

はじめに

本記事では、AWS ALB(Application Load Balancer)と Fargate 上で稼働する FastAPI アプリケーションの構成において「502 Bad Gateway」エラーが発生した際の、原因特定と対処方法について整理します。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。


よくある原因と対処法

① FastAPIアプリが 0.0.0.0 で起動していない

  • NG例: uvicorn main:app(デフォルトでは 127.0.0.1:8000
  • OK例: uvicorn main:app --host 0.0.0.0 --port 8000

Fargate 環境では、0.0.0.0 でバインドしないと外部(ALB)からアクセスできません。


② ALBのターゲットグループのヘルスチェックが FastAPI に存在しない(これから調査)

  • 例:ターゲットグループのヘルスチェックパス /health を設定していて、FastAPI 側にそのエンドポイントが存在しない場合、ターゲットが常に unhealthy となり、結果として 502 エラーになる可能性が高い。
# FastAPI 側でのヘルスチェックエンドポイントの追加例
@app.get("/health")
def health_check():
    return {"status": "ok"}

③ ターゲットグループと FastAPI のポート不一致

  • FastAPI の起動ポートと、ALB のターゲットグループが指定しているポートが一致していない場合も 502 が発生します。
  • 例:FastAPI を --port 8000 で起動している場合 → ターゲットグループのポートも 8000 に設定する必要があります。

④ セキュリティグループの設定ミス

  • ALB のセキュリティグループから、Fargate のセキュリティグループに対して TCP 8000 ポートのインバウンド通信が許可されていない場合、通信できずに 502 となります。

⑤ FastAPI コンテナが内部エラーで応答していない

  • 表面的には Uvicorn が起動していても、FastAPI のアプリ内部で例外が発生していたり、起動処理が失敗していることがあります。
  • aws logs コマンドや CloudWatch Logs を確認して、エラーの有無をチェックします。

チェックリスト(簡易版)

チェック項目 確認結果
FastAPI が 0.0.0.0 で待ち受けているか
ポート8000で起動しているか
ターゲットグループがポート8000に向いているか
ターゲットグループのヘルスチェックパスが FastAPI 側にあるか
セキュリティグループで ALB→Fargate 通信が許可されているか
FastAPI のログにエラーがないか

補足:ログに「エラーがない」ように見えても

INFO ログしか出ていない場合でも、コンテナ内のアプリが正しく処理を返せていないケースがあります。

リクエストに対して 500 を返していたり、タイムアウトしている可能性も含めて、アプリケーションログと ALB のターゲットステータス(unhealthy)などを合わせて確認してみてください...!


まとめ

本記事で紹介したように、ALB との組み合わせでよく発生する 502 Bad Gateway の多くは、「アプリが適切に公開されていない」「ヘルスチェック失敗」が原因です。

現時点では問題はまだ解消していませんが、これらの観点をもとに、引き続き原因を切り分けながら確認を進めていく予定です。

1つずつ設定を丁寧に見直すことで、安定したデプロイ環境を構築できるはずです。ALB との組み合わせでよく発生する 502 Bad Gateway の多くは、「アプリが適切に公開されていない」「ヘルスチェック失敗」が原因です...!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?