質問: AWSのECSに、Docker+flaskで作ったwebアプリをのせようと思っています。 ECRにdockerイメージをのせて、ECS(Fargate)で動かそうと思っていますが、 Nginxをどこに組み込むか悩んでいます。 一つは、作ったwebアプリの中にnginxの設定ファイルも入れて、Dockerfileに設定を書くという方法があると思います。 もう一つは、タスク定義に、今のwebアプリの他にnginxのタスク定義を作り、それを使うという方法があると思います。(こっちはこういうことができるとしか知らず、webアプリのタスクからnginxのタスクを使うのはどうすればいいか検討もつきませんが) どう判断すればいいか、教えていただけますか。
回答: >一つは、作ったwebアプリの中にnginxの設定ファイルも入れて、Dockerfileに設定を書くという方法があると思います。 こちらは方法の一つとしてアリですが、Nginx と Flask が一つのコンテナ上で起動してしまうため、高負荷の際にボトルネックを調査するのに難航する可能性があり好まれません。 >もう一つは、タスク定義に、今のwebアプリの他にnginxのタスク定義を作り、それを使うという方法があると思います。 こちらが割と一般的なパターンです。一つの TaskDefinition に Nginx コンテナと Flask コンテナを用意します。 下記の Qiita 記事が参考になるかと思います。 https://qiita.com/morinokami/items/e0efb2ae2aa04a1b148b また、そもそも Nginx を用意せず ALB から Flask に直接リクエストを割り振るのも一つの方法かと思います。 ※Basic 認証などを有効化するために Nginx を利用する必要があったりしたらスミマセン無視してくださいmm