Closed15

EC2に手動デプロイしたdocker-composeをECSに移行する

あつしあつし

タスク実行後、nginxコンテナエラー。
詳細→ECS>クラスター>アプリクラスター名>タスク>logs>nginxコンテナ

2021/10/19 22:12:01 [crit] 8#8: *16 connect() to unix:///app_name/tmp/sockets/puma.sock failed (2: No such file or directory) while connecting to upstream

●nginx.conf内の記載ミス
→ファイル内に記載されたappを自分のリポジトリ名に変更することで解消

あつしあつし

再度イメージ構築、ECRにpush後、下記の状況。
ログで確認すると500エラーになっている模様。

AWSコンソールでログチェック↓

- - [22/Oct/2021:02:35:51 +0000] "GET /root HTTP/1.1" 500 1635 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"Safari/537.36"
あつしあつし

nginxコンテナでエラーが出ている模様なので、下記を実行する。
①nginx.confのserver_nameを今のパブリックIPに設定し、ECRにfd_tube_app_webリポジトリを新しくpush
②ECSタスクのnginx_webコンテナをあらたしいリポジトリURIに設定。タスクを実行

あつしあつし

変わらん。
即500が帰ってくるのでECS外のセキュリティグループがうまくマッチしていない?
→セキュリティグループの見直し
→ecs nginx 500 で検索🔍

あつしあつし

ローカルでは正常に表示される。
●ローカルの設定
・Dockerfile(rails)のENV RAILS_ENV=productionをコメントアウト
・Dockerfile(nginx)のADD後のファイル参照を./containers/nginx/nginx.conf /etc/nginx/conf.d/my_app.confからnginx.conf /etc/nginx/conf.d/my_app.conf
・nginx.confのlisten後にserver_name lcalhostを明記
・docker-compose 開発環境用のDBコンテナを明記

あつしあつし

container/nginx内に以下を追加。同時にDockerfile(nginx)のCOPY先を追加。
・default.config
・nginx.conf

上記を実行し、ECRリポジトリを更新、ECSのタスクとサービスを更新→パブリックIPにアクセスで以下の表示

Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

ECSのnginxコンテナでは404...

あつしあつし

●ローカルでdocekr-composeを使用して動作良好だったため、本番用のイメージもdocker-composeで作成(新しくdocker-compose.prod.ymlとDockerfile.prodを作成)
●nginxの設定を変更
●endpoint.sh内でassets:precompileの実行
https://qiita.com/ozroro/items/4fcf8811b47755b8d3c8
https://teratail.com/questions/288943
https://qiita.com/polar_bear_tech/items/87f5795346d246a1e07c#nginxの設定
https://qiita.com/aiandrox/items/408724ab8a4482fb5873

あつしあつし

上記を実行後、パブリックIPにアクセス、無事railsアプリの表記が完了!!

あつしあつし

nginx_deployの- aws-ecr/build-and-push-image:でbuild image error発生。
NginxのDockerfile内でdefault.confのCOPYができないとのこと・・・
(パスはあっている。1度目のnginx.confはコピーできて次のdefault.confのコピーでエラーになる)

一旦コメントアウトで対応。
・githubにpushが反映されていること
・ECSのリポジトリとタスク更新されページが表示されていることを確認した

このスクラップは2021/11/01にクローズされました