⛳

「EC2に繋がらない」と泣く前に。AWSの壁「セキュリティグループ」をオートロックに例えて完全図解

に公開

※本ページはプロモーションが含まれています
【この記事でわかること】

  1. EC2を作ったのにSSH接続で Connection timed out になる本当の原因。
  2. インバウンド(入る)とアウトバウンド(出る)のルール設定ミス。
  3. なぜ「戻りの通信」を許可しなくていいのか? **「ステートフル(顔パス)」**の魔法。

はじめに:サーバーは壊れていない。拒絶されているだけだ

「EC2インスタンスを起動しました!」 意気揚々とターミナルで ssh コマンドを叩く。しかし……。


ssh: connect to host xx.xx.xx.xx port 22: Connection timed out

カーソルが点滅したまま動かない。そして無慈悲なタイムアウト。 初心者がAWSで最初に心を折られる瞬間です。

「サーバーがダウンしてる? 設定間違えた?」 いいえ、サーバーは元気です。 これは、マンションの「オートロック」があなたを不審者扱いして、玄関でブロックしているだけなのです。

今日は、AWSの基本にして最強の守り、セキュリティグループを攻略しましょう。

おすすめ書籍

▼ Amazon Web Services 基礎からのネットワーク&サーバー構築
https://amzn.to/4t99L0I

▼ 徹底攻略 AWS認定 ソリューションアーキテクト - アソシエイト教科書
https://amzn.to/4t5tE8E

1. セキュリティグループは「玄関のオートロック」

前回の記事で、VPCは「タワマン」だと言いました。 セキュリティグループは、そのタワマンの中にある「各部屋の玄関についているオートロック」です。

  • VPC: マンションの敷地(ここに入るにも鍵がいる)。
  • セキュリティグループ: 部屋のドア(ここに入るにも別の鍵がいる)。

あなたがSSHで接続できないのは、敷地には入れたけど、部屋のドアが開かずに締め出されている状態です。 AWSでは、「許可リストに載っていない人は、存在すら無視する」という鉄の掟があります。だから「接続拒否(Refused)」ですらなく、「無視(Timed out)」されるのです。

🔹 補足:SSH がタイムアウトする原因:セキュリティグループ以外のもの

実際のAWS環境では 他にもタイムアウトの原因が複数あります。
もし設定を見直しても繋がらない場合は、以下もチェックすると切り分けがスムーズです。

① ルートテーブル(道が繋がっていない)
パブリックサブネットの場合、
0.0.0.0/0 → Internet Gateway(IGW)
のルートが必要です。
これが無いと、外の世界と通信できません。

② インターネットゲートウェイ(IGW)のアタッチ忘れ
VPCにIGWがアタッチされていないと、
そもそもマンションの敷地から外に出られない
状態になります。
③ ネットワークACL(NACL)の拒否
NACLは ステートレス なので、

  • 行き(Outbound)
  • 帰り(Inbound)
    両方のルールが必要です。
    セキュリティグループと違い、戻り通信も許可しないと通りません。

④ OS側のファイアウォール
Amazon Linux / Ubuntu などのOSにも

  • firewalld
  • ufw
    などのファイアウォールがあります。
    OS側で22番が閉じていると、AWS側が許可していても繋がりません。

⑤ キーペア・ユーザー名の誤り
これはタイムアウトではなく
Permission denied

2. インバウンドとアウトバウンド

オートロックには2つの方向があります。

① インバウンド(入ってくる通信)

  • 意味: 外部から部屋に入ろうとすること。
  • 初期設定: 「すべて拒否(誰も入れない)」。
  • やるべきこと: 「SSH(22番ポート)で、俺の家のIPアドレスから来る人だけは通していいよ」と許可ルールを追加する。

② アウトバウンド(出ていく通信)

  • 意味: 部屋の中から外へ出ていこうとすること(例:サーバーがyum updateしに行く)。
  • 初期設定: 「すべて許可(どこへでも行ける)」。
  • やるべきこと: 基本的にはそのままでOK。

初心者がハマるのは「インバウンド」の設定漏れです。 「WebサーバーなのにHTTP(80番)を開けていなかった」「SSH(22番)を忘れていた」。これだけで通信は遮断されます。

3. 魔の概念「ステートフル」を攻略せよ

ここからが本番です。 セキュリティグループには、ステートフル (Stateful)という最強の特性があります。

これを一言でいうと、「コンビニに行った帰りは顔パスで入れる」機能です。

どういうこと?
行き(Outbound): あなた(サーバー)が「コンビニ(Google)」へ買い物に行きます。アウトバウンドは許可されているので出られます。

帰り(Return): 買い物を終えて帰ってきました。

ここで問題です。 「インバウンド(入る通信)」のルールでは、Googleからの通信を許可していません。 あなたは部屋に入れるでしょうか?

答え:入れます。

なぜなら、オートロック(セキュリティグループ)が**「あ、君さっき部屋から出ていった人だよね? じゃあ帰りは鍵チェックなしで通っていいよ」と覚えていてくれるからです。これがステートフル(状態を記憶する)**です。

▼ 【図解】ステートフルの魔法

💡 ここでちょっとCM

絵で解説したノートを公開中です。

▼ 無料の試し読みはこちら https://zenn.dev/miyaco_log/books/d26a6fe78b33e9

4. やってはいけない「全開放」

繋がらないからといって、ヤケクソになってこんな設定をしていませんか?

  • プロトコル: すべてのトラフィック
  • ソース: 0.0.0.0/0 (Anywhere)

これは、「オートロックを破壊して、玄関ドアを常に開けっ放しにする」のと同じです。 世界中のボットがあなたのサーバーを見つけ、数分で攻撃を開始します。

正解の設定

  • SSH (22): My IP(自分のPCのIPだけ)を選択。
  • HTTP (80): 0.0.0.0/0(Webサイトなら誰でも見てOK)。

AWSのコンソールには「マイIP」というボタンがあります。これを押すだけで、あなたの今のIPアドレスが自動入力されます。これを使わない手はありません。

おわりに:壁は「敵」ではなく「味方」

Connection timed out というエラーは、セキュリティグループが**「正常に仕事をしている」**証拠です。 不審な通信をしっかり弾いてくれているのです。

だから、イライラせずに設定を見直しましょう。 「インバウンド」のルールに、あなたの許可証は入っていますか? 壁の向こう側に行けるかどうかは、あなたが持っている「鍵」次第です。

📚 トラブルシューティング力を上げたい方へ

「理屈はわかったけど、実際の現場でネットワークが繋がらない原因を特定できるようになりたい」 「VPCフローログとか、もっと深い解析方法を知りたい」

そんな方は、トラブルシューティングのノウハウが詰まったこちらの本がおすすめです。 「なぜ繋がらない?」の切り分けフローチャートが頭に入ります。

▼ Amazon Web Services 基礎からのネットワーク&サーバー構築
https://amzn.to/4t99L0I

また、セキュリティグループを含むAWSの基礎知識(SAA範囲)を網羅的に学びたい方は、やはりこの一冊が鉄板です。

▼ 徹底攻略 AWS認定 ソリューションアーキテクト - アソシエイト教科書
https://amzn.to/4t5tE8E

🍵 あわせて読みたい「AWS図解シリーズ」

セキュリティグループの話とセットで、「VPC(タワマン)」や「NATゲートウェイ(執事)」の記事も読むと、ネットワークの「内と外」の感覚が完全に掴めます。

https://zenn.dev/miyaco_log/articles/98d8eccd6b6559

https://zenn.dev/miyaco_log/articles/69bce52c7fdfdf

Discussion