[アップデート]プライベートサブネットで Cloud9 が利用可能!Cloud9 が Session Manager に対応しました!

Cloud9 が Session Manager に対応しました。
2020.08.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、岩城です。

(2020/11/20追記)プライベートサブネット上ではAWS CLI実行に制約があることが分かりました。 Cloud9をプライベートサブネットで使えるようになったわけではなく、パブリックサブネットに限ってインバウンドを閉じた状態でも使えるということみたいです。 詳しくは弊社川原が書いたブログをご確認ください。 Cloud9 IDE で AWS CLIを実行する際に注意したいネットワーク的制約

Cloud9 に関するアップデートを紹介します。

AWS Cloud9 が拡張 VPC サポートをリリース

これまで Cloud9 から Cloud9 環境へ接続するにはパブリックインターネット経由での SSH 接続が必要でした。

今回のアップデートにより Session Manager を使用して Cloud9 からプライベートネットワーク上にある Cloud9 環境へ接続することが可能となりました。

パブリックインターネット経由での SSH 接続が不要になるため、よりセキュアな環境で Cloud9 を利用できるようになったということです。

やってみた

VPC エンドポイント用のセキュリティグループを作成する

Cloud9 環境から VPC エンドポイントに HTTPS を許可するため、セキュリティグループを作成します。 VPC もしくは サブネットの CIDR から VPC エンドポイントへの HTTPS を許可するインバウンドルールを追加します。

VPC エンドポイントを作成する

VPC エンドポイント経由で Session Manager を利用するため、以下 3 サービスの VPC エンドポイントを作成します。

  • com.amazonaws.ap-northeast-1.ssm
  • com.amazonaws.ap-northeast-1.ssmmessages
  • com.amazonaws.ap-northeast-1.ec2messages

VPC エンドポイント作成時に選択できるサービスは 1 つです。3 サービス分以下の作業を繰り返し作成します。

  • サービスを選択
  • Cloud9 環境を起動する VPC を選択
  • 事前に作成しておいたセキュリティグループを選択

VPC エンドポイントを 3 つ作成、維持する必要があるため、VPC エンドポイントの利用料に注意してください。

AWS PrivateLink の料金

Cloud9 環境を作成する

マネジメントコンソールからの Cloud9 環境作成は以下の 3Step から構成されています。

  • Step 1 : Name envirionment
  • Step 2 : Configure settings
  • Step 3 : Review

Step 1 : Name envirionment

Cloud9 環境の名前を指定します。Description は省略できます。

Step 2 : Configure settings

Environment typeに新しくCreate a new no-ingress EC2 instance for environment (access via Systems Manager)が追加されています。

Cloud9 環境で Session Manager を利用するため、AWS 管理のサービスロールとロールにアタッチするプロファイルが指定されます。

Cloud9 環境を起動する VPC とサブネットを指定します。指定しない場合、デフォルトVPCとデフォルトサブネットが指定されます。

Step 3 : Review

設定内容が示されるので問題なければCreate environmentをクリックします。

しばらく待っていると IDE が開きます。この時点で Session Manager で接続できています。

ちなみに VPC エンドポイントの作成忘れやセキュリティグループのルールが間違っていたりすると、Session Manager で接続できないので IDE を開くことができません。裏では何度も Session Manager で接続をリトライしているので、Session Manager の API Call を SLack 等に連携していると、あっと言う間に 50 件とか通知が来ますので注意が必要です。

Cloud9 環境から Session Manager を確認してみる

Cloud9 環境から Session Manager のプロセスを確認したところ、複数のセッションが張られていることが分かりました。

Session Manager のコンソールから確認しても同じ数のセッションが Cloud9 環境に張られていることが分かります。

ドキュメントを見ても複数セッションが張られる理由は分かりませんでしたが、Session Manager の API Call を通知するような運用をしている場合、予想に反して複数の通知が来ることになりますので注意してください。

おわりに

パブリックインターネット経由となることで、これまで利用を避けていた方には朗報なのではないでしょうか。 是非試してみください。

本エントリがどなかたのお役に立てれば幸いです。

参考

Accessing no-ingress EC2 instances with AWS Systems Manager

Systems Manager を使用してインターネットアクセスなしでプライベート EC2 インスタンスを管理できるように、VPC エンドポイントを作成するにはどうすればよいですか?