メインコンテンツへスキップ
見出し画像

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)

    超重要ポイント

    ここが 一番ハマりやすい!

    確認順

    1. Security Group(SG)

    2. 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の疎通トラブルは、

    ❌ 勘で調べる
    ⭕ レイヤーで分解する

    最初のうちは、
    「レイヤー順に見る癖」 を身につけること。


    あなたへのおすすめ