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/でアクセスします。
これで問題なく表示されたら大丈夫です。