こんにちは、財前航介です。
本日は、AWS上でAmazon Linux 2のサーバーを立て、Ruby on Railsをインストールし、動作確認するまでの一連の方法を見ていきましょう。
この説明で用いている環境は以下のものです。

インストールされる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インスタンス管理画面から、「インスタンスの作成」を選択します。

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

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

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

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

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

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


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

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

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

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

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

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

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

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

LinuxへのRuby on Railsのインストール
Ruby on Railsのインストールは、下記のコマンドを、一行ずつ入力していくだけです。
一行ずつこのブログからコピーして、右クリックでターミナルに貼り付け、Enterキーで実行してみてください。
また、もしログイン直後のパスから移動してしまった人は、「cd $home」と入力し、ユーザーフォルダ直下に移動してから、下記のコマンドを実行しましょう。
※ 一旦すべてのコマンドを列挙しますが、後ほど画面キャプチャ付きで、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コマンドずつ、実行の過程のキャプチャを見ていきましょう。
sudo yum install -y git gcc openssl-devel readline-devel zlib-devel sqlite-devel
上記のコマンドで、yum installを行います。
完了すると、下記のような画面が表示されます。

「Complete!」と表示されているのが分かりますね。
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Gitのリポジトリをクローンしてきます。


git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
同様に、Gitのリポジトリをクローン。


echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.bash_profile
bash_profileにパスの情報を追記します。

echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile
同様にbash_profileに追記。

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

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

一覧が表示されます。

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

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

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

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

gem install bundler sqlite3 rails
今度は、Railsのインストールを行います。

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

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

Enterキー押下後にバージョンが返されれば、Railsのインストールは成功です。
rails new testApp
試しに、動作確認用のアプリケーションの雛形を作成してみましょう。

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

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

この時点で、Webサーバーを起動してみても良いのですが、この時点ではまだ、サーバーを起動しても、「JavaScriptのランタイムが見つからない」という趣旨のエラーが出てしまうはずです。
これを解消するために、Node.jsをインストールします。
sudo yum install curl
curlをyumインストール。

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

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

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

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

curl –silent –location https://rpm.nodesource.com/setup_8.x | sudo bash –
Node.js v8リポジトリからインストールを行うため、コマンドを実行します。


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

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

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

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

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

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

以上でWebサーバーが起動しているので、外部のWebブラウザーからアクセスができるようになります。
しかし、AWS側の設定で、該当のポート番号に対する通信を有効にしなければいけません。
Ruby on Railsの動作確認と、セキュリティグループの設定
Ruby on RailsのWebサーバーが正常に立ち上がっているかを確認するために、皆さんがお持ちのコンピューターのWebブラウザから、試しに接続してみましょう。
アドレスバーに、以下のように入力してみましょう。
[グローバルIPアドレス]:3000
※ グローバルIPアドレスは、上記でPuTTY接続に用いたものです。

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

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

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

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

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

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

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

「You’re on Rails!」
とは、
「あなたはレールに乗りました」
という意味ですが、
このレールという言葉は、その名の通り、Ruby on Railsの特徴をよく表しています。
Ruby on Railsの基本理念の一つに、
「設定より規約」
というものがあります。
いちいち開発者が設定を行うのではなく、あらかじめRails側で「規約」を設けておき、開発者はそれに従って開発をすることによって、煩わしい全体設計から、開発者を開放しているのが、Ruby on Railsのすごいところです。
Ruby on Railsのメリット・デメリットは、以下の記事にまとめているので、興味がある方はご参照ください。
Ruby on Railsのメリット・デメリット【初心者にもわかりやすく解説】 >>
この記事が皆様の学習のお役に立てば幸いです。
最後までお読みくださり、ありがとうございました。
コメント