スキップしてコンテンツを表示

ヘルスステータスチェックに合格したが、Amazon EC2 Linux インスタンスに接続できない理由を知りたいです。

所要時間2分
0

ヘルスステータスチェックに合格しましたが、Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに接続できません。

解決策

注: インスタンスとデータのバックアップを維持するのがベストプラクティスです。トラブルシューティングや変更を行う前に、AMI を作成するか、EBS ボリュームのスナップショットを作成します。

"接続タイムアウト" エラー

"ssh: ホストへの接続 <hostname> ポート 22: 接続がタイムアウトしました" エラーをトラブルシューティングするには、次の問題について確認します。

セキュリティグループ、ルーティング、またはネットワーク ACL の設定ミス
セキュリティグループのインバウンドルールが、ソースサーバーからのポート 22 を許可しているかどうかを確認します。アウトバウンドセキュリティグループのルールで 0.0.0.0/0 へのトラフィックが許可されていることを確認します。セキュリティグループルールの詳細については、「コンピュータからインスタンスに接続するためのルール」を参照してください。

オンプレミスクライアントからプライベートインスタンスに接続するには、ローカルネットワークと Amazon Virtual Private Cloud (VPC) の間に VPN 接続があることを確認します。または、同じ VPC またはサブネット内の別のジャンプサーバーからインスタンスに接続します。

接続できる場合、問題はオンプレミスクライアントと AWS サイト間 VPN 接続にある可能性があります。

厳密なネットワークアクセス制御リスト (ネットワークACL) を設定している場合は、イングレスルールでポート 22 が許可されていることを確認してください。エグレスルールが 0.0.0.0/0 へのすべてのトラフィックを許可していることを確認します。

ローカルファイアウォール設定
iptables や firewalld など、OS レベルのファイアウォールを確認します。ブロックされた接続をトラブルシューティングするには、ファイアウォールの設定を確認します。

SSH に関連する OOM の問題
インスタンスに OOM の問題があるかどうかを確認します。OOM エラーが発生すると、オペレーティングシステム (OS) が応答しなくなったり、応答が大幅に低下したりするため、ネットワーク要求がタイムアウトします。SSH に関連する OOM の問題をトラブルシューティングするには、システムログとリソースの使用状況を確認します。

システムログを確認する

AWS Systems Manager または EC2 シリアルコンソール (SSH が利用できない場合) からシステムログにアクセスします。

OOM メッセージを確認するには、次のコマンドを実行します。

dmesg | grep -i oom

Amazon Linux、RHEL、または CentOS のシステムログを確認するには、次のコマンドを実行します。

sudo less /var/log/messages

Ubuntu または Debian のシステムログを確認するには、次のコマンドを実行します。

sudo less /var/log/syslog

次の例のような出力が表示されます。

Aug 17 10:00:01 ip-172-31-1-1 kernel: [123456.789012] Out of memory: Kill process 1234 (myprocess) score 950 or sacrifice child
Aug 17 10:00:01 ip-172-31-1-1 kernel: [123456.789013] Killed process 1234 (myprocess) total-vm:500000kB, anon-rss:200000kB, file-rss:50000kB
Aug 17 10:00:01 ip-172-31-1-1 kernel: [123456.789014] oom_reaper: reaped process 1234 (myprocess), now anon-rss:0kB, file-rss:0kB
Aug 17 10:00:01 ip-172-31-1-1 kernel: [123456.789015] OOM killer disabled.

リソース使用量を監視します。
システムのリソース使用状況を監視するには、次のコマンドからいずれかを選択します。

メモリ使用量を確認するには、次のコマンドを実行します。

 free -m

プロセスを確認するには、次のコマンドを実行します。

 top

次に、メモリや CPU などのシステムリソースのほとんどを消費しているプロセスを書き留めます。

スワップの使用状況を確認するには、次のコマンドを実行します。

 sudo swapon --show

