ec2インスタンスにパブリックIPを設定したが、アクセスできない

rails

勉強がてら作成したアプリをec2インスタンスにはじめてデプロイしようと挑戦しており、大方の設定が終わりec2に紐づけたElasticIPに設定したパブリックIPにアクセスしようとしたところ、「このサイトにアクセスできません”IPアドレス”にアクセスできません」のエラーが発生。

本記事では、原因とその対策について備忘録として残しておきます。

ec2に設定したパブリックIPアドレスにアクセスするためにやったこと

・ec2インスタンスにはElasticIP(○○.○○.○○.○○○)が紐づいている。

・セキュリティグループのインバウンドルールには、3000番ポートを用意(タイプ:カスタムTCP、ソース0.0.0.0/0)。

・nginxの設定(/etc/nginx/conf.d/rails.conf)は下記。

upstream app_server {
  # Unicornと連携させるための設定。
  server unix:/var/www/comment/backend/tmp/sockets/unicorn.sock;
}

# {}で囲った部分をブロックと呼ぶ。サーバの設定ができる
server {
  # このプログラムが接続を受け付けるポート番号
  listen 80;
  # 接続を受け付けるリクエストURL ここに書いていないURLではアクセスできない
  server_name elasticIPのパブリックIP;

  # クライアントからアップロードされてくるファイルの容量の上限を2ギガに設定。デフォルトは1メガなので大きめにしておく
  client_max_body_size 2g;

# 接続が来た際のrootディレクトリ
  root /var/www/comment/backend/public;

# assetsファイル(CSSやJavaScriptのファイルなど)にアクセスが来た際に適用される設定
  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @unicorn;

  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
  }

  error_page 500 502 503 504 /500.html;
}

unicornは正常に動作中。

ps aux | grep unicorn
ec2-user  106497  0.0 10.6 533128 103692 ?       Sl   Sep28   0:02 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user  106501  0.0 10.0 536940 97960 ?        Sl   Sep28   0:01 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
ec2-user  188921  0.0  0.2 222312  2036 pts/0    S+   11:14   0:00 grep --color=auto unicorn

この状態で、ブラウザからhttp://パブリックIPアドレス:3000にアクセスしたが、上記のエラーが発生してしまいます。

railsサーバーに繋がらなかった原因

ec2サーバー上で、railsアプリが立ち上がっていなかった。ec2インスタンス内で下記コマンドを実行したところ、railsサーバーが立ち上がり、ec2インスタンスにブラウザから接続することができた。

bundle exec rails server -p 3000 -b 0.0.0.0

本来であればunicornを立ち上げた時点でサーバーに接続できるはずなのでunicornの設定がうまくいっていないのが原因のよう。

awsではうまくアクセスできない場合にどこに問題があるのか判別するのが難しいです。上記で立ち上がることが確認できれば、原因はunicornにあることが特定できるので、原因が特定できずに途方に暮れていた方はまず一度試してみることをオススメします!

unicornについてはどこに問題があったのか、別途調査していきます。

コメント

タイトルとURLをコピーしました