🔒 AWSで特定サーバだけ全アクセス不可?原因と対策まとめ
AWSを使っていると「なぜかこのサーバだけ全くアクセスできない…」という事態に遭遇することがあります。
そんなとき、原因はどこに潜んでいるのでしょうか?
ここでは初心者でも理解できるように、よくある原因と調べ方を解説します。
🌐 1. ネットワーク周り(VPC設定)
✅ セキュリティグループ(SG)
- 許可ルールに対象ポート(例:22, 80, 443)が含まれているか確認。
- 別のSGにすり替わっていないかも要チェック。
💡 例:SSHポート(22)を許可していない → 外部から接続不可。
✅ ネットワークACL(NACL)
- NACLはステートレス。戻りパケット用のポート(1024-65535)を許可しないと通信が戻ってきません。
💡 例:HTTPリクエストは行くが、レスポンスが返ってこずタイムアウト。
✅ ルートテーブル
- Publicサブネットは 0.0.0.0/0 → IGW へ向かっているか。
- Privateサブネットは 0.0.0.0/0 → NAT Gateway になっているか。
🔄 2. ロードバランサ/DNS設定
✅ ALB/NLBのターゲット状態
- 該当サーバだけ「Unhealthy」になっていないか?
💡 例:ヘルスチェックが/healthzなのにアプリは/livezを返す → 常に落ちている判定。
✅ Route 53のDNS
- 古いIPに向いていないか。
- TTLが長くて古い情報を返していないかも要確認。
🖥️ 3. サーバ側の問題
✅ OSのファイアウォール
iptablesやufwで「全部DROP」にされていないか。
💡 例:自動構成ツールが意図せず全遮断ルールを投入。
✅ サービスのリッスン状態
ss -ltnpで「0.0.0.0」でLISTENしているか確認。
💡 例:127.0.0.1のみでLISTEN → 外部からアクセス不可。
✅ セキュリティソフト
- Fail2banなどでアクセス元IPがブロックされていないか。
🔥 4. その他AWS機能によるブロック
- WAFやNetwork Firewallで誤って除外されているケース。
- Transit Gatewayやオンプレ接続で経路がブラックホール化。
- Elastic IPが入れ替わり、DNSが古いまま。
🛠️ 調査の進め方(初心者おすすめ順)
- VPC Flow Logs で拒否されているか確認
- SG/NACL/ルートを正常サーバと比較
- ALBのヘルスチェック
- OS側のFW / サービスのリッスン確認
- DNSキャッシュをクリアして最新を確認
🎯 まとめ
特定サーバだけアクセスできない場合、
→ ネットワーク境界(SG/NACL/ルート)
→ ロードバランサ/DNS
→ サーバ内部のFWや設定
いずれかにズレがあるケースがほとんどです。再発防止には、**構成のIaC化(TerraformやCloudFormation)+監視(CloudWatch/FlowLogs)**がおすすめです。
💡 ポイント:
「同じVPCにある別のサーバは動くのに、これだけ動かない」 → その差分を探すのが一番早いです。―――――――――――――――――――――――