前提・実現したいこと
バックエンドにRailsとNginxコンテナが動作するECSの環境を構築をしております。
検証環境の構築は上手くいったのですが、同じように本番環境を作ると上手くいかず
設定を見ても差分がないのでどこに原因があるのか分からない状態です。
ドメインはRoute53で該当のALBに向けており、最終的にはブラウザからドメインでアクセスしたいです。
発生している問題・エラーメッセージ
・ブラウザからALBのDNS名でアクセスした場合
Blocked host: alb-xxx.com To allow requests to alb-xxx.com, add the following to your environment configuration: config.hosts << "alb-xxx.com"
・ブラウザからドメインでアクセスした場合
・Cherome ページを開けません。このページにあるサーバが応答しません。 ・Safari このサイトにアクセスできません。応答時間が長すぎます。
試したこと
ALBのエラーはRails6がホストを明示しないとアクセスできないようになったものなので、今回の問題とは関係ないです。
このエラーが出ていることによって、少なくともNginxとRailsは通信できていてRailsがエラーを返している=セキュリティーグループには問題はないということが分かっています。
試しにセキュリティグループでECS、ALB共に全てのトラフィックのインバウンドを 0.0.0.0/0
で許可しましたが挙動は変わらずでした。
ALBをdigすると名前解決はできているのでRoute53の設定も問題はなく、
サービスディスカバリーが設定されているのでそちらも疑ったのですが、ECSにsshで入ってdigしても名前解決はできています。
curlでデバッグすると以下のようになります。
curl domain -v * Trying xxx... * TCP_NODELAY set * Connection failed * connect to xxx port 80 failed: Operation timed out * Trying yyy... * TCP_NODELAY set * Connection failed * connect to yyy port 80 failed: Operation timed out * Trying zzz... * TCP_NODELAY set * Connection failed * connect to zzz port 80 failed: Operation timed out * Failed to connect to domain port 80: Operation timed out * Closing connection 0 curl: (7) Failed to connect to domain port 80: Operation timed out
現象としては、ALBだとアクセスできる、ドメイン名経由だとタイムアウトするということになるのですが
このような場合はやはりRoute53が怪しいでしょうか?
digで名前解決できているので問題なさそうに思うのですが、他に何かあたりがつきそうであればご教示お願いいたします。
補足情報(FW/ツールのバージョンなど)
Nginx
Rails (6.0.3)
ECS Agant (1.46.0)
Docker (19.03.6-ce)
回答2件
あなたの回答
tips
プレビュー