Ruby on Rails の勉強をしようとして、ネットの情報を見ていたら、開発環境が AWS Cloud9 だった。そのサイトの通りに作業していくと、default でいけるはずの VPC がなく作業が止まる。とりあえず default で VPC を作っても上手くいかない。
こちらのサイトで勉強してから再挑戦。VPC を作った後にサブネットとルートテーブルを作成。CIDR をきちんと設定しても上手くいかない。エラーメッセージの
"Cloud9 could not connect to the EC2 instance. Please check your VPC configuration and network settings to troubleshoot the issue"
を google さまに検索してもらうと、「パブリック IPv4 アドレスを自動割り当てがいいえ」になっているとだめ、との情報が。ここで Cloud9 IDEを開こうとすると、いままで「接続待ち」だった表示が「立ち上がり待ち」に変わったのだが結局失敗。
改めて見直すと、ルートテーブルにインターネットゲートウェイがない。どこかで必要なルートは自動的に追加されるとあったのだが、手動で追加する必要があるのか?手動で追加しようとするとインターネットゲートウェイが見つからないと出てくる。ふと、VPC設定ページの左メニューを見ていると「インターネットゲートウェイ」の文字が。新しくインターネットゲートウェイを作り、 VPC に紐づけてルートテーブルに 0.0.0.0/0 -> igw-xxxx のルートを追加。その上で再度 Cloud9 を作成すると、今度はあっさり成功。
結局
- VPC、サブネット、ルートテーブル、インターネットゲートウェイを作成してそれぞれを紐づけ
- VPC の IPv4 CIDR は10.0.0.0/16
- サブネットの IPv4 CIDR は10.0.0.0/24
- サブネットのパブリック IPv4 アドレスを自動割り当てを「はい」に
- ルートテーブルに 0.0.0.0/0 -> igw-xxxx を追加
- Cloud9 作成時に、上で作った VPC とサブネットを指定
で成功したようだ。
AWS を最後に触ったのは5-6年前だと思うけど、その時は VPC なんて触らなくても良かった気がするなぁ...。
SNS で、AWS の資格の話題がよく出る理由が分かった気がする ><
追記