Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

AWS Cloud9 と ConoHa VPS を連携して Rails の開発環境を構築

More than 1 year has passed since last update.

概要

Ruby on Rails チュートリアルでRailsを学ぶための開発環境を作成しました。
開発環境のCloud9は無料で使えるようですが、チュートリアル通りにEC2を選択すると時間等により課金されてしまうため(通常は無料枠内ですが)、精神的に安心な月額固定のVPSを選択してみました。

VPSの選択はとにかく安めで、クラウド的な使い方のできる(っていうかクラウド?)ConoHaを選択しました。
また、OSはCentOSやUbuntuも検討しましたが、ラズベリーパイで慣れているDebianを選択しました。

ConoHa VPS の設定

こんな感じでサーバを追加しました。
001.JPG

OS(Debian)の設定

rootアカウントでログインして、ロケールとタームゾーンの設定、および、お約束のアップデートを実施します。

# dpkg-reconfigure locales
# dpkg-reconfigure tzdata
# apt -y update
# apt -y upgrade
# apt -y dist-upgrade

ユーザーを作成します。今回は例として「pi」ユーザーを作成します。

# useradd -G sudo -m -s /bin/bash pi
# passwd pi
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
# su - pi
$ exit
# vi /etc/sudoers.d/010_pi-nopasswd
pi ALL=(ALL) NOPASSWD: ALL
# vi /etc/ssh/sshd_config
変更
PermitRootLogin yes
↓
PermitRootLogin no

hostsを編集し再起動します。

# vi /etc/hosts
127.0.0.1       localhost
127.0.1.1       DEBIAN
127.0.1.1       xx-xx-xx-xx    #ホスト名を追加
# reboot

piユーザーでログインして設定を継続します。

ufwのインストールと設定
$ sudo apt install -y ufw
$ sudo systemctl enable ufw
$ sudo systemctl restart ufw
$ sudo ufw logging on
$ sudo ufw allow 22/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 3000/tcp
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
3000/tcp                   ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
3000/tcp (v6)              ALLOW       Anywhere (v6)

$ sudo tail /var/log/ufw.log
node.jsのインストール
$ sudo apt install -y curl
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt install -y nodejs
$ sudo apt install -y build-essential
$ node -v
v10.2.1
dockerのインストール
$ sudo vi /etc/apt/sources.list
追記
deb http://ftp.jp.debian.org/debian/ sid main
deb-src http://ftp.jp.debian.org/debian/ sid main
$ sudo apt -y update
$ sudo apt install -y docker docker.io
$ sudo gpasswd -a ${USER} docker
$ docker -v
Docker version 1.13.1, build 092cba3

参考サイト:Raspberry Pi3にRails5環境を構築して遊んでみる

Rubyのインストール
$ sudo apt install -y rbenv ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ rbenv rehash
$ rbenv install --list
$ MAKE_OPTS="-j 4" rbenv install 2.4.0
$ rbenv global 2.4.0
$ rbenv rehash
$ ruby --version
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
SQLliteのインストール
$ apt install -y libsqlite3-dev
gitのインストール
$ sudo apt install -y git
HEROKUのインストール
$ source <(curl -sL https://cdn.learnenough.com/heroku_install)
再起動
$ sudo reboot

AWS Cloud9 の設定

大事なところだけです。
「Connect and run in remote server(SSH)」を選択、「User」「Host」「Port」を入力します。
002.JPG

次に「Copy key to clipboard」をクリックして公開鍵をクリップボードに保存します。
公開鍵をVPSに設定します。

公開鍵の設定
$ ssh-keygen -t rsa
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Created directory '/home/pi/.ssh'.
Enter passphrase (empty for no passphrase):

$ vi ~/.ssh/authorized_keys
#公開鍵(クリップボードの内容)をペースト
$ chmod 600 ~/.ssh/authorized_keys

「Next step」をクリックし、指示通り進めば、開発環境の出来上がりです。

Railsのインストール
$ gem install bundler
$ gem install rails
$ rails -v
Rails 5.2.0
Railsアプリの作成
$ rails new testapp
$ cd testapp
$ rails server -b 0.0.0.0 -p 3000

ブラウザを起動し以下のURLにアクセスして「Yay! You’re on Rails!」が表示されれば成功です。
http://VPSのIPアドレス:3000

sunaga70
楽な仕事ください or 面白い仕事しましょう
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away