EC2にRailsアプリをデプロイ② ~EC2に必要なツールをインストール~


はじめに

前回続きの記事です。
今回は前回作成したEC2インスタンスへターミナルからログインしてデプロイに必要なツールを導入していきます。

EC2インスタンスへログイン

ターミナルから以下のコマンドを実行して、EC2インスタンスへログインします。

ターミナル
% cd ~
ターミナル
% mkdir ~/.ssh

# .sshというディレクトリを作成
# File existsとエラーが表示されたとしても、.sshディレクトリは存在しているのということなので、そのまま進みましょう。
ターミナル
% mv Downloads/ダウンロードした鍵の名前.pem .ssh/

# mvコマンドで、ダウンロードしたpemファイルを、ダウンロードディレクトリから、.sshディレクトリに移動します。
# 「ダウンロードした鍵の名前」の部分は、Finderでダウンロードフォルダから「〜.pem」というファイルを探し、「〜」の部分の名前に置き換えてください。
ターミナル
% cd .ssh/
ターミナル
% ls

# pemファイルが存在するか確認しましょう
ターミナル
% chmod 600 ダウンロードした鍵の名前.pem

# 「ダウンロードした鍵の名前」はFinderのダウンロードフォルダから探しましょう(見つからない場合は他のフォルダを探しましょう)
ターミナル
% ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスに紐付けたElastic IP

下記のコマンドを実行するとyesかnoかの意思表示を求められますが、yesを入力して実行しましょう。

ターミナル
% ssh -i aws_key.pem [email protected].~~~~~~
The authenticity of host '52.68.~~~~~~ (52.68.~~~~~~)' can't be established.
RSA key fingerprint is eb:7a:bd:e6:aa:da:~~~~~~~~~~~~~~~~~~~~~~~~.
Are you sure you want to continue connecting (yes/no)? 

(ここで「yes」を入力し、実行する)

このssh接続は時間が経つとタイムアウトするので、その場合はもう一度上記のコマンドで繋ぎ直せます。

必要なツールをインストール

yumコマンド

まずはLinuxにおけるソフトウェア管理の仕組みのyumコマンドでパッケージをアップデートします。

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y update

そのほかの環境構築に必要なパッケージを諸々インストール。
(めちゃ長いので注意)↓

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo yum  -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel libcurl libcurl-devel curl

これらのコマンドに「-y」とありますがこれは-yオプションと言って、yesかnoの質問に対して自動的に全ての問いにyesと答えるコマンドです。
コマンドをつけ忘れたら「Y」を入力してエンターキーを押してインストールの完了をしてください。

EC2にNode.jsをインストール

Node.jsはサーバーサイドで動くJavaScriptのパッケージです。今後のデプロイの作業の中で、CSSや画像を圧縮するのに使われます。
下記をターミナルを実行

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install nodejs

これでNode.jsのインストールは完了です。

Yarnのインストール

YarnはRailsに搭載されているJavaScriptのパッケージ管理するものです。

下記のコマンドでインストール

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install wget
[ec2-user@ip-172-31-25-189 ~]$ sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install yarn

これでYarnのインストールは完了です。

rbenvとruby-buildをインストール

Rubyをインストールする前にこの二つをインストールしなければなりません。

下記のコマンドでインストール

ターミナル
# ①rbenvのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv 

# ②パスを通す
[ec2-user@ip-172-31-25-189 ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 

# ③rbenvを呼び出すための記述
[ec2-user@ip-172-31-25-189 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

# ④.bash_profileの読み込み
[ec2-user@ip-172-31-25-189 ~]$ source .bash_profile

# ⑤ruby-buildのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

# ⑥rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash

①でgitからrbenvをクローンしています。

②、③のパスを通すとはどのディレクトリからでもアプリケーションを呼び出せる状態にすることです。

④で設定したパスを読み込みます。

⑤でgitから「ruby-build」をクローンしています。

⑥使用しているRubyのバージョンで、gemのコマンドを使えるようにします。

Rubyをインストール

Rubyをインストールしますが下記のコマンドのインストールするRubyのバージョンや自分のアプリで使っているバージョンは適宜変更します。

ターミナル
# Ruby 2.6.5のバージョンをインストール
[ec2-user@ip-172-31-25-189 ~]$ rbenv install 2.6.5

# EC2インスタンス内で使用するRubyのバージョンを決める
[ec2-user@ip-172-31-25-189 ~]$ rbenv global 2.6.5

# rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash  

# Rubyのバージョンを確認
[ec2-user@ip-172-31-25-189 ~]$ ruby -v 

Rubyのインストールは時間がかかりますが、固まっているように見えても変にいじらず待ちましょう。

今回はここまでです。次回はデータベースを用意していきます。