AWS Cloud9 接続できない問題を解決

f:id:hate_nattou:20211120232027j:plain:w480

概略

AWS Cloud9で開発をしてみようと試みたものの、なぜだか接続できない・・・。

ほとんどの原因は、ネットワークのアクセス許可がないことと考えられます。

私が解決した方法を紹介しています。

状況

  • 「This is taking longer than expected...」というメッセージが表示される
  • Cloud9用のEC2は正常に起動している
  • 同じサブネットに存在するCloud9用ではないEC2からは、外部との接続に問題なし

問題点

Cloud9 IDEの画面(Web)とCloud9用 EC2が別のVPCにある。

問題点は、IDEからEC2への接続ができていないこと。

解決方法

Cloud9用EC2を起動したVPCのネットワークACL(インバウンド)に設定を追加する。

  • イメージ図 f:id:hate_nattou:20211120231257p:plain

許可するIPアドレスとポート番号

IPアドレス(ネットワークアドレス) ※ 東京リージョン: ap-northeast-1の場合

  • 18.179.48.96/27
  • 18.179.48.128/27

ポート番号

最新IPアドレスの取得方法

最新の情報は、ip-ranges.json を公式から取得して検索する、もしくは、以下のPythonプログラムを動かしてください。

import requests

# 定数(任意で変更可能)
SERVICE = "CLOUD9"
REGION = "ap-northeast-1"  # 東京リージョンの場合

# AWSが提供するファイルを取得
ip_ranges = requests.get('https://ip-ranges.amazonaws.com/ip-ranges.json').json()['prefixes']

# SERVICEとREGIONでフィルターをかける
filtered_ips = filter(lambda x: (x["service"] == SERVICE) and (x["region"] == REGION), ip_ranges)

# 出力
for ip in filtered_ips:
    print(str(ip["ip_prefix"]))

参考

docs.aws.amazon.com