AWS Cloud9には、開発に必要なソフトウェアがほとんど揃っていますが、使用したいバージョンよりも低い可能性があります。
本カリキュラムでは、指定したバージョンのソフトウェアをインストールしていきます。
またカリキュラムで使用するバージョンに調整しなければ、思い通りに動かなくなる可能性があります。
Cloud9を使ってもソフトウェアのインストールって必要なのかな
カリキュラムで使用したいバージョンと異なることがあるから、Cloud9を使ってもバージョンの調整をしないといけないんだよ
環境構築に必要なものを確認しよう
まずは、AWS Cloud9の環境上にRuby on Railsの開発環境を構築する前に「本カリキュラムの対応バージョン・環境構築の進め方・前提条件」を確認してみましょう。
本カリキュラムの対応バージョン
本カリキュラムでは、以下のバージョンに調整してRails6でアプリケーション開発できる準備を行います。
- Ruby 2.7.5
- MariaDB 10.2.38
- Rails 6.1.3.1
- Bundler 2.3.5
- yarn 1.22.17
環境構築の進め方
開発環境の構築は、以下の手順で進めさせていただきます。
1. Ruby
2. MariaDB
3. Ruby on Rails
4. Bundler
5. Yarn
開発環境の構築とは、開発に必要なソフトウェアを環境に導入し、Webアプリケーションを動かせるように設定していく作業のことです。
手元のパソコン(ローカル環境)に用意することが多いですが、初心者には「最初で最大の壁」と言われるように設定が複雑で挫折しやすい作業です。
しかし、Cloud9の環境に用意することでインストールするソフトウェアが少なくなり、設定も簡略化されるので初心者でも比較的スムーズに作業することができます。
前提条件の確認
次の前提条件を満たしているか確認しましょう。
条件を満たしていない方は、リンク先の記事を参考に準備しましょう。
- 「AWS Cloud9の導入」が済んでいること
- 「Cloud9のターミナルの使い方」を学んでいること
上記の条件を満たしている方は、次に進みましょう。
1.Rubyを用意しよう
Cloud9には、RVMでRubyが既にインストールされていますが、使用したいバージョンよりも低い可能性があります。
カリキュラムでは「Ruby 2.7.5」を使用するので、RVMでインストールと設定を行います。
RVM(Ruby Version Manager)とは
RVMとは、複数のRubyを管理するためのツールのことです。
例えば、実際の開発現場は「Twitter風のアプリではRuby 2.6.9、Instagram風アプリではRuby 2.7.5」のようにプロジェクト毎に異なるバージョンのRubyで動かすことが多いです。
RVMは、同時に複数のRubyのバージョンをインストールして、プロジェクト毎に適したバージョンでRubyを動かすことができます。
Cloud9には最初から導入されているので、すぐにrvmコマンドが使えるよ
それでは、手を動かしてRubyを用意しましょう!
1-1.Rubyのバージョンを確認しよう
まずは、Cloud9に最初から導入されているRubyのバージョンを確認してみましょう。
1
ruby -v
実行すると、画像のように現在のRubyのバージョンを確認することができます。
※バージョンは一致している必要はありません。
それでは、「Ruby 2.7.5」をインストールしていきましょう。
1-2.Rubyをインストールしよう
次にバージョンを指定して、Rubyのインストールをしましょう。
まずはインストールするための環境を構築します。
1
2
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
tar xf openssl-1.1.1t.tar.gz
コマンドを実行し、以下のようになれば成功です。2番目のコマンドを実行しても何も起こりません。
1
2
cd openssl-1.1.1t
./config --prefix=/usr/local/openssl1.1.1t --openssldir=/usr/local/openssl1.1.1t/etc
以下のような結果になれば成功しています。
5分ほどかかるので待ちましょう。
1
make -j$(nproc)
以下のような結果になれば成功しています。
3分ほどかかるので待ちましょう。
1
sudo make -j$(nproc) install
以下のような結果になれば成功しています。
以下の3つのコマンドは実行しても何も起こりません。
1
2
3
cd /usr/local/openssl1.1.1t/etc
sudo rmdir certs
sudo ln -s /etc/ssl/certs certs
これで準備が完了しました。
それではrubyをインストールします。
1
rvm install 2.7.5 --with-openssl-dir=/usr/local/openssl1.1.1t
以下のエラーが出た方は次のコマンドを入力してください。
1
rvm reinstall 2.7.5 --with-openssl-dir=/usr/local/openssl1.1.1t
実行すると、以下の画像のようにRubyのインストールが開始されます。
5〜10分ほど時間がかかるので待ちましょう。
インストールに成功すると、以下のように「Install of ruby-2.7.5 - #complete 」と表示されます。
ここまで完了した方は、次に進みましょう。
1-3.Rubyが導入できたか確認しよう
続いて、Rubyが正常にインストールされているか確認してみましょう。
1
2
cd ~/environment/
ruby -v
画像のように「ruby 2.7.5」と表示されたら、問題ありません。
導入したRubyを維持して利用するには、デフォルトの設定が必要だよ
1-4.デフォルトのRubyを設定しよう
現在のRubyのバージョンは、一時的に2.7.5が使用されています。
以下の動画のようにターミナルを閉じると、2.7.5ではなく元々インストールされているRubyのバージョンに戻ります。
ターミナルを閉じても、2.7.5のバージョンを維持できるように設定を行います。
1
rvm --default use 2.7.5
以下の動画のように、コマンド実行後にターミナルを再起動させて、ruby -v
でバージョンを確認してみましょう。
ターミナルを再起動させても、2.7.5のバージョンが表示されたら完了です。
これでRubyの用意ができました。次のMariaDBへ進みましょう!
2.MariaDBを用意しよう
「AWS Cloud9を導入しよう」で作成した環境(Amazon Linux2)では、MariaDBがデフォルトのデータベースです。
Cloud9には、MariaDBが既にインストールされていますが、パッケージのインストールや設定を行う必要があります。
MariaDBとは
MariaDBとは、人気の高いMySQLから派生したデータベース管理システム(データの検索・編集など効率化するソフトウェア)です。
Webアプリケーションを作るためには、「データベース」というデータの保存先が必要になります。MariaDBは、そのデータベースを効率的かつ適切に管理することができるシステムのことです。
「データベース」や「データベース管理システム」については、別の章で詳しく学ぶよ!
2-1.MariaDBのパッケージをインストールしよう
まずは、デフォルトでインストールされているMariaDBのパッケージ(関連するプログラムをまとめたもの)を削除します。
1
sudo yum remove MariaDB-server MariaDB-client
以下のように「Complete!」と最後に表示されたら、削除完了です。
次に新しいMariaDBのパッケージをインストールします。
1
sudo dnf install -y mariadb105 mariadb105-server mariadb-connector-c-devel
以下のように「Complete!」と最後に表示されたら、インストール完了です。
2-2.MariaDBを起動しよう
次にMariaDBを起動しましょう。
1
sudo systemctl start mariadb
画像のようにエラーの出力もなく、何も表示されていなければ正常に起動しています。
それでは、MariaDBの状態を確認してみましょう。
1
sudo systemctl status mariadb
画像のように表示されたら、MariaDBが正常に起動しています。
※Cloud9の初期設定では、Cloud9を閉じてから30分後にサーバーが自動で停止します。
その際にはMariaDBのサーバーも停止するので、Cloud9を開くたびにsudo systemctl start mariadb
を実行して、MariaDBを起動させる必要があります。
でも毎回手動で起動させるのって忘れそう。。。何か良い方法ないのかな
それは、次のMariaDBの自動起動の設定で解決するよ!
2-3.MariaDBの自動起動を設定しよう
自動起動を設定すると、Cloud9を開いた時にMariaDBが自動で起動されるようになります。毎回手動で起動させる必要がなくなります。
それでは、MariaDBの自動起動の設定をしていきましょう。
※先ほどの起動確認画面をcontrol + c
で閉じておきましょう。
1
sudo systemctl enable mariadb
すると以下のような結果になります。
続いて、以下のコマンドを実行して自動起動が有効化を確かめてみましょう。
1
sudo systemctl is-enabled mariadb
画像のように「enabled」と表示されたら、問題なく自動起動の設定ができています!
これで、MariaDBを毎回手動で起動する必要がなくなったね!
2-4 パスワードを初期化しよう
インストール後のデフォルトの設定でmysqlに接続しようとすると適切な権限がないためエラーになります。
そのため以下の手順に従ってパスワードの初期設定を行います。
1
2
sudo systemctl stop mysqld
sudo mysqld_safe --skip-grant-tables &
すると以下のようにターミナルがコマンドを打てない状態になります。
この状態になったら+ボタンで新しいターミナルを開きましょう。
1
2
3
4
mysql -uroot
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '';
exit
以下のようになれば成功です。
以下のコマンドを入力し、エラーにならないか確認してみましょう。
1
mysql -uroot
以下のように入力画面になれば問題なく初期化できています。
確認ができたらexit
で抜けておきましょう。
3.Ruby on Railsを用意しよう
Cloud9に最初から用意されているRubyのバージョンには、Railsも入っています。
しかし、現在使用している「Ruby 2.7.5」にはRailsが入っていないので、インストールする必要があります。
Ruby on Railsとは
Ruby on Railsとは、プログラミング言語であるRubyで作られた非常に強力なフレームワーク(開発作業を効率化するための骨組み、テンプレートのようなもの)です。
Ruby on Railsは、Gem(Ruby言語用の外部ライブラリ)でもあります。RailsというGemをインストールすることで、効率的に開発する為の雛形をすぐに用意することが可能なので、Webアプリケーションを簡単に作成できるようになります。
3-1.nokogiriをインストールしよう
nokogiri
は「Web開発」、「データ処理」、「自動化スクリプト」など、様々な箇所で利用されるgemです。Railsでも nokogiri
を利用しているので、以下のコマンドを実行してインストールしましょう。
1
gem install nokogiri -v 1.15.5
以下の画像のように最後に 1 gem installed
と表示されれば、インストール完了です。
3-2.Ruby on Railsのバージョンを確認しよう
まずは、Ruby on Railsのバージョンを確認してみましょう。
1
rails -v
「Ruby 2.7.5」には、まだRailsがインストールされていないので、コマンドを実行すると「bash: rails: command not found」と表示されるはずです。
それでは、「Rails 6.1.3.1」をインストールしていきましょう。
3-3.Ruby on Railsをインストールしよう
次にバージョンを指定して、Railsのインストールをしましょう。
1
gem install rails -v '6.1.3.1'
実行すると、Ruby on Railsのインストールが開始されます。
少し時間がかかるので待ちましょう。
続いて、Railsのバージョンを確認するために以下のコマンドを実行しましょう。
1
rails -v
画像のように「Rails 6.1.3.1」と表示されたら、インストールは完了となります。
これでRuby on Railsの用意ができました。次へ進みましょう!
4.Bundlerを用意しよう
Bundlerは、RVMで「Ruby 2.7.5」をインストールした際に入りますが、使用したいバージョンよりも低い可能性があります。
カリキュラムでは「Bundler 2.3.5」を使用するので、再度インストールしていきます。
Bundlerとは
Bundlerは、Gemのバージョンや依存関係を管理します。
複数人で開発する際に、gemのバージョンが上がってもエラーを起こさずに開発することができます。
4-1.Bundlerのバージョンを確認しよう
まずは、Bundlerのバージョンを確認してみましょう。
1
bundle -v
表示されたバージョンが「2.3.5」ではない方は、そのまま次に進みましょう。
すでに「Bundler 2.3.5」が入っている方は、「5.yarnを用意しよう」へ進みましょう。
4-2.Bundlerをインストールしよう
次にバージョンを指定して、Bundlerのインストールをしましょう。
1
gem install bundler -v 2.3.5
コマンドを実行すると、Bundlerのインストールが開始されます。
続いて、Bundlerのバージョンを確認するために以下のコマンドを実行しましょう。
1
bundle -v
画像のように「Bundler version 2.3.5」と表示されたら、インストールは完了となります。
これでBundlerの用意ができました。次へ進みましょう!
5.Yarnを用意しよう
開発に必要なソフトウェアがほとんど揃っているCloud9ですが、Yarnはデフォルトでインストールされていません。
カリキュラムに使用する「yarn 1.22.17」をインストールしていきましょう。
Yarnとは
Yarnとは、JavaScriptのパッケージマネージャー(ソフトウェアを一括で管理するシステム)のことです。
Rails6でwebpackerが標準になったことにより、yarnをインストールする必要があります。
5-1.Yarnのバージョンを確認しよう
まずは、Yarnのバージョンを確認してみましょう。
1
yarn -v
Yarnはインストールされていないので、コマンドを実行すると「bash: yarn: command not found」と表示されるはずです。
それでは、「yarn 1.22.17」をインストールしていきましょう。
5-2.Yarnをインストールしよう
次にバージョンを指定して、Yarnのインストールをしましょう。
1
npm install -g yarn@1.22.17
コマンドを実行すると、Yarnのインストールが開始されます。
続いて、Yarnのバージョンを確認するために以下のコマンドを実行しましょう。
1
yarn -v
画像のように「1.22.17」と表示されたら、インストールは完了となります。
お疲れ様でした!これでRailsカリキュラムで使用するアプリケーションの事前準備は完了です
さいごに
この章ではAWS Cloud9の環境にRuby on Railsの開発環境を整えることができました。これでいよいよアプリケーション開発を学ぶことができます。
この記事のまとめ
- 開発環境の構築とは、開発に必要なソフトウェアを環境に導入し、Webアプリケーションを動かせるように設定していく作業のこと
- AWS Cloud9には、開発に必要なソフトウェアがデフォルトで揃う
- Cloud9でもバージョンの調整が必要
この記事で学んだことをTwitterに投稿して、アウトプットしよう!
Twitterの投稿画面に遷移します