EC2 Instance Connect エンドポイント
VPCを学ぶとはちょっと違うが「グローバルIPアドレスが付与されていないEC2に直接sshできない」となると、前回の実験のように、どれか1台はグローバルIPは付与して、そこから内部ネットワークを経由してsshするということになる。
1台もグローバルIPを割り当ててないネットワークももちろんあるだろう。そういう場合、EC2 Instance Connect エンドポイントを作成して接続するらしい。
これを作成してみて、接続し、前回の「グローバルIPアドレスが割り振られたEC2インスタンス」とどう違うのか確認してみる。
ちょっと時間はかかるが「EC2 Instance Connect エンドポイント」リソースを作成し、接続することができた。これの料金については無料らしい。
これを使って接続したマシンは相変わらずインターネットに出られるわけではない。
ip neigh
したらたぶんこの「EC2 Instance Connect エンドポイント」であろうIP・MACアドレスも確認できた。
「グローバルIPアドレスが割り振られたEC2インスタンス」とどう違うのか確認してみたが、内側からは何も
手順
- マネコントップの検索に「EC2」と入力して検索結果よりEC2ダッシュボードに入る
- インスタンスをクリック
- グローバルIPアドレスを割り当ててないほうのインスタンスを選択する
- 「接続」ボタンを押す
エンドポイントの作成
「EC2 Instance Connect」タブを選んで、「EC2 Instance Connect エンドポイントを使用して接続する」を選択する
「プライベートIPアドレス」がこのEC2インスタンスのアドレスが自動的に入力される。
「エンドポイントを選択」を押すと、作成のリンクがあるのでそれを選択して画面作成画面に遷移させる
このリソースは VPC メニューの「PrivateLink と Lattice」の「エンドポイント」に存在する。
パラメータ
名前タグ
learning-ep-{日付}
で作成する
例) learning-ep-20250525
タイプ
デフォルトで「AWSのサービス」となっているが、「EC2 インスタンス接続エンドポイント」を選択する。
ネットワーク設定
本EC2が所属しているVPCを選択する
例) learning-20250506
セキュリティグループ
先日作ったセキュリティグループを選択する。
たぶんsshができればよさそう。
例) learning-sg-20250505
サブネット
本EC2が所属しているサブネットを選択する
例) learning-subnet-20250506
作成
「エンドポイントの作成」ボタンを押す。
エンドポイント画面
押すとエンドポイント画面に移動する。今作ったエンドポイントのステータスは「保留中」となっているので、構築完了を待つ。
EC2の接続画面には15分ほどかかるとある。
接続
先ほどのタブに戻るか、以下の操作を行う。
- マネコントップの検索に「EC2」と入力して検索結果よりEC2ダッシュボードに入る
- インスタンスをクリック
- グローバルIPアドレスを割り当ててないほうのインスタンスを選択する
- 「接続」ボタンを押す
- 「EC2 Instance Connect」タブを選ぶ
- 「EC2 Instance Connect エンドポイントを使用して接続する」を選択する
パラメータ
プライベートIPアドレス
「プライベートIPアドレス」がこのEC2インスタンスのアドレスが自動的に入力される。
ユーザー名
ec2-user
最大トンネル時間
デフォルトの 3600
でOK
接続
「接続」を押す。新しいブラウザタブが開く
ip a
NICが増えているわけではなさそう。
[ec2-user@ip-10-0-150-119 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enX0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel state UP group default qlen 1000
link/ether 06:31:1a:72:3a:e1 brd ff:ff:ff:ff:ff:ff
altname eni-088b47196589351e5
altname device-number-0.0
inet 10.0.150.119/16 metric 512 brd 10.0.255.255 scope global dynamic enX0
valid_lft 3292sec preferred_lft 3292sec
inet6 fe80::431:1aff:fe72:3ae1/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
curl -4 -v checkip.amazonaws.com
インターネットにつながるようになったわけではない。名前は引けるがつながらず(前と同じ)。
[ec2-user@ip-10-0-150-119 ~]$ curl -4 -v checkip.amazonaws.com
* Host checkip.amazonaws.com:80 was resolved.
* IPv6: (none)
* IPv4: 54.83.47.186, 54.165.101.8, 98.85.34.251, 34.192.218.136, 44.215.101.138, 52.201.98.187
* Trying 54.83.47.186:80...
ip r
まぁ特にルーティングは変わらず
[ec2-user@ip-10-0-150-119 ~]$ ip r
default via 10.0.0.1 dev enX0 proto dhcp src 10.0.150.119 metric 512
10.0.0.0/16 dev enX0 proto kernel scope link src 10.0.150.119 metric 512
10.0.0.1 dev enX0 proto dhcp scope link src 10.0.150.119 metric 512
10.0.0.2 dev enX0 proto dhcp scope link src 10.0.150.119 metric 512
ip neigh
10.0.77.91
こいつが踏み台か?本実験で作ったEC2は、このマシンが 10.0.150.119/16
で、グローバルIPアドレスがアタッチされたマシンは 10.0.105.191/16
なので、このIPアドレスは未知である。
[ec2-user@ip-10-0-150-119 ~]$ ip neigh
10.0.77.91 dev enX0 lladdr 06:68:96:ab:f1:15 REACHABLE
10.0.0.1 dev enX0 lladdr 06:18:15:6d:2d:bd REACHABLE