カテゴリ: AWS EC2 更新日: 2025/12/13

EC2トラブルシューティング集!接続できない・エラーの原因と対処法まとめ

195
EC2トラブルシューティング集!接続できない・エラーの原因と対処法まとめ

先生と生徒の会話形式で理解しよう

生徒

「EC2インスタンスに接続しようとしてもタイムアウトになるんです。何が原因か全然分からなくて……」

先生

「EC2で接続できない場合は、ネットワーク設定やセキュリティグループ、鍵ファイルの権限など、いくつかの原因が考えられるよ。一緒に確認してみよう!」

生徒

「お願いします!何からチェックすればいいですか?」

先生

「まずは接続できない状況を整理して、原因別にトラブルシューティングしていこうか!」

1. セキュリティグループのポート設定を確認

1. セキュリティグループのポート設定を確認
1. セキュリティグループのポート設定を確認

EC2インスタンスにSSHで接続できない場合、まず確認すべきはセキュリティグループのインバウンドルールです。ポート22(SSH)が許可されていないと接続できません。

  • プロトコル:TCP
  • ポート範囲:22
  • 送信元:0.0.0.0/0(ただし本番環境では制限推奨)

設定画面はAWSマネジメントコンソールの「EC2」→「セキュリティグループ」→「インバウンドルール」で確認できます。

2. キーペア(.pem)の権限エラーを確認

2. キーペア(.pem)の権限エラーを確認
2. キーペア(.pem)の権限エラーを確認

SSH接続時に以下のようなエラーが表示されたら、キーペアファイルのパーミッション設定が原因です。


    WARNING: UNPROTECTED PRIVATE KEY FILE!

対処法は、.pemファイルの権限をchmod 400で変更することです。


chmod 400 my-key.pem
ssh -i my-key.pem ec2-user@xx.xx.xx.xx

正しいパーミッションでないと、SSHがセキュリティのために接続を拒否します。

3. Elastic IPの割り当てと接続先アドレスの確認

3. Elastic IPの割り当てと接続先アドレスの確認
3. Elastic IPの割り当てと接続先アドレスの確認

EC2インスタンスに接続する際、一時的なパブリックIPを使用していると、再起動後にアドレスが変わってしまいます。

安定した接続を行いたい場合は、Elastic IPをインスタンスに割り当てましょう。Elastic IPは固定のパブリックIPとして扱え、DNS設定にも利用できます。

コンソールの「Elastic IP」→「Elastic IPアドレスの割り当て」から取得し、対象のインスタンスに「アタッチ」してください。

AWSの基本用語や仕組みを、図解でサクッと理解したい人には、 入門の定番書がこちらです。

AWSの基本が全部わかる教科書をAmazonで見る

※ Amazon広告リンク

4. OSやユーザー名の違いによる接続エラー

4. OSやユーザー名の違いによる接続エラー
4. OSやユーザー名の違いによる接続エラー

Amazon Linux 2やUbuntuなど、EC2のAMI(OS)によって初期ユーザー名が異なります。ユーザー名が間違っていると接続できません。

  • Amazon Linux:ec2-user
  • Ubuntu:ubuntu
  • RHEL:ec2-user または root
  • CentOS:centos

SSH接続時は以下のように指定しましょう。


ssh -i my-key.pem ubuntu@xx.xx.xx.xx

5. ネットワークACLとVPC設定を見直す

5. ネットワークACLとVPC設定を見直す
5. ネットワークACLとVPC設定を見直す

セキュリティグループが正しくても、VPCのネットワークACL(NACL)でSSHトラフィックがブロックされていることがあります。NACLはVPC内のサブネット単位で適用されるファイアウォールです。

以下のようなルールが設定されているか確認しましょう。

  • インバウンド:ポート22を0.0.0.0/0から許可
  • アウトバウンド:ポート1024-65535を許可

また、インスタンスが所属するサブネットに、インターネットゲートウェイがアタッチされているか、ルートテーブルで正しくルーティングされているかもチェックしましょう。

6. インスタンスの状態チェックとCloudWatchログの確認

6. インスタンスの状態チェックとCloudWatchログの確認
6. インスタンスの状態チェックとCloudWatchログの確認

EC2インスタンスが「running」でも、システムステータスチェックインスタンスステータスチェックが失敗していると、接続できません。

EC2ダッシュボードでステータスチェックに「2/2 checks passed」と表示されているか確認してください。

