1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Railsの自動デプロイ

Last updated at Posted at 2024-12-07

記事概要

AWSサーバーを本番環境として利用している場合のデプロイ方法を説明する。

言語やフレームワーク

使用技術
フロントエンド HTML
バックエンド Ruby 3.2.0
Ruby on Rails 7.0.8.6
データベース MySQL(mariadb)
インフラ AWS
API -
その他 Capistrano(Gem)
Unicorn(Gem)

前提

  • 1度AWSサーバーにデプロイ済みである
  • GemのCapistranoを適用している
  • GemのUnicornを適用している
  • GitHubのリポジトリを連携している

パターン別のデプロイ手順

状況 参照手順
ローカルでVSCodeを修正 ①③
ローカルでデータベース関連の内容を修正 ①②③
本番環境でサーバーを再起動
Nginxを修正

手順①

  1. 変更点をリモートリポジトリにcommit→pushの実行
  2. mergeの実行
  3. ローカルリポジトリにpullの実行

手順②(DB再起動)

  1. EC2にログインするため、ターミナルにて下記を実行
    % ssh -i ~/.ssh/my-key-pair.pem ec2-user@<EC2インスタンスに紐付けたElastic IP>
    
  2. 本番環境のDBを再起動するため、EC2ユーザーでターミナルにて下記を実行
    % RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rails db:drop
    % rails db:create RAILS_ENV=production
    % rails db:migrate RAILS_ENV=production
    
  3. シード値の適用が必要な場合、下記記事を参照
    https://qiita.com/likapantrip/items/a49c004bccbc1fd5f6fe

手順③(デプロイの実行)

  1. EC2にログインするため、ターミナルにて下記を実行
    % ssh -i ~/.ssh/my-key-pair.pem ec2-user@<EC2インスタンスに紐付けたElastic IP>
    
  2. Unicornのプロセスを停止するため、EC2ユーザーでターミナルにて下記を実行
    # 実行中のプロセスを確認
    % ps aux | grep unicorn
    
    # プロセスを停止
    % kill <確認したunicorn rails masterのプロセスid>
    
    # Unicornのプロセスが停止していることを確認
    % ps aux | grep unicorn
    #=> ec2-user   758  0.0  0.0 119436   920 pts/0    S+   10:07   0:00 grep --color=auto unicorn
    
    # 「ps aux | grep unicorn」コマンドのプロセスが存在するため、上記のような結果が1行返ってくる
    
  3. ログアウトするため、EC2ユーザーでターミナルにて下記を実行
    % exit
    
  4. デプロイするため、ターミナルにて下記を実行
    # アプリのディレクトリにいることを確認
    % pwd
    /~/[アプリ名]
    
    % bundle exec cap production deploy
    

手順④(Nginxを適用)

  1. EC2にログインするため、ターミナルにて下記を実行
    % ssh -i ~/.ssh/my-key-pair.pem ec2-user@<EC2インスタンスに紐付けたElastic IP>
    
  2. Nginxを再起動するため、EC2ユーザーでターミナルにて下記を実行
    % sudo systemctl restart nginx
    
1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?