LoginSignup
1
1

More than 1 year has passed since last update.

【EC2】EC2にrailsのアプリをデプロイする方法 No.2(デプロイ)

Posted at

はじめに

それでは前回に引き続き、EC2を使ってrailsのアプリをデプロイしたいと思います。
前回はEC2の環境構築までを行いました。

これまでの工程について、まだ実装されていない方はこちらの記事をぜひご覧ください

それでは早速デプロイしていきます!

手順3 gitと連携をします

EC2インスタンスにアプリケーションのコードを送るためにはGithubを使います。
連携したGithubからEC2へクローンすることでデプロイをします。
そのためにGitHubとの接続設定をします。
ターミナルで下記のコマンドを実行します。

gitの連携
[ec2-user@ip-172-31-23-189 www]$ git clone リポジトリURL

リポジトリURLはご自身のGitHubのページで確認することができます。

image.png

Githubのアカウント名とPWを入力し、
ダウロードが開始されます

remote: Enumerating objects: 298, done.
remote: Counting objects: 100% (298/298), done.
remote: Compressing objects: 100% (190/190), done.
remote: Total 298 (delta 109), reused 274 (delta 86), pack-reused 0
Receiving objects: 100% (298/298), 58.53 KiB | 365.00 KiB/s, done.
Resolving deltas: 100% (109/109), done.

完了

これで、EC2にAppがクローンされています。

手順4 アセットファイルをコンパイルします

まずはcssやJavaScript、画像ファイルのコンパイルを行います。
ローカル環境ではこの作業は不要でしたが、本番環境では処理速度の関係で自動的に行われないので随時行う必要があります。
下記のコマンドでアセットファイルをコンパイルします。

アセットファイルのコンパイル
# クローンしたアプリのディレクトリに移動
[ec2-user@ip-172-31-47-9 ~]$ cd /var/www/レポジトリ名
# アセットファイルのコンパイルを実行
[ec2-user@ip-172-31-47-9 レポジトリ名]$ rails assets:precompile RAILS_ENV=production

コンパイルが無事終了すればOKです。

手順5 database.ymlを編集しよう

本番環境でもデータベースを作成する必要があるので、ローカルのconfig/database.ymlの本番環境の定義部分を下記のように編集します。
databaseの値は編集しないでください。

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

ローカルのファイルを編集したのでcommitし、pushします。
そしてEC2インスタンスでpullをしましょう。

手順6 データベースの作成

これでデータベースサーバーに接続することができるようになりました。
次にEC2インスタンス内に今回のアプリで使用するデータベースを作成します。
下記のコマンドを実行します。

データベースの作成
[ec2-user@ip-172-31-47-9 レポジトリ名]$ rails db:create RAILS_ENV=production
# 以下のように表示されればOK
Created database 'アプリ名_production'

次にデータベースにテーブルを作成します。

テーブルの作成
[ec2-user@ip-172-31-47-9 レポジトリ名]$ rails db:migrate RAILS_ENV=production

エラーなくテーブルが作成されればOKです。

終わりに/完成形

以上でデプロイの準備が完成です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1