Home

Published

- 4 min read

既存のVPCにSSMで接続するcloud9環境を構築したら躓いた

AWSCloud0
img of 既存のVPCにSSMで接続するcloud9環境を構築したら躓いた

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に接続できないエラーが出ていた 4-cloud9-error.png

原因

  • EC2を作成したサブネットのパブリック IPv4 アドレスの自動割り当てを有効化にチェックが入っておらず、EC2にパブリックIPが割り当てられていなかった

詳細

  • Cloud9による自動構築でSSMを利用する際はEC2インスタンスがパブリックIPを持っている必要があった
    • (SSMを利用したEC2への接続自体には、パブリックIPは必須ではなく別の構成もありえるのでご注意を…)
  • パブリックサブネットにインスタンスを配置していたが、サブネット側でパブリックIPを自動割当しない設定になっていたので、インスタンスにパブリックIPが割り振られていなかった
  • それによってCloud9とEC2が通信できずに接続エラーになっていた

解決方法

以下の流れで対応していきます。
(VPC自体は作成されている状態からスタート)

  1. サブネットの設定を修正
  2. 再度Cloud9の環境を構築

1. サブネット設定を修正

まずは事前に作成しているVPC内のパブリックサブネットを選択し、サブネットの設定を編集をクリックします。 1-subnet.png

遷移後の画面で、パブリックIPv4アドレスの自動割り当てを有効化にチェックを入れ、画面下部の保存をクリック 2-subnet.png

3-subnet.png

2. 再度Cloud9の環境を構築

この状態で再度Cloud9から環境を構築すると、正常に環境を作成することができます。 5-cloud9-retry.png

6-cloud9-retry.png

7-cloud9-retry.png

8-cloud9-retry.png

まとめ

無事に既存のVPCへCloud9の環境を構築することができました。
ちなみに今回のエラーは、サジェストされている注意事項をきちんと確認すればすぐに解決する内容でした。。。 9-cloud9-confirm.png

今後はしっかりと確認しながら構築を進めたいと思います!