Amazon EC2 - Runbook 与参考¶
English · GitHub source 事实核对时间(对照 AWS 官方文档):2026-08-18
概述¶
Amazon Elastic Compute Cloud(Amazon EC2)在 AWS 云中提供按需、可扩展的计算容量。EC2 实例就是一台虚拟服务器;你选择的实例类型决定了它可用的计算、内存、网络和存储资源的配比。
实例生命周期与计费¶
| 状态 | 含义 | 实例使用计费 |
|---|---|---|
pending |
实例正在准备进入 running |
不计费 |
running |
实例运行中、可用 | 按秒计费,最少 1 分钟 |
stopping |
实例正在停止 | 不计费(仅休眠时停止过程计费) |
stopped |
实例已关机,可重新启动 | 不计费(EBS 卷和弹性 IP 仍计费) |
shutting-down |
实例正在终止 | 不计费 |
terminated |
实例已永久删除 | 不计费 |
- 重启(Reboot):实例留在同一台宿主机,保留公有 DNS 名和私有 IP,实例存储数据保留;不会开启新的计费周期。
- 停止/启动(仅 EBS 根卷实例):实例迁移到新宿主机,保留私有 IPv4 和弹性 IP;若没有关联弹性 IP,公有 IPv4 会变化。实例存储数据会被清除。
- 休眠(Hibernate,仅 EBS 根卷实例):内存内容保存到 EBS 根卷;
stopping过程计费,stopped后不计费。 - 终止(Terminate):永久删除、不可恢复。根 EBS 卷默认随实例删除(
DeleteOnTermination),其他卷保留;InstanceInitiatedShutdownBehavior决定 OS 关机是停止还是终止实例(EBS 根卷默认停止)。
常用操作(AWS CLI)¶
# 启动实例
aws ec2 run-instances --image-id ami-0123456789abcdef0 \
--instance-type t3.micro --key-name my-key \
--security-group-ids sg-0123456789abcdef0 --subnet-id subnet-0123456789abcdef0
# 列出运行中的实例
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query 'Reservations[].Instances[].[InstanceId,InstanceType,PublicIpAddress]' \
--output table
# 启动 / 停止 / 重启 / 终止
aws ec2 start-instances --instance-ids i-0123456789abcdef0
aws ec2 stop-instances --instance-ids i-0123456789abcdef0
aws ec2 reboot-instances --instance-ids i-0123456789abcdef0
aws ec2 terminate-instances --instance-ids i-0123456789abcdef0
# 状态检查和打标签
aws ec2 describe-instance-status --instance-ids i-0123456789abcdef0
aws ec2 create-tags --resources i-0123456789abcdef0 --tags Key=Name,Value=web-01
# 弹性 IP
aws ec2 allocate-address
aws ec2 associate-address --instance-id i-0123456789abcdef0 --allocation-id eipalloc-0123456789abcdef0
aws ec2 release-address --allocation-id eipalloc-0123456789abcdef0
计费方式¶
- 按需(On-Demand):按秒付费,最少 60 秒,无长期承诺。
- Savings Plans / 预留实例:承诺 1 或 3 年使用量换取更低价格。
- 竞价实例(Spot):使用闲置容量,价格显著更低,但可能被回收。
- 专用主机 / 按需容量预留:满足软件许可和容量保障需求。
- 新账户有免费套餐额度。
安全与最佳实践¶
- 用安全组做虚拟防火墙,遵循最小权限(只开放必要的端口和来源网段)。
- 妥善保存私钥;AWS 只保存公钥。
- 给实例挂 IAM 角色,而不是分发长期访问密钥。
- 对关键实例开启终止保护。
- 定期做 EBS 快照、用 AMI 做恢复预案。
- 用 AWS Systems Manager 打补丁,用 CloudWatch 和实例状态检查做监控。
故障排查¶
| 症状 | 检查与处理 |
|---|---|
| 实例状态检查失败 | 先重启;仍失败则停止再启动。 |
| 无法 SSH/RDP 连接 | 检查安全组入站规则(22/3389 端口和来源网段)、路由表/NACL、系统服务、密钥对。 |
| 停止/启动后公有 IPv4 变化 | 未关联弹性 IP 时属预期行为;要固定地址就关联弹性 IP。 |
| 实例存储数据丢失 | 预期行为:停止/休眠/终止会清除实例存储数据;持久化数据用 EBS。 |
| 实例被误终止 | 无法恢复;依赖 AMI/快照/备份重建。 |
| t2/t3 突发 CPU 积分耗尽 | 切换到 unlimited 模式或更大实例类型。 |
| 实例状态检查通过但不可达 | 检查 CloudWatch 指标、系统内存/磁盘(CloudWatch agent)、EBS 状态。 |
配额¶
各区域按实例类型的配额不同且可调;新账户配额较低。以 Service Quotas 控制台为准,可在此申请提升。