AWS上でIDE環境を構築できるサービスとして、Cloud9が提供されています。
このCloud9はIDE用の環境を自動構築してくれるのですが、その裏ではCloudFormationのStackが新規作成され、それによってVPCやEC2などのインスタンスが作成されます。
今回、デフォルトのVPCではなくVPCウィザードを利用して事前にVPCを作成した後、cloud9のコンソールからIIDE環境を自動構築したところ、なぜかEC2に接続できないエラーが発生してしまい、IDE環境に接続できず少しハマってしまいました。
自身の備忘としても、解決方法を記録しておきます。
事象
- VPCウィザードを利用してVPCを作成
- パブリック/プライベートサブネット,インターネットゲートウェイあり
- Cloud9コンソールから環境を自動作成
- EC2への接続オプションはSSMを選択
- Cloud9によって作成されたCloudFormationのStackのステータスは
CREATE_COMPLETE
になっていた - Cloud9側では、以下の通りEC2に接続できないエラーが出ていた
原因
- EC2を作成したサブネットの
パブリック IPv4 アドレスの自動割り当てを有効化
にチェックが入っておらず、EC2にパブリックIPが割り当てられていなかった
詳細
- Cloud9による自動構築でSSMを利用する際はEC2インスタンスがパブリックIPを持っている必要があった
- (SSMを利用したEC2への接続自体には、パブリックIPは必須ではなく別の構成もありえるのでご注意を...)
- パブリックサブネットにインスタンスを配置していたが、サブネット側でパブリックIPを自動割当しない設定になっていたので、インスタンスにパブリックIPが割り振られていなかった
- それによってCloud9とEC2が通信できずに接続エラーになっていた
解決方法
以下の流れで対応していきます。
(VPC自体は作成されている状態からスタート)
- サブネットの設定を修正
- 再度Cloud9の環境を構築
1. サブネット設定を修正
まずは事前に作成しているVPC内のパブリックサブネットを選択し、サブネットの設定を編集
をクリックします。
遷移後の画面で、パブリックIPv4アドレスの自動割り当てを有効化
にチェックを入れ、画面下部の保存
をクリック
2. 再度Cloud9の環境を構築
この状態で再度Cloud9から環境を構築すると、正常に環境を作成することができます。
まとめ
無事に既存のVPCへCloud9の環境を構築することができました。
ちなみに今回のエラーは、サジェストされている注意事項をきちんと確認すればすぐに解決する内容でした。。。
今後はしっかりと確認しながら構築を進めたいと思います!
なにか間違いやご指摘がありましたらコメントいただけますと幸いです!