预留实例、Savings Plans 与 Spot
为稳定工作负载承诺使用预留实例或 Savings Plans,并将 Spot 实例用于可容忍中断的批处理和无状态任务
预留实例、Savings Plans 与 Spot 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
EC2 购买模式概览
AWS 提供多种 EC2 购买模式,在灵活性与成本节省之间进行权衡。按需模式按秒计费,无需承诺——灵活性最高,但成本也最高。Reserved Instances 通过 1 年或 3 年承诺,最多可节省 72%。Savings Plans 通过灵活的每小时支出承诺,最多可节省 66%。Spot Instances 使用闲置容量,最多可节省 90%,但可能会被中断。专用主机提供用于满足许可证合规要求的物理服务器,但成本较高。理解每种模式对于 SAA-C03 成本场景题至关重要。
# EC2 pricing models (m5.large in us-east-1, approximate):
# On-Demand: $0.096/hr ($70/month)
# 1yr RI (No Upf): $0.062/hr ($45/month) - 35% savings
# 1yr RI (All Upf): $0.051/hr ($37/month) - 47% savings
# 3yr RI (All Upf): $0.032/hr ($23/month) - 67% savings
# Spot: $0.030-0.050/hr - 50-70% savings
# Rule: RI/SP for steady state, Spot for burst/interruptibleReserved Instances:类型与付款选项
Reserved Instances(RIs)是一种计费机制,而不是特定实例——它会将折扣应用于您账户中符合条件的按需实例。RI 类型:Standard RIs——折扣最高(最多 72%),但不能更改实例系列。Convertible RIs——折扣较低(约 54%),但可以兑换为不同的实例系列、操作系统或租赁方式。付款选项:无预付(按月付款,承诺程度最低)、部分预付(有效费率更低)、全部预付(有效每小时费率最低)。对于可预测且不会变化的工作负载,请选择 Standard RIs。
# Purchase Reserved Instance
aws ec2 purchase-reserved-instances-offering \
--reserved-instances-offering-id offering-id-here \
--instance-count 5
# List RI offerings
aws ec2 describe-reserved-instances-offerings \
--instance-type m5.large \
--product-description 'Linux/UNIX' \
--offering-type 'No Upfront' \
--duration 31536000 \
--query 'ReservedInstancesOfferings[].{Price:RecurringCharges[0].Amount,Class:OfferingClass}'RI 范围:Regional 与 Zonal
Reserved Instances 有两种范围选项,会影响灵活性。Regional 范围在同一实例系列内提供实例大小灵活性:Regional m5 RI 可以覆盖区域内任意 AZ 中的任意大小(m5.small、m5.large 等)。它不会预留容量。Zonal 范围会在特定 AZ 中预留容量(容量预留),确保在高需求事件期间实例可用,但不提供实例大小灵活性。除非您需要保证容量(例如 DR 或严格的 SLA),否则请使用 Regional 范围。
# Regional RI: flexible across sizes in a family
# 1x m5 regional RI covers:
# - m5.large (1.0 units)
# - 2x m5.medium (0.5 units each)
# - 0.5x m5.xlarge (2.0 units)
# Zonal RI: specific AZ, reserves capacity
# 1x m5.large in us-east-1a:
# - Only covers m5.large in us-east-1a
# - Guarantees capacity is available
# Most use cases: prefer REGIONAL for flexibilitySavings Plans:比 RIs 更灵活
Savings Plans 是一种灵活的定价模式,您需要承诺在 1 年或 3 年内支付最低每小时支出金额(美元)。AWS 会自动将折扣应用于符合条件的用量。该模式有两种类型:Compute Savings Plans(最多节省 66%)——适用于任意实例系列、区域、操作系统或租赁方式中的 EC2、Lambda 和 Fargate。EC2 Instance Savings Plans(最多节省 72%)——适用于特定区域中特定实例系列内的资源,以较低灵活性换取更高折扣。由于灵活性更高,对于大多数新的承诺,建议优先选择 Savings Plans,而不是 RIs。
# Purchase Compute Savings Plan
aws savingsplans create-savings-plan \
--savings-plan-offering-id offering-id \
--commitment 10.00 \
--purchase-time '2026-07-01T00:00:00Z'
# $10/hr commitment covers:
# - EC2 instances (any family, region, OS)
# - Lambda invocations and duration
# - Fargate vCPU and memory
# Savings Plans apply AFTER Reserved Instances
# Check coverage in Cost Explorer > Savings Plans如何在 RI 和 Savings Plans 之间进行选择
以下关键差异可以帮助您做出选择:当您需要容量预留(分区 RI)、工作负载非常可预测且不会更换实例系列,或者旧账户中已有许多 RI 时,RI 更合适。对于大多数新的承诺,Savings Plans 更合适,因为它们可以自动应用于新实例类型(例如 Graviton),而无需交换 RI。AWS 建议将 Savings Plans 作为 Compute RI 的现代替代方案。对于 RDS、ElastiCache 和 Redshift,Reserved Instances 仍然是可用的机制(这些服务不支持 Savings Plans)。
# Savings Plans coverage analysis
aws ce get-savings-plans-coverage \
--time-period Start=2026-05-01,End=2026-06-01 \
--granularity MONTHLY
# Response shows:
# OnDemandCost: $5,000 (not covered)
# SpendCoveredBySavingsPlans: $10,000
# CoveragePercentage: 66%
# Recommendation:
# If coverage < 60%, consider purchasing more
# If coverage > 85%, you may be over-committedSpot 实例:大幅折扣与中断风险
Spot 实例 使用 AWS EC2 的闲置容量,其价格根据供需动态变化,通常比按需实例低 60% 至 90%。当 AWS 需要这些容量时,可以提前 2 分钟发出警告并收回 Spot 实例。最适合的使用场景包括:大数据处理(EMR)、CI/CD 构建代理、使用 ELB 的无状态 Web 应用程序、机器学习训练(在中断时将模型检查点保存到 S3),以及会保存进度检查点的批处理作业。设计应用程序时,应确保其能够平稳处理 2 分钟的终止警告。
# Check Spot instance interruption notice
# From inside EC2 instance via Instance Metadata Service
curl http://169.254.169.254/latest/meta-data/spot/termination-time
# Returns: 2026-06-21T15:00:00Z if interruption is coming
# Returns 404 if no interruption
# Handle in your application:
# 1. Poll this endpoint every 5 seconds
# 2. On 2-min notice: checkpoint work to S3
# 3. Terminate gracefully
# 4. AWS terminates the instance 2 minutes after noticeSpot 实例策略与多样化配置
为了最大限度地提高 Spot 可用性并尽量减少中断,请采用多样化策略:在多个 AZ 中请求多种实例类型。单个 Spot 资源池(特定实例类型与 AZ 的组合)可能会同时发生中断。使用包含多种实例类型(m5.large、m5a.large、m4.large、c5.large)的混合实例 ASG可以大幅降低中断风险——当一个资源池被收回时,ASG 会使用另一种类型进行替换。使用容量优化分配策略,自动选择容量最充足的资源池(中断风险最低)。
# ASG with diversified Spot pools
aws autoscaling create-auto-scaling-group \
--mixed-instances-policy '{
"LaunchTemplate": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-12345",
"Version": "$Latest"
},
"Overrides": [
{"InstanceType": "m5.large"},
{"InstanceType": "m5a.large"},
{"InstanceType": "m4.large"},
{"InstanceType": "c5.large"},
{"InstanceType": "c5a.large"}
]
},
"InstancesDistribution": {
"SpotAllocationStrategy": "capacity-optimized",
"OnDemandPercentageAboveBaseCapacity": 0
}
}'用于批处理和数据处理的 Spot
批处理工作负载非常适合使用 Spot,因为它们可以在中断后恢复。AWS Batch 原生管理 Spot 容量,自动重试失败的作业,并选择最优的 Spot 资源池。Amazon EMR 支持将按需主节点(确保可靠性)与 Spot 核心节点和任务节点(节省成本)混合使用。EKS 中的托管节点组可以使用 Spot 实例,而 Kubernetes 的节点级平稳终止机制可以处理 2 分钟警告。这些托管服务抽象了处理 Spot 中断的复杂性。
# EMR cluster with On-Demand master + Spot workers
aws emr create-cluster \
--instance-fleets \
InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=[{InstanceType=m5.xlarge}] \
InstanceFleetType=CORE,TargetSpotCapacity=10,InstanceTypeConfigs=[{InstanceType=m5.xlarge},{InstanceType=m5a.xlarge}],LaunchSpecifications={SpotSpecification={TimeoutAction=SWITCH_TO_ON_DEMAND,TimeoutDurationMinutes=10}}
# SWITCH_TO_ON_DEMAND: if Spot unavailable after 10 min,
# provision On-Demand instead (ensures job completes)组合使用购买模式
成本优化程度最高的架构会组合使用三种购买模式:Savings Plans 或 RI 覆盖稳定运行的基线容量(始终运行的最少实例数),按需容量覆盖可预测但变化不定的溢出需求,而 Spot 则处理不可预测的突发流量或批处理工作负载。在 ASG 中,将按需基线容量设置为最低可靠实例数(由 SP/RI 覆盖),并将扩展增量配置为使用 Spot。这种混合方法可以在保持可靠性的同时最大限度地节省成本。
# Hybrid ASG: On-Demand base + Spot burst
# Savings Plan covers On-Demand baseline cost
aws autoscaling create-auto-scaling-group \
--mixed-instances-policy '{
"LaunchTemplate": { ... },
"InstancesDistribution": {
"OnDemandBaseCapacity": 4,
"OnDemandPercentageAboveBaseCapacity": 0,
"SpotAllocationStrategy": "capacity-optimized"
}
}' \
--min-size 4 --max-size 40 --desired-capacity 8
# 4 On-Demand instances (covered by Savings Plan)
# Additional instances = 100% Spot (cheapest burst)监控承诺使用率
购买 RI 或 Savings Plans 后,请监控其使用率,确保您真正使用了已付费的容量。Cost Explorer RI/SP 使用率报告会显示已承诺容量的使用百分比。使用率低于 80% 意味着您正在为未使用的承诺浪费资金。请调查工作负载是否已终止或调整大小。对于 RI,您可以在 AWS Marketplace 上出售未使用的 RI,以收回部分成本。对于 Savings Plans,没有二级市场,因此请在购买前确认您对该承诺有足够信心。
# Check Savings Plans utilisation
aws ce get-savings-plans-utilization \
--time-period Start=2026-06-01,End=2026-06-21 \
--granularity DAILY \
--query 'SavingsPlansUtilizationsByTime[].{Date:TimePeriod.Start,Utilization:Utilization.UtilizationPercentage}'
# Also check: Cost Explorer > Savings Plans > Utilization report
# Target: >80% utilisation
# If <80%: you over-committed or workload shrank专用主机与专用实例
专用主机会为您的账户分配一台专用的物理 EC2 服务器,使您可以使用现有的按核心或按插槽授权的软件许可证(Windows Server、SQL Server、Oracle)。专用主机的成本可能非常高,但某些软件许可协议要求使用它。专用实例是功能较轻的版本——实例运行在专用于您账户的硬件上,但您无法控制具体的主机。两者都不建议仅用于安全隔离(应改用 VPC 隔离和 SG);它们是用于满足许可证合规要求的工具。
# Allocate Dedicated Host for Oracle licensing
aws ec2 allocate-hosts \
--quantity 1 \
--instance-type m5.xlarge \
--availability-zone us-east-1a \
--auto-placement on \
--host-recovery on
# Dedicated Host pricing is per host per hour
# Dedicated Instances: $2/region/hr + instance price
# Use Dedicated Host when:
# - Oracle/SQL Server socket-based licensing
# - Windows Server with own license
# - Compliance requires physical server isolation快速检查
测试您对本课 AWS Solutions Architect (SAA-C03) 概念的理解。
课程回顾
本课您学习了:Savings Plans 比 Reserved Instances 更灵活,并且适用于 EC2、Lambda 和 Fargate;Spot 实例可为能够容忍中断的工作负载节省高达 90% 的成本;以及使用 Savings Plans 覆盖基线容量、使用 Spot 处理突发需求,可以实现最高程度的成本优化。请监控承诺的使用率,确保您使用了已付费的容量。接下来我们将学习 Cost Explorer、Budgets 和成本分配标签。
常见问题解答
「预留实例、Savings Plans 与 Spot」课时是免费的吗?
是的 — 「预留实例、Savings Plans 与 Spot」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「预留实例、Savings Plans 与 Spot」这节课中我会学到什么?
为稳定工作负载承诺使用预留实例或 Savings Plans,并将 Spot 实例用于可容忍中断的批处理和无状态任务 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「预留实例、Savings Plans 与 Spot」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 调整资源规格与 Compute Optimizer
- 预留实例、Savings Plans 与 Spot
- Cost Explorer、预算与成本分配标签
- S3 与数据传输成本优化