Ruby On RailsをAmazonLinux2にインストール(2018.3)


RoRのamazonLinux2へのインストール

  • 執筆時点での最新をとにかく追求
    • Amazon Linux 2 LTS Candidate AMI 2017.12.0 (HVM), SSD Volume Type - ami-c2680fa4
    • rbenv 1.1.1-30-gc8ba27f
    • ruby 2.5.0 (with rbenv)
    • Rails 5.1.5
  • 先人の知恵をまとめただけです。。

AmazonLinux2とは

  • CentOS7ベースで今後はこちらをメインにメンテナンスされる
  • マシンイメージはローカルなどにも持ってこれる
  • リポジトリ周りなどに癖がある模様
  • その他の違いは下記(参考にしました)

依存ライブラリインストール

  • 後続の手順をやると都度怒られるので、メッセージ見ながら都度入れても良い
sudo yum install -y ¥
  git ¥
  gcc ¥
  openssl-devel ¥
  readline-devel ¥
  zlib-devel ¥
  sqlite-devel

ruby(rbenv),railsのインストール

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

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile 
rbenv --version

rbenv install --list
rbenv install 2.5.0
rbenv global 2.5.0
rbenv rehash

which ruby
ruby --version

gem install bundler sqlite3 rails
rails --version

rails new your_project

AmazonLinux向けセットアップ

  • ロケール、タイムゾーンまでを実施
    • タイムゾーンはやり方が異なる!
sudo cp -p /etc/localtime /etc/localtime.org
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
#sudo sed -i -e 's%"UTC"%"Asia/Tokyo"%' /etc/sysconfig/clock
timedatectl set-timezone Asia/Tokyo

その他追加で必要なら

SWAPの設定

  • AmazonLinux2ではddでやること(not fallocate)

CloudWatchLogsのインストール

AmazonLinux2用のExtras Library

まとめ

実はBeanstalk使ってたんですが、バージョンアップ要望があり、
rubyのバージョン管理にはrbenvの手順が多かったのでついでに乗り換えようかなと。
フォルダごとにrubyのバージョンを切り替えられるとか、便利そうですね