讲解 AWS EC2 新建与重新启动失败、容量不足、配额、权限、KMS、状态检查和不可逆操作边界。
AWS EC2 启动失败要先区分“新实例无法创建”“停止实例无法重新启动”“实例进入 running 但状态检查失败”和“系统正常但业务不可用”。这四类问题属于不同层级,不能靠连续重启解决。
先不要连续重试或终止。在 AWS 中文控制台“EC2 → 实例”记录区域、可用区、实例 ID、任务时间和完整错误。新建请求立即失败多与容量、配额、权限、AMI 或 KMS 有关;状态已运行但检查失败则进入宿主或操作系统排障。只读检查不收费,但重复创建卷、实例和公网资源可能产生费用。

常见失败层级
| 现象 | 优先检查 |
|---|---|
| RunInstances 请求失败 | IAM、配额、AMI、KMS、设备映射 |
| InsufficientInstanceCapacity | 可用区容量、实例类型、请求数量 |
| 启动后立即 terminated | StateReason、EBS 配额、快照与 KMS 权限 |
| 状态检查失败 | System、Instance、Attached EBS 检查 |
| running 但无法访问 | 路由、安全组、系统服务与应用日志 |
保留排障证据
aws ec2 describe-instances --instance-ids i-0123456789abcdef0 \
--query 'Reservations[].Instances[].{State:State.Name,Reason:StateReason}'
aws ec2 describe-instance-status --instance-ids i-0123456789abcdef0 \
--include-all-instances
示例中的实例 ID 必须替换。还应记录区域、可用区、实例类型、AMI、错误时间、CloudTrail 事件和近期变更。
容量不足怎么处理
官方建议可稍后重试、减少单次请求数量、不固定可用区或选择其他兼容实例类型。生产系统应在启动模板中准备经过验证的替代规格,而不是故障时临时猜测。
状态检查失败
System Status Check 更偏向底层宿主与网络,Instance Status Check 更偏向操作系统和实例网络,Attached EBS 检查反映挂载卷可达性。采取 stop/start、恢复卷或重建实例前,先创建可恢复快照并确认实例存储数据风险。
不可逆操作边界
不要在没有备份时终止实例或替换根卷。提交支持请求时提供实例 ID、错误码和时间,不提交私钥、密码或长期 Access Key。
先按出现阶段分流
| 阶段 | 重点 | 默认动作 |
|---|---|---|
| 点击启动即报错 | 容量、配额、权限、镜像、KMS | 保存错误码,不反复提交 |
| 卡在pending | 活动、卷和平台事件 | 等待并查事件 |
| running但系统检查失败 | AWS宿主与网络 | 按官方状态检查处置 |
| 实例检查失败 | 系统启动、网络、磁盘 | 看控制台输出和救援路径 |
只读检查顺序
- 核对 AMI 架构、虚拟化类型、根设备和实例类型是否兼容。
- 在 Service Quotas 查看 vCPU 或实例额度,不把配额与可用区实时容量混为一谈。
- 加密卷检查 KMS 密钥状态、区域和授权。
- 查看实例控制台输出、系统日志和状态检查,不先修改安全组或重装。
常见错误怎么处理
InsufficientInstanceCapacity:不代表账号欠费,可尝试兼容规格、其他可用区或稍后重试。- 配额错误:申请明确额度,避免盲目换更大规格。
- KMS/AMI 权限:核对共享、密钥策略和区域,不复制长期密钥。
- 实例检查失败:从快照创建救援卷检查启动配置、文件系统和
fstab,不要先终止现场。
验收和回退
实例两项状态检查通过后,还要核对卷挂载、私网/公网、DNS、时间、应用健康页和日志。新规格或可用区方案先单独建测试机。失败实例与错误证据保留到根因确认;旧实例、AMI 和快照不释放。需要回退时从上一已验证 AMI/快照和规格新建,而不是在唯一实例上反复破坏性修改。
支持工单需要完整证据
仍无法处理时,整理实例或客户端令牌、区域、可用区、AMI、实例类型、失败时间、请求 ID、完整错误码、KMS 密钥状态和状态检查截图。遮挡账户敏感信息,但保留时间与错误文本。证据能让支持人员区分账户配置、调度容量、宿主机和操作系统问题,避免一上来建议终止或重建而破坏现场。

