Ruby on Railsチュートリアルでは開発環境としてクラウドIDEであるAWS Cloud9を使うことを推奨しているが、ここの環境構築で詰まる人がいるかもしれないので簡単に解説しようと思う。
目次
イメージ
あくまでイメージとしてはこんな感じ。
VPCという空間の中に、さらに仕切られたサブネットという部屋がある。Cloud9はその部屋の中にいるけど、その部屋に行くための入り口(インターネットゲートウェイ)や道案内(ルートテーブル)をしてあげないとたどり着けないってわけ。
Cloud9のenviromentを作成する時にAWS側でよしなにやってくれればいいんだけど、どうもここは手動で設定してやる必要があるらしい。
必要な項目
Cloud9を立ち上げ、そこに接続するためには最低でも以下の5つを正しく構成してやる必要がある。セキュリティとか冗長性とか考えるともっとやらなきゃいけないことはあるんだけど、チュートリアルに使うくらいならこれだけ抑えておけばたぶんOK。
上から順番に作成していくことをおすすめする。
- VPC
- サブネット
- インターネットゲートウェイ
- ルートテーブル
- Cloud9
ここから先はAWSのアカウントは作成済みで、サインインまではできている前提で話をすすめる。またAWSの画面レイアウトは頻繁に更新されるのでキャプチャの通り見えているとは限らないが、設定方法が大きく変化することはないので気にせず進めてほしい。
1. VPC(Virtual Private Cloud)
VPCは一言でいうと、自分専用の土地のようなもの。AWSという広大な世界に、自分のアカウント専用の敷地を区切ってそこに必要なものを建てていくイメージ。
VPCの作成
- 画面上部のバーの「サービス」から「VPC」を選択する。
- 左メニューから「VPC」を選択する。
- 「VPCの作成」ボタンを押す。
- 以下のように入力し、「VPCを作成」ボタンを押す。
- 名前タグ:「rails_tutorial_vpc」など、わかりやすい名前
- IPv4 CIDR ブロック:10.0.0.0/16
2. サブネット
次はサブネットを用意して、さっき作ったVPCを分割していく。といっても今回はひとつのサブネットしか作らないので分割って感じではないけど。
サブネットの作成
- 左メニューから「サブネット」を選択し「サブネットの作成」ボタンを押す。
- さっき作ったVPCを選択する。
- 以下のように入力し、「サブネットを作成」ボタンを押す。
- サブネット名:「rails_tutorial_subnet」など、わかりやすい名前
- アベイラビリティゾーン:ap-northeast-1a
- IPv4 CIDR ブロック:10.0.1.0/24
3. インターネットゲートウェイ
今度はインターネットゲートウェイ。AWSの世界はそのままではインターネットと通信することができないので、通り道となる門(ゲートウェイ)を作っていく。
インターネットゲートウェイの作成
- 左メニューから「インターネットゲートウェイ」を選択し「インターネットゲートウェイの作成」ボタンを押す。
- 以下のように入力し、「インターネットゲートウェイの作成」ボタンを押す。
- 名前タグ:「rails_tutorial_igw」など、わかりやすい名前
インターネットゲートウェイをVPCへアタッチする
さて、インターネットゲートウェイを作ることができたけど、実はこれだけではまだ足りないんだ。この時点ではゲートウェイはVPCとは全然関係ないところに置きっぱなしなので、ちゃんと使えるようにするために、さっき作ったVPCと紐付けてあげなきゃいけない。
- インターネットGWが作成完了すると、VPCへアタッチするよう指示されるので「VPCへアタッチ」ボタンを押す。
- 前項で作成したVPCを選択し、「インターネットゲートウェイのアタッチ」ボタンを押す。
4. ルートテーブル
VPC内にサブネットという空間も作って、インターネットゲートウェイも置いた。次はサブネットからインターネットゲートウェイまで歩いていけるように道を引いてやる。
ルートテーブルの作成
- 左メニューから「ルートテーブル」を選択し「ルートテーブルの作成」ボタンを押す。
- 以下のように入力し、「作成」ボタンを押す。
- 名前タグ:「rails_tutorial_rt」など、わかりやすい名前
- VPC:さっき作ったVPCを選択
- タグのキー:Name
- タグの値:「rails_tutorial_rt」など、わかりやすい名前
ルートテーブルの編集
ルートテーブルを作成したので、そこに必要な情報(道すじ)を書き込んでいく。
- ルートテーブル一覧から、さっき作成したルートテーブルを選択する。
- 「ルート」タブの「ルートの編集」ボタンを押す。
- 「ルートの追加」ボタンを押し、以下のように入力して「ルートの保存」ボタンを押す。
- 送信先:0.0.0.0/0
- ターゲット:「Internet Gateway」→作成したインターネットGWを選択
ルートテーブルをサブネットへアタッチする
ルートテーブルはサブネットに紐付けて使うものなので、その設定をする。
- 左メニューから「サブネット」を選択し、さっき作成したサブネットを選択する。
- 「ルートテーブル」タブの「ルートテーブルの関連付けを編集」ボタンを押す。
- 「ルートテーブルID」からさっき作成したルートテーブルを選択する。
- ルート欄に「0.0.0.0/0」の行があることを確認し、「保存」ボタンを押す。
5. Cloud9
これでようやくCloud9を使う準備が整った。満を持して設定していこう。
Cloud9 enviromentの作成
- 画面上部のバーの「サービス」から「Cloud9」を選択する。
- 「Create enviroment」ボタンを押す。
- 「rails_tutorial_cloud9」のようにわかりやすい名前を入力し、「Next step」ボタンを押す。
- 以下のように入力し、「Next step」ボタンを押す。
- Platform:Ubuntu Server 18.04 LTS
- Network(VPC):さっき作成したVPC
- Subnet:さっき作成したサブネット
- 内容を確認し、「Create enviroment」ボタンを押す。
- 作成中の画面が出るので、しばらく待つ。
- 作成完了して、以下の画面が表示されれば成功!お疲れさまでした~