それでも原因が分からない場合は、CloudWatch Logsを利用して、EC2の初期化ログ(/var/log/cloud-init.logなど)を確認するとヒントが得られることがあります。

7. WindowsインスタンスのRDP接続ができない

7. WindowsインスタンスのRDP接続ができない
7. WindowsインスタンスのRDP接続ができない

Windowsインスタンスにリモートデスクトップ(RDP)で接続できない場合は、以下の点をチェックしましょう。

  • セキュリティグループでポート3389(RDP)が開放されているか
  • Elastic IPが割り当てられているか
  • Windowsパスワードの取得が正しくできているか

また、Windows Firewall側でRDPが許可されていないと接続できません。インスタンス内でローカル接続できる場合は、コントロールパネルのファイアウォール設定も見直しましょう。

8.まとめ

8.まとめ
8.まとめ

今回の記事では、AWS EC2インスタンスに接続できないときの代表的なトラブルシューティング方法を、具体的な原因別に解説しました。特に初心者がつまずきやすいのは、セキュリティグループのポート開放ミス、キーペア(.pem)ファイルのパーミッション設定、Elastic IP未設定、インスタンスのユーザー名の間違いなどです。これらの設定ミスは、SSHやRDPで接続できない一因となりがちです。

EC2の接続トラブルは、単なる「サーバーが落ちている」だけではなく、AWSのネットワーク設定、VPC構成、インスタンスの状態、ルーティングやファイアウォール設定など、広範囲にわたる原因が潜んでいます。だからこそ、段階的に確認すべきポイントを押さえておくことが重要です。

たとえば、以下のような順序で確認すると、無駄なく原因を特定できます。

  1. インスタンスのステータスチェック(EC2ダッシュボードで「2/2 Passed」)
  2. Elastic IPアドレスの設定確認(動的IPでは再起動で変更される)
  3. セキュリティグループでポート22(または3389)が許可されているか
  4. キーペアのパーミッション設定(SSHの場合)
  5. OSごとの正しいユーザー名で接続しているか
  6. ネットワークACL(NACL)やVPCルートテーブルの見直し
  7. CloudWatchでインスタンスログやシステムログを確認

こうした設定チェックを自動化するには、AWS CLIを用いたスクリプトの活用も有効です。たとえば、セキュリティグループのポートを一覧で確認するスクリプトは次のようになります。


aws ec2 describe-security-groups \
  --query "SecurityGroups[*].{Name:GroupName, Ingress:IpPermissions[*].FromPort}" \
  --output table

また、ステータスチェックやElastic IPの有無を確認するには、次のコマンドも役立ちます。


aws ec2 describe-instance-status \
  --instance-ids i-0123456789abcdef0 \
  --query "InstanceStatuses[*].{Status:InstanceStatus.Status, System:SystemStatus.Status}" \
  --output table

さらに、Windows Server系のトラブルではRDP接続に必要なポート3389の開放だけでなく、Windows Firewallの設定確認も忘れずに。管理ツールから「リモートデスクトップ」を許可していないと、外部からのアクセスが失敗します。

AWSのEC2インスタンスは非常に柔軟でパワフルですが、その分トラブルの範囲も広いため、トラブルシューティングの知識はクラウド運用における重要なスキルとなります。今回学んだ接続トラブルの原因とその対処法は、今後の実践でも大きな武器になるはずです。

先生と生徒の振り返り会話

生徒

「接続できない原因がこんなにたくさんあるなんて驚きでした。でも一つずつチェックすれば解決できそうです!」

先生

「そうだね。EC2ではネットワークやセキュリティ設定がきちんとしていないと、トラブルになりやすいんだ。でも今回のように原因を分類して順に確認すれば、冷静に対応できるようになるよ。」

生徒

「Elastic IPやセキュリティグループ、ステータスチェックなど、普段あまり見ていなかったところにも注目できるようになりました!」

先生

「それは大きな進歩だね。今後は新しいインスタンスを作成するときにも、これらの確認ポイントをチェックリストとして使ってみよう!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

EC2にSSH接続できないとき、最初に確認すべき設定は何ですか?

最初に確認すべきは、セキュリティグループのインバウンドルールでポート22(SSH)が許可されているかどうかです。これが閉じているとEC2へのSSH接続が必ず失敗します。
AWS EC2の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク