在实例卡住的情况下访问 EC2

Accessing EC2 in case of stuck instance

我的网站 运行 在 t2.2xlarge 实例上(中间没有 ELB)。我能够使用密钥机制在 99% 的时间内通过 SSH 连接到此实例。

但是,当网站关闭时,有时我无法通过 SSH 连接到此实例,因为尽管实例状态为 运行。在这 1% 的情况下返回超时错误。

我能够连接到实例和不能连接到实例的方式没有变化。

AWS EC2 主页上提到的连接方法 "EC2 Instance Connect (browser-based SSH connection)" 也没有帮助:

浏览了所有帖子及以下 link 但运气不好,因为 SSH 99% 的时间都在工作:

Troubleshooting Connecting to Your Instance

EC2 主页上提到的 "System Status Checks" 最好的部分还显示 - 系统可达性检查已通过。这次我就这个问题向他们提交了反馈,但还没有得到回复。

我通常会等待几分钟,然后重新启动实例。这是最糟糕的选择,但我找不到任何替代方案。

请建议如何找到根本原因并解决此问题。

请关闭打开的 SSH 连接并仅允许特定的 IP 范围!

要恢复您的实例,您可以参考此 link Instance recovery

触发 cloudwatch 事件

这很难。

如果在出现问题时,只能通过重启才能恢复,那么在出现问题时无法登录,调试起来会很困难。此类问题通常是由实例上的软件 运行 引起的,与 Amazon EC2 本身无关。

首先要检查的是 Amazon CloudWatch Logs,看看问题发生时 CPU 是否为 100%。

接下来要检查的是计算机上的日志文件,您可以在重新启动后检查这些文件。您可以配置脚本以持续将 CPU 和正在使用的进程记录到日志文件中,以便您可以稍后检查它们以确定根本原因。

参见: