実現したいこと
ECS on EC2で構築したコンテナに対し、インスタンス外からもパブリックIPでアクセスできるようにしたい
(現在は、EC2インスタンス内ではアクセスできている状態)
前提
Django REST Frameworkのアプリを作成し、ECRにプッシュしました。
その後、EC2インスタンス内でSSH接続して、以下のコマンドを使ってコンテナを立ち上げました。
sudo docker run -p 8000:8000 -d (コンテナ名):(タグ名)
その後、以下のコマンドをEC2インスタンス内で実行すると問題なさそうに見えました
sudo docker logs (コンテナid) [2023-10-26 04:33:39 +0000] [1] [INFO] Starting gunicorn 21.2.0 [2023-10-26 04:33:39 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1) [2023-10-26 04:33:39 +0000] [1] [INFO] Using worker: sync [2023-10-26 04:33:39 +0000] [6] [INFO] Booting worker with pid: 6
発生している問題・エラーメッセージ
インスタンス外から接続が確認できない
(Failed to connect to (Elastic IP) port 8000 after 75004 ms: Couldn't connect to serverというエラーメッセージが出る)
試したこと
・インスタンス内でコマンドを使って接続
curl http://(バックエンドのElastic IP):8000/api/register/ >> (レスポンス内容は伏せますが、接続が確認できました)
・なお、フロントエンドのコンテナもECRにpushし、別のEC2インスタンスで立ち上げましたが
こちらは問題なく接続できています。
フロントエンドのEC2内でも、
curl http://(バックエンドのElastic IP):8000/api/register/
は問題なく実行できました。
・EC2インスタンスのセキュリティグループには、インバウンドルールで0.0.0.0/0から8000番ポートの接続を許可しています。
補足情報(FW/ツールのバージョンなど)
・一度は問題なく接続できましたが、突然接続できなくなってしまいました。
・インスタンスのファイアウォール(UFW)は無効になっていました。
・どちらのインスタンスもパブリックサブネットに配置しています。
・VPCにインターネットゲートウェイがアタッチされてることを確認しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。