PuppyIP 资源中心
云服务运维 10 分钟 发布于 2026-08-22

EC2 应用状态检查怎么配?HTTP 健康探测与自动替换指南

EC2 系统和实例状态正常,只能说明基础设施与操作系统可达,不代表 Web 服务、Docker daemon 或业务路径可用。新的应用状态检查让 EC2 每 60 秒按协议、端口、路径和健康状态码发起 HTTP/HTTPS 请求,并可让 Auto Scaling 对应用层故障执行实例替换。

Amazon EC2 应用状态检查 健康检查 Auto Scaling HTTP 监控

本文要点

  • 应用状态检查补足应用层,不替代 EC2 既有的系统状态与实例状态检查。
  • 创建检查时要明确协议、端口、路径和哪些 HTTP 响应码算健康,再按实例 ID 或标签关联。
  • EC2 每 60 秒发起一次 HTTP 或 HTTPS 请求;检查通过只证明该探测路径满足条件,不等于全部业务正常。
  • Auto Scaling group 可以根据应用状态发起恢复并替换不健康实例,但启用自动动作前必须验证启动、排空和预热流程。
  • 功能发布时覆盖所有商业 AWS Regions 与 AWS GovCloud (US) Regions;价格应在启用前按 EC2 User Guide 现行说明复核。

为什么旧的两层状态都绿,用户仍可能报错

系统状态检查关注承载实例的 AWS 基础设施,实例状态检查关注实例操作系统与网络可达性。Web 进程退出、Docker daemon 停止、应用端口未监听、错误路由或业务健康端点失败时,这两层仍可能通过。

应用状态检查增加第三层主动探测。它适合需要在 EC2 控制面统一观察应用可达性,并希望 Auto Scaling 能对应用故障采取动作的团队;它不替代端到端交易、数据库语义或用户地区体验监控。

协议、端口、路径和状态码分别决定什么

协议决定 HTTP 或 HTTPS,端口决定目标监听点,路径决定实际探测的应用接口,响应码集合决定 EC2 如何判断健康。四项共同构成检查合同,任何一项过宽都会产生假绿。

不要只探测返回固定 200 的静态页。健康端点至少应确认进程能处理请求;是否检查关键依赖则按恢复策略决定,避免一个共享下游故障导致整个实例池同时被替换。

按实例 ID 还是标签关联

实例 ID 适合小规模、固定对象和试点;标签适合动态扩缩容和统一策略,但标签变更会改变检查覆盖面。上线前要定义标签 owner、允许值、变更审计和未匹配实例告警。

蓝绿或多版本环境应把版本、服务和环境标签分开,先验证新组再扩大关联。不要用一个过宽标签把开发、预发布与生产纳入同一健康合同。

从观察到自动恢复的七步上线

第一步记录当前系统、实例和应用监控基线;第二步选择代表性但不破坏业务的健康路径;第三步固定协议、端口、路径和健康码;第四步先关联少量实例;第五步验证正常、进程停止、端口关闭、错误状态码和网络配置错误;第六步接入告警并观察误报;第七步再让 Auto Scaling 根据应用状态替换实例。

自动替换前必须验证连接排空、生命周期钩子、启动脚本、配置拉取、容量余量和预热时间。否则探测能发现故障,却可能通过替换风暴扩大故障。

每 60 秒检查意味着什么

AWS 公告说明 EC2 每 60 秒请求一次检查目标。这个频率适合实例级状态发现,不应被写成 60 秒内一定恢复,也不代表告警和 Auto Scaling 动作没有额外判定时间。

短暂抖动、部署重启与冷启动可能跨过探测边界。应在非生产演练里测量从故障发生、状态变化、告警到替换完成的实际时间,并据此设置发布保护和容量。

限制、风险与常见误区

检查路径通过不等于登录、支付、消息队列或数据库事务都正常;HTTPS 成功也不等于证书生命周期无需单独监控。应用状态异常也不一定说明应替换实例,共享依赖、配置中心或网络策略故障可能影响整个组。

常见误区包括用 / 返回 200 冒充业务健康、把应用检查替代外部合成监控、按标签误关联生产实例、未经演练直接启用 ASG 替换,以及把所有不健康都归因于代理。

三层故障怎么排,何时查代理

系统状态失败先看 AWS 基础设施;实例状态失败先看操作系统、启动与实例网络;只有前两层通过而应用检查失败时,再按进程、端口、路径、状态码、TLS 和安全组顺序排查。对共享依赖故障应先阻止大规模自动替换。

若检查目标或运维 API 明确出现 DNS、TLS、连接超时或代理认证证据,可参考<a href="/resources/proxy-connection-troubleshooting-checklist">代理连接失败排查清单</a>。固定出口可用于稳定访问云控制面,可 <a href="/" target="_blank" rel="noopener noreferrer">访问 PuppyIP 官网</a>了解相关服务;它不能让失败应用恢复,也不能替代健康检查设计。

资料来源

常见问题

EC2 应用状态检查会替代系统和实例状态检查吗?

不会。它是应用层的第三层信号,应与系统状态、实例状态和外部监控一起使用。

应用状态检查多久执行一次?

AWS 公告说明 EC2 每 60 秒按配置的 HTTP 或 HTTPS 目标发起请求。

可以检查哪些内容?

创建检查时指定协议、端口、路径和健康响应码,可用于发现 Web 服务、Docker daemon、网络配置或接口不可用等问题。

怎么把检查关联到实例?

可以按实例 ID 或标签关联;动态环境更适合标签,但必须治理标签范围和变更。

应用检查失败后 Auto Scaling 一定会替换实例吗?

只有完成相应关联和恢复配置后,Auto Scaling group 才会依据应用状态采取替换动作;上线前应演练排空、预热和容量。

检查失败应该先换代理吗?

不应该。先区分系统、实例与应用层,再查进程、端口、路径、状态码、TLS 和网络策略;有明确代理错误时才处理代理。