0
0

More than 1 year has passed since last update.

【初学者】RailsをECS(Fargate)にNginxを使用せずにデプロイしようとした際に、ブラウザで「このサイトにアクセスできません」と出力されてしまった際の暫定対処

Posted at

初学者のため誤り等あるかもしれませんが、本事像で丸3日ほど苦労し参考となる記事がなかったため、雑な記載になりますが備忘もかねて投稿させていただきます。
記載の内容で一旦解決しましたが、今後学習を進める中で根本原因や対処が誤っていた場合は修正するようにいたします。
特殊なケースかもしれませんが、どなたかのお役に立てば嬉しいです。

事象の概要

・Railsで作成したAPIをECS(Fargate)にNginxを使用せずにデプロイしたところ、
CloudWatch上ではRailsサーバが問題なく立ち上がっているにもかかわらず、
ブラウザでECSタスクのPublicIPに接続すると「このサイトにアクセスできません」と出力される。

詳細の状況

・インフラ構成は以下の通り
image.png

・RailsはDockerfileで3000番ポートで立ち上げ。

...
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0", "-p", "3000"]
...

・Railsはルートディレクトリにアクセスするとjsonで「status: 'ok'」を返す。

対処

以下の二つを行ったところ、なんとかPublicIPとALBのDNSで「{"status":"ok"}」を拝めました。
①Railsを80番ポートで立ち上げて、ロードバランサーのターゲットグループ、ECSタスク定義のコンテナのポートもそれに合わせる。
②DBと接続させる。
 (DBと接続させなくてもECSタスクのPublicIPにつなげばRailsのエラー画面までは出るかなと思ってましたが、DBと接続させないとダメでした、、)(Udemy講座で、LaravelはDBがありませんみたいなLaravelのエラーが見れたんだけど、、)

あとがき

「お金を浮かせたい&Nginxまだわからない」というところから、Nginxなしで構築しようとしたのですが、あまりそういった記事がなく、エラーの対処に苦労しました。丸3日無為に過ごしていたところ、以下の記事をもとに構築し直したところ、うまくいきました。。ありがてぇ。。
RailsアプリをEC2からECS/Fargate構成に移行してホストする【ECRへイメージ登録編】 - Qiita

そこから、色々実験したところ、上記の結果にたどり着きました。一応、テスト内容も載せておきます。

テストケース\項目 rails sのポート指定 dbとの接続(database.yml) dockerfileでのdb:migrate ALBのターゲットのポート タスク定義で指定するコンテナのポート タスク定義でのコンテナのメモリ制限、GPUユニット数 サービスで指定するALBのヘルスチェックの猶予期間 結果(タスクのpublic ip) 結果(ALBのDNS) メモ
①記事そのまま 80 ○(正しく設定) ○(実施) 80 80 ○(正しく設定) ○(300を設定) Qiita記事のまま設定
②設定を変えても、タスクのPublicIPとALBのDNSで表示が問題ないものを調査 80 × 80 80 ×(空欄のまま) ×(0を指定) db:migrateをしないで問題なかったのは、DBの情報を使用していなかったからかも。
③Railsのポートを3000番にしよう 3000 ○(実施) 3000 3000 ○(正しく設定) ○(300を設定) × × うまく行ってほしかった。継続調査。
④Railsを80で上げないと行けないのか実験 80 ○(実施) 80 3000 ○(正しく設定) ○(正しく設定) × テストケース③でタスク定義のコンテナのポートを3000にしたら、なぜかpublic IPでは接続できた。Railsは80で上げる必要があるのか…?
⑤DBと接続させなくてもうまくいくか実験 80 ×(DB名に誤った値を設定) × 80 3000 ○(正しく設定) ○(300を設定) × × DB名を誤って接続できなくすると、publicIPでもブラウザ上で「表示ができません」のエラーが返ってきた。Railsの「DBがみつかりません」みたいなエラーが出るとありがたいのに。。

ポート3000がうまくいかないのは納得いかないので、継続調査します。

雑な記載になりましたが、最後までご覧いただき、ありがとうございました!

0
0
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
0