AWS账号解封 AWS EC2 实例生命周期管理教程:启动、停止与终止的操作步骤、计费影响与故障排查
用户搜索“AWS EC2 实例生命周期管理:启动、停止与终止”,通常不是想看术语说明,而是在实际操作中遇到了决策问题:实例该停止还是终止、停止后是否还收费、EBS 数据会不会丢失、弹性公网 IP 是否保留、为什么停止后再启动无法 SSH、为什么终止按钮是灰色、生产实例能不能直接停止。下面的内容围绕这些高频问题展开,重点解决控制台操作、参数选择、影响评估和故障处理。
先判断你的操作目标:省钱、维护、迁移还是下线
在 EC2 生命周期管理中,很多误操作来自目标不明确。停止实例通常用于临时停机、变更维护、夜间关闭测试环境;终止实例适合资源彻底下线、临时实验环境回收、旧实例替换。若目标是迁移或保留数据,不应直接终止,而应先做快照或创建 AMI。
| 场景 | 建议操作 | 原因 |
| 开发测试环境夜间停机 | 停止实例 | 保留系统盘和配置,减少计算费用 |
| 实例规格升级前维护 | 先停止,再修改实例类型 | 部分规格变更要求实例处于 stopped 状态 |
| 旧业务彻底下线 | 终止实例前做快照 | 避免误删系统和数据 |
| SSH 异常需修复系统 | 停止实例,做快照,再排障 | 便于回滚 |
| 临时竞价实例工作节点 | 可直接终止 | 短生命周期节点适合快速回收 |
开始前必须确认的4项内容
1. 账号与权限要求
如果你能看到实例但无法停止或终止,通常不是实例故障,而是 IAM 权限不足。至少确认当前账号或角色拥有以下操作权限:
- ec2:StartInstances
- ec2:StopInstances
- ec2:RebootInstances
- ec2:TerminateInstances
- ec2:DescribeInstances
- ec2:CreateSnapshot
- ec2:CreateImage
企业环境中还要检查是否有 Service Control Policy、Tag-based Access Control、Change Manager 审批或终止保护限制。
2. 实例磁盘类型要先看清
操作前在实例详情页确认根卷和数据卷是 EBS 还是 Instance Store。EBS 卷在停止实例后仍保留;Instance Store 为宿主机本地盘,停止、终止或宿主迁移后数据可能不可恢复。如果你的业务把上传文件、缓存或数据库文件放在实例存储上,停止前必须迁移。
AWS账号解封 3. 公网 IP 是否依赖固定地址
如果实例使用的是自动分配的公网 IPv4,那么停止后再启动,公网 IP 可能变化。绑定域名白名单、第三方回调、API 放行规则时,这一点经常导致服务恢复后仍不可访问。需要固定地址时,请提前绑定 Elastic IP。
4. 是否启用了终止保护
很多用户在控制台找不到终止操作,或点击终止失败,常见原因就是实例开启了 termination protection。路径为:实例详情页 → Actions → Instance settings → Change termination protection。
准备工作:建议先做一次最小备份
即使只是停止实例,也建议在关键变更前保留至少一种恢复手段。生产环境可同时使用快照和 AMI,测试环境至少对根卷做快照。
| 备份方式 | 适用场景 | 恢复粒度 | 操作建议 |
| EBS Snapshot | 备份系统盘或数据盘 | 卷级别 | 升级、停机、重装前执行 |
| AMI | 整机复制与回滚 | 实例级别 | 生产变更前优先使用 |
| 数据库逻辑备份 | MySQL、PostgreSQL、Redis | 数据级别 | 避免只依赖磁盘快照 |
控制台操作教程:启动、停止、重启与终止
步骤1:登录控制台并定位实例
进入 AWS Management Console,在搜索框输入 EC2,打开 EC2 控制台后,点击左侧 Instances。先确认右上角 Region 是否正确。很多“实例消失”问题,实际上是切错地域,例如实例创建在 ap-southeast-1,而当前控制台停留在 us-east-1。
在实例列表中建议同时查看以下列:
- Instance state
- AWS账号解封 Instance type
- Public IPv4 address
- Private IPv4 address
- Availability Zone
- AWS账号解封 Platform details
- IAM role
步骤2:启动实例
适用于 stopped 状态实例。勾选目标实例后,点击右上角 Instance state → Start instance。
注意事项:
- 如果实例从 stopped 变为 pending 再到 running,表示启动流程正常。
- 启动后不要立即测试 SSH/RDP,先等待 1-3 分钟让系统服务完成初始化。
- 如果公网 IP 改变,记得同步更新 DNS、白名单和监控目标。
- 若启动失败,先看 Status checks 是否通过,再查看系统日志。
步骤3:停止实例
勾选实例后点击 Instance state → Stop instance。AWS 可能会提示该操作会关闭虚拟机并释放宿主资源。
参数与注意事项:
- 停止前先确认应用已正常下线,避免文件系统未同步完成。
- 对于 Windows 实例,停止前建议先在系统内正常关机,降低文件系统损坏概率。
- 如果实例启用了自动恢复、外部监控或 Auto Scaling,要先确认是否会被自动拉起。
- 停止后计算资源通常不再按实例运行时间计费,但 EBS、快照、Elastic IP 等资源仍可能继续收费。
步骤4:重启实例
AWS账号解封 点击 Instance state → Reboot instance。重启不会像停止那样释放宿主资源,通常不会导致自动公网 IP 变化。适用于修改应用配置后重载系统、内核参数生效、临时网络异常恢复。
如果你的目标是修改实例类型、切换某些底层资源、排查宿主机问题,单纯重启通常不够,应使用停止再启动。
步骤5:终止实例
勾选实例后点击 Instance state → Terminate instance。控制台会要求二次确认。
终止前必须检查:
- 根卷的 Delete on termination 是否开启
- 附加数据卷是否需要保留
- 是否有未导出的日志、上传文件、数据库文件
- 是否已解绑 Elastic IP、负载均衡目标组、DNS 解析
- 是否已完成快照或 AMI 备份
如果实例被终止后才发现配置需要保留,恢复难度会明显增加,尤其是在根卷自动删除的情况下。
AWS CLI 批量操作示例:适合多实例维护
当你需要同时管理多台 EC2,例如夜间关闭测试机、批量恢复应用节点,使用 AWS CLI 比控制台更高效。
启动实例
aws ec2 start-instances --instance-ids i-0123456789abcdef0
停止实例
aws ec2 stop-instances --instance-ids i-0123456789abcdef0
AWS账号解封 强制停止
aws ec2 stop-instances --instance-ids i-0123456789abcdef0 --force
AWS账号解封 仅在系统无响应、正常关机失败时使用。强制停止可能导致文件系统不一致,适合先做快照再执行。
终止实例
aws ec2 terminate-instances --instance-ids i-0123456789abcdef0
查看实例状态
aws ec2 describe-instances --instance-ids i-0123456789abcdef0 --query 'Reservations[].Instances[].State.Name'
停止和终止到底有什么区别:从计费、数据、IP 三个维度判断
| 影响项 | 停止 Stop | 终止 Terminate |
| 实例计算计费 | 停止后通常不再收取实例运行费用 | 终止后停止实例运行费用 |
| EBS 根卷 | 默认保留 | 通常按 Delete on termination 设置处理,默认常为删除 |
| 附加 EBS 数据卷 | 保留 | 是否删除取决于卷属性 |
| Instance Store 数据 | 不可依赖保留 | 丢失 |
| 自动分配公网IP | 可能变化 | 释放 |
| Elastic IP | 可保留,但未绑定时可能收费 | 实例终止后需重新绑定到其他资源 |
| CloudWatch 监控 | 历史数据可查看 | 历史数据仍可短期查看,但实例不可恢复运行 |
连接失败与状态异常的处理办法
SSH 连接失败:启动成功但仍连不上
这是最常见的问题。按照下面顺序排查效率最高:
- 检查实例是否处于 running,且 2/2 status checks 已通过
- 确认安全组已放行 22 端口,来源 IP 是否正确
- 检查子网路由是否指向 Internet Gateway,公网实例是否分配公网 IP 或绑定 EIP
- 确认系统防火墙未拦截:Linux 上检查 firewalld、iptables、ufw
- 确认使用了正确用户名:Amazon Linux 为 ec2-user,Ubuntu 为 ubuntu,CentOS 常为 centos 或 ec2-user
- 密钥文件权限是否正确,Linux 下建议 chmod 400 key.pem
Linux 防火墙示例:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
RDP 无法连接 Windows 实例
确认安全组开放 3389;在实例启动后使用 Get Windows Password 解密管理员密码;若停止再启动后公网 IP 改变,要改用新 IP 连接。若你通过公司出口访问,还要确认公司防火墙未屏蔽 3389。
实例无法停止
如果实例卡在 stopping 状态较久,可先查看是否存在高 IO、系统无响应或宿主机异常。必要时使用强制停止。对数据库服务器先确认应用层已完成 flush 和事务提交,避免强停带来恢复时间过长。
实例无法启动
常见原因包括底层容量不足、EBS 卷异常、实例配置不兼容、启动脚本阻塞。可依次检查:
- System Log 是否有内核报错
- 根卷是否达到容量上限导致引导失败
- /etc/fstab 是否挂载了不存在的磁盘导致开机卡死
- 近期是否修改了内核、云初始化脚本或网络配置
终止按钮灰色或报权限错误
AWS账号解封 通常是 IAM 权限不足或实例启用了终止保护。企业环境里还可能受 Organizations SCP 限制。
不同使用场景的配置建议
个人开发者
开发测试环境建议使用可停止的按需实例,夜间关闭以节省计算费用。根卷保留 30-50GB gp3 即可,公网访问建议绑定 EIP,避免 IP 变化导致 SSH 配置失效。终止前至少做一次快照。
企业用户
生产环境不要把“停止实例”当作常规维护动作,优先通过负载均衡摘除节点、滚动重启、先备份再变更。为关键实例开启终止保护,并使用 IAM 最小权限控制操作。数据库节点停止前需要明确主从角色和恢复流程。
跨境业务
重点关注地域、时延和固定出口 IP。若实例停止后 IP 变化,会影响第三方平台的回调白名单。建议通过 Elastic IP 固定公网地址,并在 Route 53 或外部 DNS 中降低 TTL,便于切换。
AWS账号解封 网站应用
前端 Web 节点建议无状态化,上传文件不要只存本地磁盘。这样实例需要停止、重建或终止时,不会因为本地数据丢失影响业务。结合 ALB 和 Auto Scaling 时,手动停止实例前要先检查是否会触发自动替换。
数据库业务
数据库实例不建议直接依赖 EC2 生命周期做维护窗口控制,尤其是高并发业务。若运行 MySQL/Redis 在 EC2 上,停止前先执行业务摘流、备份、日志落盘和一致性检查。数据库数据盘建议单独挂载 EBS,避免根卷删除时一起丢失。
容易忽略的3个错误案例
案例1:停止后恢复失败,原因是公网 IP 变更
用户将合作方白名单绑定到原公网 IP,实例停止后重新启动,公网 IP 变化,导致 API 回调全部超时。处理方式:绑定 Elastic IP,并同步更新白名单。
案例2:终止测试机时误删数据卷
用户以为只有系统盘会删除,实际附加 EBS 卷也配置了 Delete on termination,导致上传文件和日志全部被清理。处理方式:终止前逐个检查每块卷的删除策略。
案例3:修改实例类型后无法开机
用户在停止实例后将类型切换到与当前 AMI 驱动支持不完全匹配的规格,启动后网卡驱动异常,导致远程不可达。处理方式:先保留快照或 AMI,并在变更前验证实例族兼容性。
优化建议:把生命周期管理变成可回滚的标准流程
安全优化
- 为生产实例启用 termination protection
- 用 IAM 角色区分查看、停止、终止权限
- 安全组只开放必需端口,如 22、3389、80、443
- SSH 仅允许固定办公 IP,避免 0.0.0.0/0 长期开启
性能优化
- 停止后重新启动若迁移到底层新宿主机,性能表现可能变化,变更后做一次基准测试
- 关键业务使用 gp3 并单独设置 IOPS/吞吐,避免根卷性能瓶颈
- 启动后检查 CPU Credit、磁盘队列、网络带宽是否异常
成本优化
- 非生产环境用 EventBridge + Lambda 定时停止/启动实例
- 清理未挂载的 EBS 卷和过期快照
- Elastic IP 未绑定运行资源时也可能产生费用,终止实例后及时处理
稳定性优化
- 操作前创建快照或 AMI,形成回滚点
- 变更前记录当前公网 IP、私网 IP、卷 ID、安全组和实例类型
- 生产环境通过分批方式操作,避免一次性停止全部节点
- 实例恢复后立即验证 SSH/RDP、应用端口、日志和监控告警
如果你的目标只是临时停机省成本,优先选择“停止实例”;如果资源已经确认下线,且备份已完成,再执行“终止实例”。真正影响业务的往往不是按钮本身,而是你是否提前确认了 IP、磁盘、权限、备份和连接恢复路径。

