AWS学習記

クラウドエンジニアを目指してAWS学習を綴る

【AWS】EC2インスタンスのSSH接続時のタイムアウト問題の解決

Operation timed out 発生

AWSで仮想サーバーであるEC2インスタンスを作成しました。
MACにターミナルでコマンドを打つ練習のため、SSHでネット接続を試みました。

スクリーンショット 2021-10-10 2.55.36.png
ところが、下記画像のように接続がタイムアウトと表示されてしまいます。
EC2がSSH接続ができていません💦
何故ぇ?((((;゚Д゚)))))))
スクリーンショット 2021-10-10 2.45.20.png

 結論:原因はVPC

結論として、原因は自分のVPC環境に問題がありました。

課金を避けるためにAWSで不要なリソースを削除した際に、
デフォルトのリソースの必要な部分まで削除してしまったのがタイムアウトを招いていました。具体的にはインターネットゲートウェイを.....。
VPCとインターネットを繋げる為の出入り口を自ら破壊してしまったので、接続が出来るわけがないという💦

そうなると、インターネット接続するために、デフォルトのVPCで必要なリソースを作り直して再度アタッチするか、全て自分の手で作り直してみるのも良いと思います。
自分は後者にしました。

 VPCの主なリソース

VPCの最低限必要なリソースが下記です。
※今回、IPアドレスを固定しないのでEIPは不使用

リソース名 説明
VPC Virtual Private Cloudの略
インターネットの中で小分けに区切った空間内に必要なリソースを構築していく。
サブネット VPC内でさらに細かくネット空間を設定できる。
公開用のアプリを載せるパブリックサブネットや、公開しないデータベースを載せるプライベートサブネットを用途に合わせて作成できる。
ルートテーブル サブネットに関連づける。サブネットからインターネットに向ける通信を決めるルール。通信経路(ルート)となる宛先とゲートウェイを組み合わせる。
インターネットゲートウェイ VPCにアタッチする。VPCとインターネットを接続し、通信を可能にする出入り口 ※超重要

※下記はdrowioで作成した図です。
構成図を書くのも慣れが必要ですね((((;゚Д゚)))))))
vpc_drawio.png

 VPC関連のリソースを作成したらリソース間でアタッチを忘れずに

上記のリソースたちを作成しただけだと、まだバラバラなリソースが存在しているだけです。そのため、リソース間の紐付けが必要です。

①ルートテーブルにインターネットゲートウェイをアタッチします。送信先はインターネットゲートウェイ作成時に0.0.0.0/0としています。

スクリーンショット 2021-10-10 14.30.47.png

VPCにインタネットゲートウェイをアタッチします。
スクリーンショット 2021-10-10 14.34.38.png

これでVPC用に作成したリソースたちを紐づけたので、あとはEC2インスタンスを新たに作成するときにネットワーク欄に今回作成したVPCを選択します。

スクリーンショット 2021-10-10 14.40.29.png

 SSH接続成功

スクリーンショット 2021-10-10 14.52.30.png

EC2インスタンスを新たに作ったので、パブリックIPv4アドレスを使って、MACのターミナルで再度SSH接続を行なってみます。

スクリーンショット 2021-10-10 14.54.55のコピー.png

今度はEC2インスタンスがちゃんとSSH接続できました。

デフォルトのVPCでは通常問題なくSSH接続できるはずが、自分でリソースを弄った結果,
接続がうまくいかずに「???」となっていました。
VPCを自分で作るときはリソースの設定やアタッチをする事も出てくるので、何故タイムアウトが起きたのかを記録に残したく書いてみました。

 

※Qiitaにも投稿しています。

qiita.com