Fast APIをECSに載せる時に詰まったところ

FastAPI(Python)で実装したアプリケーションをECSにデプロイする機会があったが、詰まるところがあったの備忘録。

uvicornのオプションとして --host 0.0.0.0 を含める

–host設定についての公式ドキュメントでの記載は以下。
https://www.uvicorn.org/settings/#socket-binding

–host – Bind socket to this host. Use –host 0.0.0.0 to make the application available on your local network. IPv6 addresses are supported, for example: –host ‘::’. Default: ‘127.0.0.1’.

アーキテクチャとしては、外部からのリクエストをまずALBで受けてから、ターゲットであるECSのコンテナにルーティングする形にしています。
このためローカルネットワークから疎通できるようにしておけばポート指定で接続させられる(と思います)

uvicornの実行コマンドをtask definitionに設定する際はCMDではなくENTRYPOINTを使う

理由はわかっていませんが、uvicornコマンドが、CMDで設定してみると期待通りに動作せず、ENTRYPOINTでは動作しました。

ENTRYPOINT, CMDを設定している場合は${ENTRYPOINT} ${CMD}が実行される認識だったので、どちらを使用するかで結果は変わらないと思っていました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.