AWSのECS、サービスの作成やDocker runについて聞きたい(エラーあり)

実現したいこと

APIモードで作成したRailsをAWS ECSにデプロイしたい
Docker runで動かしたい

前提

MENTA(契約終了)の教材をやっています。

AWSのECS サービスの作成をするとエラーがでます

◽️手順
1.Dockeイメージの作成
2.ECRにpush
3.ECS サービス作成

ロードバランサーやセキュリティグループの設定も行っています。

発生している問題・エラーメッセージ

[error] 8#8: *1 connect() failed (111: Connection refused) while connecting to upstream, client: X.X.X.X, server: api.judging-cats.com, request: "GET /health_check HTTP/1.1", upstream: "http://127.0.0.1:3000/health_check", host: "X.X.X.X"
エラーメッセージ

該当のソースコード

https://github.com/yon-s/cat-img-backend

Dockerfileはprdディレクトリにあります。
前回デプロイ成功した時のprdファイルでもやってみましたがダメでした。

試したこと

AWSの環境が問題なのか?手元のコードが問題なのか?という問題の切り分けのためローカルでDockerイメージ実行

railsイメージの実行

% docker run -p 4000:3000 rails docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES % docker logs railsのコンテナ %

nginxイメージの実行

% docker run -p 4000:3000 nginx (何も起こらず応答まち)

別のターミナル起動

 % docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4e48be288c0b nginx "/docker-entrypoint.…" 4 minutes ago Up 4 minutes 80/tcp, 0.0.0.0:4000->3000/tcp wonderful_germain %docker logs 4e48be288c0b %

でした。

両方ともhttp://localhost:4000/ もなにも表示されません

unicorn.rbやprdを前回デプロイ成功したときのアプリのものをコピペもしました

bundle exec unicorn -p 3000 -c config/unicorn.rb -E productionで
http://localhost:3000/ 表示されました。

補足情報(FW/ツールのバージョンなど)

MENTAから
そもそもローカルで実行するのとAWSで実行するのは差分が大きすぎるので、再度設定を戻してみたりしてAWS上で色々試した方が良いと思っています

Dockerfileを確認するとproductionと設定しているのでそこと差分があると思います。また、Nginxと併用する想定なのでそこも原因かもしれません。

localで動かすための設定ではない、production設定になっているため動いていない可能性がある

AWSとDocker、nginxRails初心者です

コメントを投稿

0 コメント