概略
AWS Cloud9で開発をしてみようと試みたものの、なぜだか接続できない・・・。
ほとんどの原因は、ネットワークのアクセス許可がないことと考えられます。
私が解決した方法を紹介しています。
状況
- 「This is taking longer than expected...」というメッセージが表示される
- Cloud9用のEC2は正常に起動している
- 同じサブネットに存在するCloud9用ではないEC2からは、外部との接続に問題なし
問題点
Cloud9 IDEの画面(Web)とCloud9用 EC2が別のVPCにある。
問題点は、IDEからEC2への接続ができていないこと。
解決方法
Cloud9用EC2を起動したVPCのネットワークACL(インバウンド)に設定を追加する。
- イメージ図
許可するIPアドレスとポート番号
IPアドレス(ネットワークアドレス) ※ 東京リージョン: ap-northeast-1の場合
- 18.179.48.96/27
- 18.179.48.128/27
ポート番号
- 22(SSH)
最新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"]))