前提・実現したいこと
AWS初心者です。
Railsアプリを、ELB(ロードバランサー)を使って、2つのEC2インスタンスに分散しようとしています。
Route53でAレコードにELBのDNSを設定、
EC2インスタンス(Elastic IPから関連付け済み)が1つの段階では、ELBを前において、セキュリティグループもELB経由に変更してEC2に接続、サービスを動かせるところまではできています。
発生している問題・エラーメッセージ
https://qiita.com/okamu_/items/c051156e44c4fbd65234
↑の記事のように、AMIイメージを作成→2つ目の異なるアベイラビリティゾーンのEC2インスタンスを作成まで行いました。
ですが、2つ目のEC2インスタンスにはElastic IPも設定されておらず、当然ながらサイトは表示されません。
ロードバランサーにインスタンスを追加、ステータスは2つともInServiceの状況にはなるのですが、サイトにアクセスすると、サイト表示(最初に作ったEC2)→エラーページ(追加した2つ目のEC2)→サイト表示→エラーページの繰り返しです。分散はできているようですが、片方表示されない・・・(考えれば当たり前なんですが)。
このAMIイメージから追加した2つ目のEC2インスタンスは、nginxでどのような扱いをすればうまくロードバランサーで分散できるのでしょうか?
また、ロードバランサーで分散する際の、最初のEC2インスタンスに紐付いたElastic IPの扱いなど、運用方法の概要をご教示いただけましたら幸いです。
補足情報(FW/ツールのバージョンなど)
利用しているのは
Rails5.2 / nginx / puma / EC2 / Route53 /RDS(MySql) / ELB
といった環境です(不足していたら教えてください)。
nginxのconfファイルは↓のような感じです。
upstream puma { server unix:/var/www/サービス名/shared/tmp/sockets/puma.sock; } server { listen 80; server_name ドメイン; access_log /var/www/サービス/shared/log/nginx_access.log; error_log /var/www/サービス/shared/log/nginx_error.log; root /var/www/サービス/current/public; include /etc/nginx/default.d/*.conf; location / { try_files $uri $uri/index.html $uri.html @webapp; } location @webapp { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://puma; } #エラーページの設定 error_page 500 502 503 504 /500.html; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/21 15:44 編集
2019/01/22 05:40
2019/01/22 18:21 編集
2019/01/22 23:21 編集
2019/01/23 03:56
2019/01/23 18:08