はじめに
AWSフルコース22年3月度、第6回の課題まで終了したところ。
VPC内にEC2、RDSを設置し、EC2に接続。さらにEC2からRDSへの接続確認を行う。
というものだった。
で、EC2への接続方法はsshの他に、EC2 Instance Connectを使う手もあるらしい。
ブラウザからEC2に接続できるのって便利じゃん。と思い、挑戦してみることに。
課題とは関係ないけどまあいいや。
方針
なるべく公式ドキュメントで頑張る
よく分からないときはQiitaの解説記事などに頼る
とりあえずやってみた
-
最初は何でダメなのか分からなかったが、EC2 Instance Connect セットアップを読みながら試行錯誤していくうちに一応整理できた。正確に理解できてるかは自信なし。
- EC2 Instance Connectは、「ブラウザベースのクライアント」からEC2インスタンスにssh接続できますよ、という機能。
- EC2インスタンスのインバウンドルールは、通信プロトコルとIPアドレスを見て、そのトラフィックを通すか否かをフィルタリングするもの。
- よって、「ブラウザベースのクライアント」のIPアドレスからのsshトラフィックを許可、というインバウンドルールを設定してやればOK。
公式ドキュメントを読みながら試行錯誤
タスク 1: インスタンスへのネットワークアクセスを設定する
- セキュリティグループの設定
- 22番ポートで、sshトラフィックを許可。
- このときの送信元IPは、どうやらAWS IP アドレスの範囲を見ればいいらしい。
- リンク先のip-ranges.jsonを確認。その中に以下の記載があった。
{
"ip_prefix": "3.112.23.0/29",
"region": "ap-northeast-1",
"service": "EC2_INSTANCE_CONNECT",
"network_border_group": "ap-northeast-1"
}
- というわけで、IP 3.112.23.0/29からのsshトラフィック(22番ポート使用)を許可、これでOK。
タスク 2: (条件付き) EC2 Instance Connect をインスタンスにインストールする
- 自分の場合、デフォルトでインストールされているのはずなので、この工程はパス。
タスク 3: (オプション) EC2 Instance Connect CLI をお使いのコンピューターにインストールする
- オプションということなのでパス
タスク 4: EC2 Instance Connect の IAM アクセス許可を設定する
IAM プリンシパルが EC2 Instance Connect を使用してインスタンスに接続できるように、パブリックキーをインスタンスにプッシュするアクセス許可を付与する必要があります。
- …イマイチ何言ってるかよく分からない。EC2 Instance Connectを使用する権限をIAMユーザーに付与しなさい、ということなのか?
- 公開鍵をプッシュする権限…???
- ともかく、ポリシーを作成してアタッチ。接続確認。
成功。
おわりに
これ書くのに時間かけすぎた。書こうとするといちいち手が止まるので、やっぱり分かってるつもりが分かってないんだなと実感。