はじめに
今回はAWSのEC2を使ってデプロイする方法を解説します。
具体的な設定方法がわからない方はぜひ参考にしてください。
AWSやEC2のサーバー作成方法については下記の記事でまとめております。
疑問点がある方はぜひこちらを参照してください。
※なお、今回の記事ではEC2でサーバーはすでに作成済みの流れで進めていきます。
手順1 EC2にSSHでログインする
①ダウンロードしたキーペアの権限を変更する
ます、EC2インスタンス作成の際に発行されるキーペアの権限を変更します。
EC2インスタンスの作成方法についてはこちらの記事を参考にしてください。
https://qiita.com/kenta-nishimoto-1111/items/4760bc02a6dfa40db035
% cd ~
↪︎ ターミナルをスタート地点に戻す
% mkdir ~/.ssh
↪︎ .sshというディレクトリを作成
# エラー『 mkdir: /Users/owner/.ssh: File exists 』と表示の場合、すでに存在します
% mv Downloads/ファイル名.pem .ssh/
↪︎ mvコマンドで、移動させたい対象(ファイル名.pem) → .sshディレクトリに移動します。
% cd .ssh/
↪︎ .sshというディレクトリへ移動
% ls
↪︎ pemファイルが存在するか確認します
% chmod 400 ダウンロードした鍵の名前.pem
↪︎ これで権限の変更が可能です!
②sshコマンドでログインします
カレントディレクトリが.ssh/であることを確認し、下記のコードを実装
ssh -i プライベートキーの名前.pem ec2-user@パブリックIPv4アドレス
※パブリックIPv4アドレスはインスタンスの表示のページで確認ができます。
コマンドを実装し、下記のように警告メッセージが表示された場合は”yes”を入力する
The authenticity of host '54.12.3.45 (54.12.3.45)' can't be established.
ECDSA key fingerprint is SHA256:WyV3fw1iEiBKslM0/m95UCq75kDBULrKi8W71+Ay9Tk.
Are you sure you want to continue connecting (yes/no)?
下記のように表示されていると完成です!
ssh -i プライベートキーの名前.pem ec2-user@パブリックIPv4アドレス
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-12-34-5 ~]$ ここにコマンドを入力していくことになります!
手順2 EC2の環境構築を行う
ログインが成功すると、EC2の環境構築を行います。
主に行う設定は以下になります!
①パッケージをアップデート
②パッケージのインストール
③Node.jsをインストールしよう
④yarnをインストールしよう
⑤rbenvとruby-buildをインストール
⑥Rubyをインストール
⑦MySQLをインストール
上記の7つを環境構築で行なっていきます!
それでは一つずつ実装手順を記述します
①パッケージをアップデート
まずはパッケージをアップデートします。 パッケージとはアプリケーションを動かすためのファイルの集合体のことを指します。 複数のファイルが1つの箱に入っているようなイメージです。パッケージのバージョンを管理するにはyumコマンドを使います。
まずはyumコマンドでパッケージをアップデートしましょう。
Is this ok [y/d/N]: yと聞かれたらyと入力しenterキーを押します。
[ec2-user@ip-172-31-47-9 ~]$ sudo yum update
「完了しました!」と表示されればアップデートは完了です。
②パッケージのインストール
次に必要なパッケージをインストールしていきます。 Amazon LInuxは初期状態だと必要最低限のパッケージしか入っていません。 なのでよく利用するパッケージをインストールしていきます。今回はRailsアプリが動くよう下記のパッケージをインストールします。
※横に長いのでそのままコピペしてください!
[ec2-user@ip-172-31-47-9 ~]$ sudo yum -y install gcc-c++ make patch git curl zlib-devel openssl-devel ImageMagick-devel readline-devel libcurl-devel libffi-devel libicu-devel libxml2-devel libxslt-devel
③Node.jsをインストールしよう
次にJavaScriptを実行できるよう環境を整えます。 まずはNode.jsをインストールします。[ec2-user@ip-172-31-47-9 ~]$ curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
↪︎ AWSのリポジトリに追加
[ec2-user@ip-172-31-47-9 ~]$ sudo yum -y install nodejs
↪︎ インストール
コマンド実行後、「完了しました!」と表示されば無事インストールされています。
④yarnをインストールしよう
Rails6以降はyarnを使うので、yarnもインストールします。 ターミナルで下記のコマンドを実行します。[ec2-user@ip-172-31-47-9 ~]$ curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
↪︎ AWSのリポジトリに追加
[ec2-user@ip-172-31-47-9 ~]$ sudo yum -y install yarn
↪︎ インストール
コマンド実行後、「完了しました!」と表示されば無事インストールされています。
⑤rbenvとruby-buildをインストール
次はrubyのバージョン管理ツールであるrbenvをインストールします。 下記のコマンドを実行します。[ec2-user@ip-172-31-47-9 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
↪︎ レポジトリをクローンしてインストール
以下は.bash_profileの設定
[ec2-user@ip-172-31-47-9 ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[ec2-user@ip-172-31-47-9 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[ec2-user@ip-172-31-47-9 ~]$ source .bash_profile
次はrubyをインストールするためのruby-buildをインストールします。
[ec2-user@ip-172-31-47-9 ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
これでrubyをインストールできるようになりました。
⑥Rubyをインストール
次はrubyをインストールします。 今回はバージョン2.6.5をインストールしますが、バージョンはご自身の環境に合わせてください。 下記のコマンドを実行します。[ec2-user@ip-172-31-47-9 ~]$ rbenv install 2.6.5
インストール中はInstalling ruby-2.6.5...と表示されます。
インストールには数分かかるので、このままインストールが完了するまで待ちましょう。
完了するとInstalled ruby-2.6.5 to /home/ec2-user/.rbenv/versions/2.6.5と表示されます。
次はインストールしたrubyを使用可能にするコマンドを実行します。
[ec2-user@ip-172-31-47-9 ~]$ rbenv rehash
↪︎ インストールしたrubyを使用可能にする
[ec2-user@ip-172-31-47-9 ~]$ rbenv global 2.6.5
↪︎ このインスタンスで使用するバージョンの設定
実装後以下の方法でRubyのバージョンを確認し表示されていればOKです!
[ec2-user@ip-172-31-47-9 ~]$ ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
⑦MySQLをインストール
次はデータベースを設定していきます。 今回はリレーショナルデータベースの一つであるMySqlを使います。Amazon Linux 2 にはMySql派生として開発され、
MySqlとほぼ同様に扱えるMariaDBのライブラリがデフォルトで入っているので、こちらを使用します。
[ec2-user@ip-172-31-47-9 ~]$ sudo yum -y install mariadb-server mysql-devel
「完了しました!」と表示されればOKです。
問題なくインストールされているか確認のためデータベースの起動を行います。
[ec2-user@ip-172-31-47-9 ~]$ sudo systemctl start mariadb
コマンドを入力しても何も出力されないので、下記のコマンドで状態を確認してみます。
[ec2-user@ip-172-31-47-9 ~]$ sudo systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: active (running) since 火 2021-05-25 01:22:41 UTC; 1min 53s ago
Process: 22975 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
このようにactive (running)と表示されていれば問題なく起動できています。
終わりに/完成形
以上でEC2のログイン〜環境構築までの準備は完了です!
次回はデプロイ方法について記述させていただきます!