
AWSで疎通確認ができないときの原因究明手順をAIがまとめてくれた
AWSでリソースを構築したあと、よくあるのが、
EC2に 接続できない
API Gatewayが タイムアウトする
ALBのURLにアクセスしても 応答が返らない
そしていつも思う、
「どこから調べればいいのか分からない」
疎通できないときは、レイヤー(層)ごとに上から/下から確認する
という インフラの王道手順 をAIにまとめてもらった。
結論:疎通確認は「レイヤー分解」が最強
まず全体像から。
① クライアント / DNS
② AWSネットワーク(VPC)
③ セキュリティ(SG / NACL)
④ サーバー(EC2 / コンテナ)
⑤ ミドルウェア(Web/AP)
⑥ アプリケーション意識するのは、
・上から or 下から順に潰していく
・「ここまではOK」「ここからNG」を切り分ける
これができると、原因究明が一気に楽になる。
レイヤー① クライアント / DNS
まず疑うべきこと
そもそも 名前解決できているか
URL / IPアドレスが 間違っていないか
確認ポイント
①ブラウザでURLは正しいか
②ping example.com
③nslookup example.com
④curl https://example.com
確認コマンド
ping example.com
pingとは?
ping は、
「その相手までネットワーク的に到達できるか」
を確認するコマンド。
言い換えると、
相手が生きていて、道がつながっているか
を確認する。
基本構文
ping example.com
何をしている?
DNSで名前解決
ICMPという通信で相手に「生きてますか?」と送信
返事があれば疎通OK
結果の見方
成功例
Reply from 93.xx.xx.xx: time=15ms
意味:
名前解決できている
ネットワーク的に到達可能
失敗例①
Ping request could not find host example.com
意味:
DNSで名前解決できていない
Route53 / URLミスの可能性
失敗例②
Request timed out.
意味:
相手が応答しない
SG / NACL / ファイアウォールの可能性
注意点(重要)
AWSでは pingが通らなくても正常 なケースが多い。
理由:
Security Groupで ICMP を許可していない
ALB / API Gateway は ping に応答しない
※pingは「あくまで参考情報」
使う場面まとめ
DNSが正しく引けているかの確認
ネットワーク断絶の切り分け
確認コマンド
nslookup example.com
nslookupとは?
nslookup は、
「このURLは、どのIPアドレスに変換されるのか」
を確認するコマンド。
つまり DNS専用の確認ツール 。
基本構文
nslookup example.com
結果例
Name: example.com
Address: 93.xx.xx.xx
意味:
DNSは正常
URL → IP の変換が成功
失敗例
Non-existent domain
意味:
Route53にレコードがない
URLのスペルミス
AWSでよくある使いどころ
Route53の設定確認
ALBのDNS名が引けるか確認
環境(本番 / 検証)切り替え確認
※pingより信頼できるDNS確認
確認コマンド
curl https://example.com
curlとは?
curl は、
実際にHTTP/HTTPS通信を行い、レスポンスを確認する
コマンド。
ブラウザを コマンド化したもの とイメージすると分かりやすいかも。。。
基本構文
curl https://example.com
何が分かる?
HTTP通信が通るか
ステータスコード
レスポンス内容
よく使うオプション(初心者向け)
ステータス確認
curl -I https://example.com
結果例:
HTTP/2 200
意味:
200 → 正常
403 → 権限エラー
404 → パス間違い
502 / 504 → バックエンド問題
AWSでの重要ポイント
pingがNGでもcurlがOKなら問題なし
API Gateway / ALB の疎通確認は curlが最重要
使う場面まとめ
Web/APIの疎通確認
エラーコードによる切り分け
ブラウザを使えない環境での確認
3つのコマンドの役割まとめ(超重要)
コマンド | 確認していること | 主な用途
ブラウザ | 人間目線の確認 | 最初に必ず
ping | ネットワーク到達性| 参考情報
nslookup | DNSの正否 | DNS切り分け
curl | HTTP疎通 | AWS疎通確認の主役
疎通確認で一番大切なのは
「どのレイヤーまで届いているか」を知ること
URL → ❌ならDNS
DNS → OK、curl → ❌ならネットワーク or セキュリティ
curl → OK、画面 → ❌ならアプリ
この順番で見れば、迷子にならないはず。
よくある初心者ミス
Route53のレコード設定ミス
ALBのDNS名ではなく古いIPを叩いている
※DNSが引けない=AWS以前の問題
レイヤー② AWSネットワーク(VPC)
ここで確認するもの
VPC
サブネット
ルートテーブル
Internet Gateway / NAT Gateway
確認ポイント
パブリックサブネットにいる?
ルートテーブルに
0.0.0.0/0 → IGW はある?Elastic IPは付いている?
よくある初心者ミス
プライベートサブネットなのに外部公開しようとしている
ルートテーブル未設定
※ネットワークは「道がつながっているか」
レイヤー③ セキュリティ(Security Group / NACL)
超重要ポイント
ここが 一番ハマりやすい!
確認順
Security Group(SG)
Network ACL(NACL)
SG確認チェック
インバウンドに 必要なポート は空いている?
HTTP → 80
HTTPS → 443
SSH → 22
送信元IPは制限されていない?
よくある初心者ミス
SGはOKだが NACLで拒否
ポート番号の勘違い
※AWSは「デフォルト拒否」
レイヤー④ サーバー(EC2 / コンテナ)
確認ポイント
EC2は running か
System Status Check / Instance Status Check はOK?
SSHでログインできる?
EC2内で確認
ping 8.8.8.8
curl localhostよくある初心者ミス
インスタンス停止中
OS起動エラーに気づいていない
※AWSコンソールのステータスは必ず見る
レイヤー⑤ ミドルウェア(Web/AP)
確認するもの
Nginx / Apache / アプリサーバー
ポートが LISTEN しているか
ss -lntp
よくある初心者ミス
サービス未起動
80番で待ち受けていない
※サーバーがあっても、待ち受けてなければ無意味
レイヤー⑥ アプリケーション
確認ポイント
アプリのログ
CloudWatch Logs
500エラー / タイムアウト
よくある初心者ミス
環境変数未設定
DB接続情報の誤り
調査順まとめ
① DNS・URL
② VPC / ルート
③ Security Group
④ EC2の状態
⑤ Web/APの起動
⑥ アプリログ
※1レイヤーずつ「OK / NG」を明確にする
まとめ
AWSの疎通トラブルは、
❌ 勘で調べる
⭕ レイヤーで分解する
最初のうちは、
「レイヤー順に見る癖」 を身につけること。