sar コマンドを使用すると、過去のリソース使用状況を確認できます。
sysstat パッケージがインストールされていない場合は、まず次のコマンドを実行してインストールします。

 sudo yum install sysstat

過去のメモリ使用量を確認するには、次のコマンドを実行します。

 sar -r

過去の CPU 使用率を確認するには、次のコマンドを実行します。

 sar -u

メモリを消費しているプロセスを特定するには、次のコマンドを実行します。

ps -eo pmem,pid,user,args | sort -k 1 -r | head -10

CPU を最も多く消費しているプロセスを確認するには、次のコマンドを実行します。

ps -eo pid,user,ppid,cmd,%mem,%cpu --sort=-%cpu | head

ルートボリュームの使用率が 100% かどうかを確認します。

df -Th

リソースの使用量が多いと想定したが、それが確認できない場合は、インスタンスタイプをアップグレードしてください。詳しくは、「システムアクティビティレポーター (SAR) でパフォーマンスを監視する」 または「監視ツールの設定」を参照してください。

シリアルコンソールがインスタンス用に設定されていない場合は、「EC2 シリアルコンソールアクセス」を参照してアクティブ化します。

シリアルコンソールを使用できない場合は、レスキューインスタンスを使用してシステムログを調べてください。ステップ 1 ~ 8 を参照して OS レベルの問題をトラブルシューティングしたら、/var/log/messages または /varlog/syslog を確認します。

「接続拒否」エラー

「接続拒否」というエラーが表示された場合は、シリアルコンソールからインスタンスに接続して問題のトラブルシューティングを行います。

「ホストキーの検証に失敗しました」エラー

「ホストキーの検証に失敗しました」というエラーが発生した場合、SSH クライアントにより、サーバーのホストキーと以前に保存されたキーの不一致が検出されています。この状況は、サーバーの再インストールまたはセキュリティ上の問題により、サーバーのホストキーが変更された場合に発生します。

古いホストキーを削除する
検証エラーを修正するには、known_hosts ファイルから古くなった、または正しくないホストキーを削除します。
このファイルは、UNIX ベースのシステム (Linux、macOS) では ~/.ssh/known_hosts、Windows では C:\Users\YourUsername\.ssh\known_hosts にあります。

known_hosts ファイルから、指定したホスト名または IP アドレスに関連付けられている古いホストキーエントリを削除するには、次のコマンドを実行します。

 ssh-keygen -R your hostname or IP address

注: YourUsername は、実際のユーザー名に置き換えてください。ホスト名または IP アドレスを、接続先のサーバーのアドレスに置き換えます。

サーバーに再接続する
古いホストキーを削除したら、SSH を使用してサーバーに再接続します。新しいホストキーフィンガープリントを確認します。新しいホストキーを受け入れて、known_hosts ファイルに追加します。

「アクセス拒否 (公開鍵)」エラー

"アクセス拒否 (publickey)" エラーが発生した場合、SSH クライアントが提供された認証情報を使用してサーバーで認証することができません。エラーをトラブルシューティングするには、インスタンスのプライベートキーとユーザー名が正しいことを確認します。

Session Manager オートメーションで一般的なSSHの問題をチェックする

インスタンスにセッションマネージャーが設定されている場合は、AWSSupport-TroubleshootSSH オートメーションランブックを実行します。このランブックは Linux 用の Amazon EC2Rescue ツールをインストールします。次に、ランブックがそのツールを使用して、SSH 経由の Linux マシンへのリモート接続を妨げる一般的な問題を確認または修正します。

関連情報

オペレーティングシステムの問題が原因でインスタンスのステータスチェックに失敗した EC2 Linux インスタンスをトラブルシューティングする方法を教えてください

EC2 Linux インスタンスにアクセスできず、ステータスチェックが失敗する理由を知りたいです

Session Manager を使用して Amazon EC2 インスタンスに接続できない理由を知りたいです

AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