Amazon Linux 2へのRuby on Railsのインストール方法と動作確認【AWS】

Web技術

こんにちは、財前航介です。

本日は、AWS上でAmazon Linux 2のサーバーを立て、Ruby on Railsをインストールし、動作確認するまでの一連の方法を見ていきましょう。

この説明で用いている環境は以下のものです。

Amazon Linux 2

インストールされるRuby on Railsのバージョンは、以下のものです。

Ruby ruby 2.5.0 [x86_64-linux]
Rails 5.2.2

それでは、サーバーを作成して、Ruby on Railsをインストールする手順を見ていきましょう。

※ AWSを用いず、通常のLinuxにRuby on Railsをインストールされる方は、以下の目次の「1-2. LinuxへのRuby on Railsのインストール」からご参照ください。

Amazon Linux 2へのRuby on Railsのインストール方法と動作確認

Amazon Linux 2のEC2インスタンスの作成

AWSのEC2インスタンス管理画面から、「インスタンスの作成」を選択します。

AWSのEC2インスタンス管理画面から、「インスタンスの作成」を選択します。

「Amazon Linux 2」を選択します。

「Amazon Linux 2」を選択

無料利用が可能な「t2.micro」を選択しましょう。

Amazon Linux 2 インスタンスタイプの選択

内容を確認し、「作成」を押下します。

Amazon Linux 2インスタンス作成の確認

既にキーペアをお持ちであれば、「既存のキーペアの選択」からキーペアを選択し、チェックボックスにチェックを入れます。
その後、「インスタンスの作成」をクリックします。

Ruby on Rails

作成ステータスが表示されるので、「インスタンスの表示」をクリックします。

Amazon Linux 2 インスタンス作成ステータス

初期化中になっているので、完了するまで待ちます、

Amazon Linux 2 インスタンス初期化中
完了したら、その行をクリックします。
Amazon Linux 2 チェック合格

作成したインスタンスの、パブリックIPを記録しておきましょう。
(後ほど接続する時に利用します。)

AWSパブリックIPアドレス

ローカルPCからサーバーへのSSH接続が可能なソフトウェアを開きます。
(今回は、PuTTYを用います。)

PuTTYを用いてAmazon Linux 2に接続

「Session」から、先ほど確認したパブリックIPを入力します。

AWSサーバーのIPを入力

「SSH」配下の「Auth」を開き、「Private key file for authentication」に、ローカルに配置されているキーのパスを入力します。
(Browseボタンから選択できます。)

AWSサーバーに対するキーを選択

再度「Session」に戻り、今の設定を、PuTTYに保存しておきましょう。
「Saved Sessions」に任意の名前を入力して、「Save」をクリックします。

Ruby on Rails

保存したセッション名を選択して、「Open」をクリックします。

Amazon Linux 2に接続

ターミナルが立ち上がり、「login as」と言うメッセージが表示されたら、「ec2-user」というユーザー名を入力し、Enterキーを押下。
その後、上記のキーペアに紐づいたパスワードを入力し、Enter。

Amazon Linux 2へのログイン

下記のような画面が表示されれば、EC2サーバーへのログインは成功です。

Amazon Linux 2 へのログイン成功

LinuxへのRuby on Railsのインストール

Ruby on Railsのインストールは、下記のコマンドを、一行ずつ入力していくだけです。

一行ずつこのブログからコピーして、右クリックでターミナルに貼り付け、Enterキーで実行してみてください。

また、もしログイン直後のパスから移動してしまった人は、「cd $home」と入力し、ユーザーフォルダ直下に移動してから、下記のコマンドを実行しましょう。

※ 一旦すべてのコマンドを列挙しますが、後ほど画面キャプチャ付きで、1コマンドずつ解説をします。

1.
sudo yum install -y git gcc openssl-devel readline-devel zlib-devel sqlite-devel

2.
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

3.
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

4.
echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.bash_profile

5.
echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile

6.
source ./.bash_profile

7.
rbenv install –list

