AWS实例无响应:前后端及SSH连接异常,重启恢复后次日复发
AWS实例显示运行中但无法连接、服务无响应的排查与解决
针对实例状态显示「运行中」但无法建立连接、前后端服务停止响应,重启后恢复但次日复发的情况,可按以下方向排查:
1. 资源耗尽(最常见诱因)
实例内存、CPU或磁盘被占满时,服务会无响应,但实例本身仍会维持「运行中」状态:
- 排查:重启后立刻配置CloudWatch监控,跟踪CPU、内存(需安装CloudWatch Agent)、磁盘使用率,设置阈值告警(例如CPU持续5分钟超过90%、内存占用超95%),定位资源瓶颈。
- 解决:内存不足则升级实例规格;若为应用内存泄漏,排查后端服务的内存占用曲线,修复代码问题;磁盘满则清理日志、临时文件,或扩容EBS卷。
2. 网络规则异常
安全组、NACL规则被误改,或弹性公网IP绑定异常,会导致无法连接,但实例状态不受影响:
- 排查:对比正常运行时的安全组/NACL配置,确认入站规则允许你的IP访问SSH(22端口)及应用端口(如80/443);检查弹性公网IP是否正常绑定,未被意外释放。
- 解决:恢复正确的安全组/NACL规则;若弹性公网IP丢失,重新绑定或分配新的IP。
3. 服务进程未配置自动恢复
SSH服务(sshd)、应用守护进程(如nginx、Tomcat)崩溃后,若未设置自动重启,会导致服务停摆,但实例仍运行:
- 排查:重启后查看系统日志(
/var/log/auth.log看sshd日志,/var/log/syslog或应用专属日志),定位进程崩溃的报错;检查systemd配置(例如systemctl status nginx)是否开启Restart=always。 - 解决:修复进程崩溃根源(如依赖库缺失、代码bug);给所有核心服务配置systemd自动重启策略,确保进程挂掉后自动恢复。
4. EBS卷挂载异常
EBS卷意外断开或挂载失败,导致服务无法读取配置/数据而停止响应:
- 排查:查看
/var/log/messages(CentOS)或/var/log/syslog(Ubuntu)中的磁盘挂载报错;执行df -h确认卷挂载状态。 - 解决:检查控制台中EBS卷的状态是否正常;配置fstab实现自动挂载,确保实例启动时自动挂载卷;若卷损坏,可挂载至其他实例修复数据。
5. 底层硬件故障
实例所在的物理服务器出现硬件问题,会导致实例看似运行正常,但实际无法响应:
- 排查:查看控制台的实例状态检查结果,若系统状态检查失败,说明底层硬件存在故障。
- 解决:停止实例后,触发实例迁移(可通过「更改实例类型」操作,无需实际变更规格),再启动实例;或创建实例AMI,重新部署新实例。
临时应急措施
- 配置CloudWatch自动恢复告警:当实例状态检查失败时,自动触发重启操作,减少服务中断时间。
- 启用AWS系统管理器会话管理器:无需SSH即可连接实例,方便在无法通过常规方式连接时排查问题。
内容的提问来源于stack exchange,提问作者Rajat Palankar
相关产品推荐
相关产品推荐

