hiroki-saoyun’s blog

40歳でも夢くらい持つよね!!プログラミング勉強中!

AWSのEC2を使ってサーバーを作成⑧

ポートを解放

立ち上げたばかりのEC2インスタンスSSHでアクセスすることはできますが、HTTPなどではつながらないようになっています。

なので、WEBサーバとして利用するEC2インスタンスは事前にHTTPがつながるようにポートを開放する必要があります。

AWS マネジメントコンソール →EC2 →「インスタンス」→対象のインスタンスを選択します。

次に「セキュリティグループ」のリンクをクリックします。

「インバウンド」→「編集」→「ルールの追加」、タイプを「カスタムTCPルール」、プロトコルを「TCP」、ポート範囲を「3000」、送信元を「カスタム」「0.0.0.0/0」に設定します。

Railsを起動

config/database.yml(ローカル)

production:
  <<: *default
  database: アプリ名_production
  username: root
  password: <%= ENV['DATABASE_PASSWORD'] %>
  socket: /var/lib/mysql/mysql.sock

GitHubにプッシュします。

ターミナル(EC2)

[ec2-user@ip-自分のElastic IP リポジトリ名] $ git pull origin master

ターミナル(EC2)

$ rails db:create RAILS_ENV=production
$ rails db:migrate RAILS_ENV=production

ターミナル(EC2)

$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D

Railsを起動します。

アセットファイルをコンパイル

ターミナル(EC2)

$ rails assets:precompile RAILS_ENV=production

Unicornのプロセスを確認

ターミナル(EC2)

$ ps aux | grep unicorn

UnicornのプロセスをKill

ターミナル(EC2)

$ kill <確認したunicorn rails masterのPID>

再びunicornを起動

ターミナル(EC2)

$ RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D

ブラウザで確認

http://Elastic IP:3000/でアクセスします。

これで問題なく表示されたら大丈夫です。