8.
rbenv install 2.5.0

9.
rbenv global 2.5.0

10.
rbenv rehash

11.
gem install bundler sqlite3 rails

12.
rails –version

13.
rails new testApp

14.
cd testApp

15.
sudo yum install curl

16.
sudo yum install epel-release

17.
curl –silent –location https://rpm.nodesource.com/setup_8.x | sudo bash –

18.
sudo yum install nodejs

19.
rails s

上記のコマンドを1行ずつ実行していってくれれば問題ないですが、
念のため、1コマンドずつ、実行の過程のキャプチャを見ていきましょう。

1.
sudo yum install -y git gcc openssl-devel readline-devel zlib-devel sqlite-devel

上記のコマンドで、yum installを行います。
完了すると、下記のような画面が表示されます。

Amazon Linux 2 yum install完了

「Complete!」と表示されているのが分かりますね。

2.
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

Gitのリポジトリをクローンしてきます。

Amazon Linux 2 Gitリポジトリのクローン
Amazon Linux 2 Gitリポジトリのクローン完了
3.
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

同様に、Gitのリポジトリをクローン。

Amazon Linux 2 Gitリポジトリのクローン2
Amazon Linux 2 Gitリポジトリのクローン完了2
4.
echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.bash_profile

bash_profileにパスの情報を追記します。

Amazon Linux 2 パス追記
5.
echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile

同様にbash_profileに追記。

Amazon Linux 2 bash_profile追記
6.
source ./.bash_profile

bash_profileに変更を加えた内容を、環境に反映させます。

Amazon Linux 2 環境に反映
7.
rbenv install –list

rbenvからインストールできるRubyのパッケージを確認。

Rubyパッケージ確認

一覧が表示されます。

Rubyパッケージ一覧
8.
rbenv install 2.5.0

バージョンを指定して、インストール。

Amazon Linux 2 へのRubyインストール

指定したバージョンのRubyがインストールされました。

Amazon Linux 2 へのRubyインストール完了
9.
rbenv global 2.5.0

システム全体で使う、Rubyのバージョンを指定します。

Amazon Linux 2 でのRubyバージョン設定
10.
rbenv rehash

リハッシュを行えば、Rubyのインストールは完了です。

Amazon Linux 2 でのRubyリハッシュ
11.
gem install bundler sqlite3 rails

今度は、Railsのインストールを行います。

Amazon Linux 2へのRuby on Railsインストール

無事Railsがインストールされました。

Amazon Linux 2へのRuby on Railsインストール完了
12.
rails –version

無事インストールされていることを確認するために、Railsのバージョンを確認してみましょう。

Amazon Linux 2へのRuby on Railsインストール確認

Enterキー押下後にバージョンが返されれば、Railsのインストールは成功です。

13.
rails new testApp

試しに、動作確認用のアプリケーションの雛形を作成してみましょう。

Amazon Linux 2でのRuby on Railsアプリケーション作成

上記のコマンドを入力すると、バンドルインストールが開始し、アプリケーションに必要な資材が準備されます。

Amazon Linux 2でのRuby on Railsアプリケーション作成完了
14.
cd testApp

試しに、作成したアプリケーションのフォルダ内に入ってみましょう。

Amazon Linux 2内のRuby on Railsアプリケーションフォルダ

この時点で、Webサーバーを起動してみても良いのですが、この時点ではまだ、サーバーを起動しても、「JavaScriptのランタイムが見つからない」という趣旨のエラーが出てしまうはずです。

これを解消するために、Node.jsをインストールします。

15.
sudo yum install curl

curlをyumインストール。

Railsサーバー起動のためにNode.jsインストール1

確認メッセージが表示されるので、「y」を入力し、Enterキーを押下してください。

Railsサーバー起動のためにNode.jsインストール2

「Complete!」と表示されれば成功です。

Railsサーバー起動のためにNode.jsインストール3
16.
sudo yum install epel-release

epel-releaseをインストールします。

