ヘルスステータスチェックに合格したが、Amazon EC2 Linux インスタンスに接続できない理由を知りたいです。
ヘルスステータスチェックに合格しましたが、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 インスタンスをトラブルシューティングする方法を教えてください
関連するコンテンツ
質問済み 2年前
