グローバルIPv4を持つサーバ
つながってないサーバだが、グローバルIPv4を持たせることができる。これはどうなるのだろうか?
作って試してみる。
サーバにモデムを接続してそのままインターネットにでるような構成となるのだろうか?
結論から言うと
この予想は間違い。単にグローバルIPがAWSから貸出用に払い出されて、対象のEC2サーバのNICに設定されるだけで、特にインターネットからの接続やインターネットの接続設定が行われるものではない。
VPCの作成
前回のものをそのまま使い、作成しない
サブネットの作成
前回のものをそのまま使い、作成しない
EC2
できるだけ何もないEC2を作成
作成画面を出す
- EC2ダッシュボードへ行く
- ダッシュボードからサービスを検索「EC2」
- 左のメニューから「インスタンス」
- 黄色の「インスタンスを起動」ボタンを押す
パラメータ入力
名前とタグ
learning-ec2-{{日付}}
とでもしておく
例) learning-ec2-25-424
アプリケーションおよびOSイメージ
デフォルトの「Amazon Linux 2023 AMI」でOK
アーキテクチャなどなどもそのまま。
インスタンスタイプ
デフォルトの t2.micro
でOK。
キーペア(ログイン)
「新しいキーペアの作成」で作成する、
名前は learning-vpc-keypair-{{日付}}
とでもしておく。
例) learning-vpc-keypair-25-424
今時はED25519だと思うが、自分のSSHクライアントが対応しているものを選んでおくこと。
とりま、今時のMacなら ED25519 & pem でOK。作成するとダウンロードになる。
ダウンロードしたら chmod og-r
などでアクセス権を良い感じに設定する。
[pharaohkj] $ chmod og-r ~/Downloads/learning-vpc-keypair-25-424.pem
[pharaohkj] $ ls -l ~/Downloads/learning-vpc-keypair-25-424.pem
-rw-------@ 1 pharaohkj staff 387 4 24 18:29 /Users/pharaohkj/Downloads/learning-vpc-keypair-25-424.pem
ネットワーク設定
右の「編集」ボタンをクリックして設定する。以下、クリックすることででてくるメニューにおいて操作する。
VPC
ここでさっき作成したVPCを選択する。
例) learning-20250417
サブネット
さきほど作成したものが入っていることを確認する
learning-250417-subnet1
となっているはず
パブリックIPの自動割り当て
『有効化』 を設定する
ファイアウォール (セキュリティグループ)
「どこからでもsshはできる」という設定にしておく。(= デフォルト)
セキュリティグループ名
learning-launch-wizard-{?}
として前回作成したものを指定する。
ストレージを設定
デフォルトでよい。
高度な詳細
開かない
概要
インスタンス数は1でよい。他、上で入力したパラメータが表示されていることを確認する。
作成
コードを確認して、「インスタンスを起動」ボタンを押す。
aws ec2 run-instances --image-id "ami-0e449927258d45bc4" --instance-type "t2.micro" --key-name "learning-vpc-keypair-25-424" --network-interfaces '{"SubnetId":"subnet-0e97da846f5d737ed","AssociatePublicIpAddress":true,"DeviceIndex":0,"Groups":["sg-04fd8e230ab770053"]}' --credit-specification '{"CpuCredits":"standard"}' --tag-specifications '{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"learning-ec2-25-424"}]}' --metadata-options '{"HttpEndpoint":"enabled","HttpPutResponseHopLimit":2,"HttpTokens":"required"}' --private-dns-name-options '{"HostnameType":"ip-name","EnableResourceNameDnsARecord":false,"EnableResourceNameDnsAAAARecord":false}' --count "1"
確認
- EC2ダッシュボードへ行く
- ダッシュボードからサービスを検索「EC2」
- 左のメニューから「インスタンス」
-
learning-ec2-{{日付}}
を選択する
ネットワーキングタブを選択すると、「パブリックIPv4アドレス」が割り当てられていることが確認できる。
最初に予想した図のようにもしもこれをつかってインターネット側からアクセスできるようにネットワークが設定されているのなら SSH がつながるはずである。
鍵は先ほどダウンロードしたファイル
詳細は -v
で確認しながら、割り当てられたグローバルIPを指定して ec2-user@54.242.xxx.yyy
で接続を試みる
[pharaohkj] $ ssh -v -i ~/Downloads/learning-vpc-keypair-25-424.pem ec2-user@54.242.xxx.yyy
OpenSSH_9.9p1, LibreSSL 3.3.6
debug1: Reading configuration data /Users/pharaohkj/.ssh/config
debug1: Reading configuration data /Users/pharaohkj/.orbstack/ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/* matched no files
debug1: /etc/ssh/ssh_config line 54: Applying options for *
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug1: Connecting to 54.242.xxx.yyy [54.242.136.106] port 22.
debug1: connect to address 54.242.xxx.yyy port 22: Operation timed out
ssh: connect to host 54.242.xxx.yyy port 22: Operation timed out
つながらない。どうやら接続要のIPv4アドレスは割り当てられているも、インターネット側からは接続できないようになっているようだ。
詳細をec2インスタンスに入って確認したいが、現状はそもそもインターネットから孤立した島なのでできない。