Railsサーバー起動のためにNode.jsインストール4

既にインストールされていれば、「Error: Nothing to do」と表示されますので、そのまま先に進みます。

Railsサーバー起動のためにNode.jsインストール5
17.
curl –silent –location https://rpm.nodesource.com/setup_8.x | sudo bash –

Node.js v8リポジトリからインストールを行うため、コマンドを実行します。

Railsサーバー起動のためにNode.jsインストール6
Railsサーバー起動のためにNode.jsインストール準備完了
18.
sudo yum install nodejs

Node.jsのインストールを行います。

Railsサーバー起動のためにNode.jsインストール実行

確認メッセージが表示されるので、「y」を入力し、Enterキーを押下してください。

Railsサーバー起動のためにNode.jsインストール実行2

再度確認メッセージが表示されますので、同様に「y」を入力します。

Railsサーバー起動のためにNode.jsインストール実行3

「Complete!」と表示されたら、Node.jsのインストールは成功です。

Railsサーバー起動のためにNode.jsインストール完了
19.
rails s

サーバーの起動コマンドを入力し、Enterキーを押せば、Railsのサーバーが起動します。

Ruby on Railsサーバー起動

「Ctrlキー + C」でサーバーが停止できる旨と、ポート番号3000でWebサーバーにアクセスできる旨が表示されます。

Ruby on Railsサーバー起動完了

以上でWebサーバーが起動しているので、外部のWebブラウザーからアクセスができるようになります。

しかし、AWS側の設定で、該当のポート番号に対する通信を有効にしなければいけません。

Ruby on Railsの動作確認と、セキュリティグループの設定

Ruby on RailsのWebサーバーが正常に立ち上がっているかを確認するために、皆さんがお持ちのコンピューターのWebブラウザから、試しに接続してみましょう。

アドレスバーに、以下のように入力してみましょう。
[グローバルIPアドレス]:3000

※ グローバルIPアドレスは、上記でPuTTY接続に用いたものです。

Amazon Linux 2をローカルPCから閲覧

AWSから3000番ポートへのHTTPアクセスを受け付けてもらえないため、エラーが表示されてしまいます。

Amazon Linux 2をローカルPCから閲覧エラー

AWSの操作画面から、セキュリティーグループをクリックしましょう。

Amazon Linux 2のセキュリティグループ

該当のセキュリティーグループを選んで右クリックをしてください。

Amazon Linux 2のセキュリティグループ選択

「インバウンドルールの編集」をクリック。

Amazon Linux 2のセキュリティグループ右クリック

ここでは動作確認のため、タイプを「すべてのトラフィック」とし、
ソースを「任意の場所」としましょう。
(セキュリティについて考慮する場合は、適宜適切な設定を行ってください。)

Amazon Linux 2のセキュリティ設定

再び「IPアドレス:3000」を入力します。
(Google Chromeの場合、「http://」という記載はあっても無くても同じなので、どちらでも良いです。)

Amazon Linux 2へ再接続

「Yay! You’re on Rails!」と表示されれば、正常にサーバーが立ち上がっています。

Amazon Linux 2上でRuby on Railsが動作している

「You’re on Rails!」
とは、
「あなたはレールに乗りました」
という意味ですが、
このレールという言葉は、その名の通り、Ruby on Railsの特徴をよく表しています。

Ruby on Railsの基本理念の一つに、
「設定より規約」
というものがあります。

いちいち開発者が設定を行うのではなく、あらかじめRails側で「規約」を設けておき、開発者はそれに従って開発をすることによって、煩わしい全体設計から、開発者を開放しているのが、Ruby on Railsのすごいところです。

Ruby on Railsのメリット・デメリットは、以下の記事にまとめているので、興味がある方はご参照ください。

Ruby on Railsのメリット・デメリット【初心者にもわかりやすく解説】 >>

この記事が皆様の学習のお役に立てば幸いです。
最後までお読みくださり、ありがとうございました。

コメント

タイトルとURLをコピーしました