概要
ALBの振り分け先WEBサーバを複数用意するため、
- 既存のEC2インスタンスのAMIを作成
- 新規インスタンス起動時に上記で作成したAMIを利用
- ALBのターゲットグループに新しく作成したインスタンスを追加
した上でアクセスすると、
502 Bad Gateway
のエラーが発生し、アクセスできない状態となった。
環境
-
アプリ
- ruby 3.0.2
- rails 6.1.4
- mysql 8.0.31
-
EC2AMI
- Amazon Linux2 AMI
- app server : Unicorn
- web server : Nginx
原因
- AMI作成時、作成元のEC2インスタンスは再起動される
- サーバの再起動により、Nginxが停止したことで、そもそもアプリが起動しておらず、接続できなくなっていた
参考
対策
サーバ起動時にNginxも起動するようにしておく
参考
ALB関連の設定が悪さをしていると思い込んでいましたが、初歩的なミスでした、、、。
ちなみに、502 Bad Gatewayの状態だと、
- セキュリティグループ的に問題なくてもcurlでConnection refusedされる
❯❯❯ curl -v XX.XX.XX.XX(接続先パブリックIPアドレス)
* Trying XX.XX.XX.XX...
* TCP_NODELAY set
* Connection failed
* connect to XX.XX.XX.XX port 80 failed: Connection refused
* Failed to connect to XX.XX.XX.XX port 80: Connection refused
* Closing connection 0
curl: (7) Failed to connect to XX.XX.XX.XX port 80: Connection refused
- EC2上の/var/www/my-app/current/log以下のproduction.logやunicorn.stderr.logには何も書き込まれない
状態になります。当然か。