【AWS】 EC2でrbenv使ったrubyの環境を構築してみた

サーバー

以前から触りたいと思っていたAWSのEC2をいじってみました。AWSは米アマゾンの展開するクラウドコンピューティングサービスですね。難しそうという印象が大きかったのですが、実はそうでもなさそうでした。

EC2でインスタンスを作成する

まず、EC2でインスタンスを作成する事が必要です。ここでいう、インスタンスとは仮想マシンの単位とのこと。

AWSのコンソールを開きます。「仮想マシンを起動する」という項目があって、2-3分でできるとあるのでそこをクリック。

AMIというOSを選べる画面が出てきました。思っていたよりも豊富です。取り敢えず今回はAmazon Linux 2 AMIというAWS EC2に最適化されたものを使いました。

t2.microというのが無料利用枠で一番良さそうなので、これに決定。

詳細設定やディスクの設定はデフォルトのままにしてセキュリティグループの設定へ。SSH接続を許可するIPを設定します。マイIPにすると現在使用中のIPが自動で入力されます。

AMI作成の確認画面が出たら、内容を確かめて起動をクリックします。すると、以下のようなポップアップが出てきました。SSH接続用の秘密鍵をダウンロードしないといけないようです。

適当にaws_ami1と名前をつけました。あとから知ったのですが、このキーペアは他のインスタンスでも使うことできるようです。

準備完了。作成準備中となっています。

インスタンスは一覧で確認できます。

作成が終了したら、SSHで仮想マシンに接続して、rubyの環境を作っていきます。秘密鍵のパーミッションで接続できないことがあるので、秘密鍵はWindowsなら、C:\Users\{ユーザー名}\.ssh内に入れると良いと思います。Linuxの場合はパーミッションを400にして下さい。

rbenvを用いてrubyの環境を構築する

こんかいh

まず、gitが入っていないのでインストールします。

sudo yum install git

rbenvとrubyのインストールに必要となるruby-buildをgithubからクローンします。今回はシステムにrubyをインストールせず、rbenv上ですべてインストールしました。また、rbenvはシステム全体用として/usr/localに入れます。

sudo git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv
sudo git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build

パスを通します。以下の内容を.bash_profileに書き加えて、ログアウトし直すなり、sourceで読み込んで下さい。

export PATH="/usr/local/rbenv:$PATH"
export 'eval "$(rbenv init -)"'

そして、早速ruby処理系のインストールといきたかったんですが、ruby install -v 2.6.3を実行したところCコンパイラがないよ、というエラーが有ったのでgccをインストールします。

sudo yum -y install gcc

これで再実行したところ、またもやエラー今度は依存性問題ですね。

Last 10 log lines:
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running yum install -y openssl-devel readline-devel zlib-devel to fetch missing depende

必要なパッケージをインストールします。

sudo yum install -y openssl-devel readline-devel zlib-devel

これでようやくrubyのインストールができます。このruby処理系をglobalのrubyに設定しました。

rbenv install -v 2.6.3
rbenv global 2.6.3

これで、rubyがバージョン管理システムとともにAWSで使えるようになりました。