前置き
散々トライした結果EC2上でRDS(mysql)を使って接続ができたので備忘録を。
年月を書いたのは少しでも情報が古いとうまくいかないことが多かったからです。
コマンドだけ列挙しますが、それぞれが何を意味しているのかよく分かっていないのもあります。
どなたかのお役に立てれば幸いです。
前提
- VPC内にEC2(Amazon Linux2 x86)とRDS(mysql)がある どちらも無料枠
- セキュリティグループのインバウンドルールは以下の通り
- SSH TCP 22 MyIP
- MYSQL/Aurora TCP 3306 このグループ内
- カスタムTCP TCP 3000 0.0.0.0/0
- ErasticIPはEC2に割り当ててある(この記事では123.123.123.123とする)
コマンド
sudo yum -y update
sudo yum -y install git
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
sudo shutdown -r now
なぜか不明ですがここで再起動をするとうまくいきました。
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
sudo yum -y install gcc gcc-c++ make openssl openssl-devel readline-devel mysql mysql-devel nodejs yarn libmysqld-dev
rbenv install 2.7.1
rbenv global 2.7.1
gem update --system
gem install --no-document rails
gem install bundler
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config
gem install sassc -v '2.4.0'
rbenv rehash
rails new hoge -d mysql
cd hoge
vim config/database.yml
ここで以下のように修正する。
development:
<<: *default
adapter: mysql2
encoding: utf8
reconnect: false
pool: 5
username: 「RDSのユーザー名」
password: 「RDSのパスワード」
host: 「RDSのエンドポイント」
database: 「RDSのDB名」
port: 3306
以下コマンドの続き
bundle install
rails g scaffold Memo title:string body:text
rails db:migrate
rails server -b 「EC2のプライベートIP(ip a とコマンドを打つと出てくる)」 -d
この状態で、手元のssh接続元PCのブラウザで 123.123.123.123:3000 を開く
思ったこと(未検証)
- 無料枠のEC2のせいなのか分からないが、最初から入っていないモジュールがたくさんある
- railsにはnode.jsやyarnが必要らしい
- デフォルトでインストールされたdbサーバは消す必要があるのではないか