- 新しい順
- 投票が多い順
- コメントが多い順
EC2インスタンスにElastic IPを関連付けた後にSSH接続できなくなる問題について、いくつかの可能性と確認ポイントをご案内します。
まず、Elastic IPを関連付けた後に接続できなくなる一般的な原因として以下が考えられます:
- アプリケーション設定の問題:
- インスタンス内のアプリケーションやサービスがIPアドレスを特定のアドレスにハードコードしている場合があります。
- 特にElastic IPを割り当てる前に開いていた接続がある場合、その接続が古いIPアドレスを参照し続けている可能性があります。古い接続をすべて閉じてから再試行してください。
- SSHサービスの状態:
- インスタンス停止・再起動後にSSHサービス(sshd)が正常に起動していない可能性があります。
- EC2インスタンスのシステムログを確認して、SSHサービスの起動状態やエラーメッセージを確認することが有効です。
- ファイアウォール設定:
- インスタンス内のOSレベルのファイアウォール(iptablesなど)が新しいIPアドレスからの接続を拒否している可能性があります。
- メモリ不足の問題:
- 特にSSH接続に関連して、OOM(Out of Memory)の問題が発生している可能性があります。システムログでメモリ関連のエラーを確認してください。
- ホストキーの問題:
- インスタンスの停止・再起動によってホストキーが変更された場合、SSH接続が拒否されることがあります。ローカルの
known_hostsファイルから古いエントリを削除してみてください。
追加の確認ポイント:
- インスタンスのステータスチェックが両方とも合格しているか確認してください
- NACLの設定も確認し、インバウンド/アウトバウンドの両方でSSH接続に必要なポートが許可されているか確認してください
- 可能であれば、EC2シリアルコンソールを使用してインスタンスに接続し、SSHサービスの状態を確認してください
最後に、Elastic IPを最初に割り当ててからインスタンスの設定を行うことで、このような問題を回避できる場合があります。既存の接続を閉じてから新しい接続を試みることも効果的です。
Sources
No longer have http access to EC2 instance after elastic IP associated | AWS re:Post
Can't connect to Linux instance even after the health status checks pass | AWS re:Post
Cannot reach EC2 instance with elastic ip address | AWS re:Post
Session Managerから接続してsshdプロセスのステータスとログを確認してみてはいかがでしょうか?
Amazon LinuxであればSSM Agentがインストールされている可能性があるので、適切なIAMポリシー (AmazonSSMManagedInstanceCore) を設定したIAMロールをEC2に紐づければ接続できる可能性があります。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html
また、マネジメントコンソールからEC2のシステムログを確認することも可能なので何か異常がないか確認してみてください。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/troubleshoot-unreachable-instance.html#instance-console-console-output
関連するコンテンツ
- 質問済み 9ヶ月前
