#Operation timed out 発生
AWSで仮想サーバーであるEC2インスタンスを作成しました。
MACにターミナルでコマンドを打つ練習のため、SSHでネット接続を試みました。
ところが、下記画像のように接続がタイムアウトと表示されてしまいます。
EC2がSSH接続ができていません💦
何故ぇ?((((;゚Д゚)))))))
#結論:原因はVPC
結論として、原因は自分のVPC環境に問題がありました。
課金を避けるためにAWSで不要なリソースを削除した際に、
デフォルトのリソースの必要な部分まで削除してしまったのがタイムアウトを招いていました。具体的にはインターネットゲートウェイを.....。
VPCとインターネットを繋げる為の出入り口を自ら破壊してしまったので、接続が出来るわけがないという💦
そうなると、インターネット接続するために、デフォルトのVPCで必要なリソースを作り直して再度アタッチするか、全て自分の手で作り直してみるのも良いと思います。
自分は後者にしました。
#VPCの主なリソース
VPCの最低限必要なリソースが下記です。
※今回、IPアドレスを固定しないのでEIPは不使用
リソース名 | 説明 |
---|---|
VPC | Virtual Private Cloudの略 インターネットの中で小分けに区切った空間内に必要なリソースを構築していく。 |
サブネット | VPC内でさらに細かくネット空間を設定できる。 公開用のアプリを載せるパブリックサブネットや、公開しないデータベースを載せるプライベートサブネットを用途に合わせて作成できる。 |
ルートテーブル | サブネットに関連づける。サブネットからインターネットに向ける通信を決めるルール。通信経路(ルート)となる宛先とゲートウェイを組み合わせる。 |
インターネットゲートウェイ | VPCにアタッチする。VPCとインターネットを接続し、通信を可能にする出入り口 ※超重要 |
※下記はdrowioで作成した図です。
構成図を書くのも慣れが必要ですね((((;゚Д゚)))))))
#VPC関連のリソースを作成したらリソース間でアタッチを忘れずに
上記のリソースたちを作成しただけだと、まだバラバラなリソースが存在しているだけです。そのため、リソース間の紐付けが必要です。
①ルートテーブルにインターネットゲートウェイをアタッチします。送信先はインターネットゲートウェイ作成時に0.0.0.0/0としています。
これでVPC用に作成したリソースたちを紐づけたので、あとはEC2インスタンスを新たに作成するときにネットワーク欄に今回作成したVPCを選択します。
#SSH接続成功
EC2インスタンスを新たに作ったので、パブリックIPv4アドレスを使って、MACのターミナルで再度SSH接続を行なってみます。
今度はEC2インスタンスがちゃんとSSH接続できました。
デフォルトのVPCでは通常問題なくSSH接続できるはずが、自分でリソースを弄った結果,
接続がうまくいかずに「???」となっていました。
VPCを自分で作るときはリソースの設定やアタッチをする事も出てくるので、何故タイムアウトが起きたのかを記録に残したく書いてみました。
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com