今回ローカルで動かしていたdockerをec2インスタンスに移して、ブラウザから見ようとするとアクセスが拒否されていました。
半日くらい悩んだ末、問題を解決することができました。
Table of Contents
どこが悪いのか調べてみる。
セキュリティグループを見てみる。
まずあたりをつけてみます。
ec2あるあるのセキュリティグループの設定を確認。
ec2インスタンスに付随するセキュリティグループを確認しましょう。
80番は空いているのね。
ということで問題は無さそう。
pingは通るのか
一旦pingが通るか確認してみます。
EC2インスタンスにpingコマンドを使うには特定のポートを開けないといけません。
なので以下の記事を参考にポートを開けます。
Ping/ICMP のルール
[https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping]
ということでポートを開けて、コマンドプロンプトから確認してみます。
ping {サーバのpublic IP}
うん、通っている…
何が問題なんだー!
サーバの設定系では無さそうだなということでdockerを確認してみる。
docker-compose.yamlを確認
結局docker-compos.yamlファイルに原因があった!
以下が書いていた内容。
version: "3.8"
services:
php:
container_name: {container_name}
build: ./docker/php
tty: true
networks:
???_net:
aliases:
- php
ipv4_address: 172.31.0.2
ports:
- 127.0.0.1:80:80
volumes:
- ./src:/var/www
Code language: JavaScript (javascript)
portsのところで、ローカルしかみませんよーっていう設定をしていたようだ…
なので以下のように内容を修正。
これで80番からの通信ができる!
ports:
- 80:80
Code language: CSS (css)
まとめ
分かっているのよ。
自分が書く内容は理解しないとって。。。。
それが肝心だと感じた凡ミスでした!