「EC2に繋がらない」と泣く前に。AWSの壁「セキュリティグループ」をオートロックに例えて完全図解
※本ページはプロモーションが含まれています
【この記事でわかること】
- EC2を作ったのにSSH接続で Connection timed out になる本当の原因。
- インバウンド(入る)とアウトバウンド(出る)のルール設定ミス。
- なぜ「戻りの通信」を許可しなくていいのか? **「ステートフル(顔パス)」**の魔法。
はじめに:サーバーは壊れていない。拒絶されているだけだ
「EC2インスタンスを起動しました!」 意気揚々とターミナルで ssh コマンドを叩く。しかし……。
ssh: connect to host xx.xx.xx.xx port 22: Connection timed out
カーソルが点滅したまま動かない。そして無慈悲なタイムアウト。 初心者がAWSで最初に心を折られる瞬間です。
「サーバーがダウンしてる? 設定間違えた?」 いいえ、サーバーは元気です。 これは、マンションの「オートロック」があなたを不審者扱いして、玄関でブロックしているだけなのです。
今日は、AWSの基本にして最強の守り、セキュリティグループを攻略しましょう。
おすすめ書籍
▼ Amazon Web Services 基礎からのネットワーク&サーバー構築
▼ 徹底攻略 AWS認定 ソリューションアーキテクト - アソシエイト教科書
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 基礎からのネットワーク&サーバー構築
また、セキュリティグループを含むAWSの基礎知識(SAA範囲)を網羅的に学びたい方は、やはりこの一冊が鉄板です。
▼ 徹底攻略 AWS認定 ソリューションアーキテクト - アソシエイト教科書
🍵 あわせて読みたい「AWS図解シリーズ」
セキュリティグループの話とセットで、「VPC(タワマン)」や「NATゲートウェイ(執事)」の記事も読むと、ネットワークの「内と外」の感覚が完全に掴めます。
Discussion