调整资源规格与 Compute Optimizer
使用 AWS Compute Optimizer 的建议缩减配置过度的 EC2 实例、Lambda 函数和 EBS 卷,以降低成本
调整资源规格与 Compute Optimizer 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
过度配置问题
云架构中最常见且代价高昂的错误之一是过度配置——分配的资源超过工作负载的实际需求。IT 团队经常因为本地部署环境的习惯(为峰值负载购买容量)、担心性能下降,或者从未重新审视最初的规格决策而进行过度配置。在 AWS 中,过度配置的 EC2 实例、EBS 卷和 Lambda 函数每运行一分钟都会浪费资金。资源规格优化是系统识别并消除这类浪费的过程。
# Common over-provisioning symptoms:
# EC2: average CPU < 10%, memory < 20%
# RDS: storage auto-grow never triggered
# Lambda: allocated memory rarely exceeds 40%
# EBS: provisioned IOPS consistently unused
# Cost impact example:
# Over-provisioned r5.8xlarge at $1.92/hr: $1,382/month
# Correct size r5.xlarge at $0.252/hr: $181/month
# Savings: $1,201/month per instanceAWS Compute Optimizer 概览
AWS Compute Optimizer 会分析来自 CloudWatch 的历史利用率指标,并利用机器学习推荐最优的 AWS 计算资源。它涵盖EC2 实例、EC2 autoScalingGroup、EBS 卷、Lambda 函数以及基于 Fargate 的 Amazon ECS。Compute Optimizer 至少需要 30 天的指标历史记录,才能生成可信的建议。启用该服务免费,并会提供包含预计月度节省金额和变更风险评级的建议。
# Opt in to Compute Optimizer
aws compute-optimizer update-enrollment-status \
--status Active
# Get EC2 recommendations
aws compute-optimizer get-ec2-instance-recommendations \
--query 'instanceRecommendations[].{Instance:currentInstanceType,Recommended:recommendationOptions[0].instanceType,Savings:recommendationOptions[0].estimatedMonthlySavings.value,Risk:recommendationOptions[0].performanceRisk}'
# Get Lambda recommendations
aws compute-optimizer get-lambda-function-recommendations使用 Compute Optimizer 优化 EC2 资源规格
Compute Optimizer 会分析 EC2 在过去 3 天、14 天或 30 天以上的CPU 利用率、内存利用率(通过 CloudWatch 代理获取)、网络吞吐量和EBS IOPS。随后,它会生成四种发现结果之一:已优化(当前规格适当)、过度配置(可以缩小规格)、配置不足(应扩大规格)或未优化(数据不足)。请始终查看性能风险——Compute Optimizer 会为每条建议分配 VeryLow、Low、Medium、High 风险等级。
# EC2 recommendation findings:
# Finding: OVER_PROVISIONED
# CurrentInstanceType: m5.4xlarge
# RecommendedInstanceType: m5.xlarge
# CPU utilisation: P99 = 22%, P50 = 4%
# Memory utilisation: P99 = 18%, P50 = 8%
# EstimatedMonthlySavings: $380
# PerformanceRisk: VeryLow
# Always check:
# - Does current instance have burstable credits? (T3)
# - Are there workload spikes not captured in averages?
# - Is there seasonality to consider?优化 Lambda 资源规格
Lambda 函数按照执行时间(精确到毫秒)乘以分配的内存计费。分配超过需求的内存会浪费资金,但更多内存也意味着更多 CPU,因此最佳平衡点是使每次调用成本最低的内存设置。Compute Optimizer 会分析 Lambda 调用时长、错误率和超时指标,以推荐最佳内存设置。开源工具 Lambda Power Tuning 还可以在不同内存设置下调用您的函数,通过实际测试找出成本最优的配置。
# Compute Optimizer Lambda recommendations
aws compute-optimizer get-lambda-function-recommendations \
--function-arns arn:aws:lambda:us-east-1:123:function:my-function
# Response shows:
# currentMemorySize: 1024 MB
# recommendedMemorySize: 256 MB
# utilizationMetrics:
# - type: MEMORY_MAXIMUM, value: 89 (MB)
# estimatedMonthlySavings: $45
# 89 MB actual vs 1024 MB allocated = 935 MB wasted优化 EBS 卷规格
EBS 卷经常在大小(未使用的磁盘空间)和IOPS(从未被消耗的预配置 IOPS)两个方面过度配置。Compute Optimizer 会分析 VolumeReadOps、VolumeWriteOps、VolumeReadBytes、VolumeWriteBytes 指标。常见建议是:从 gp2 迁移到 gp3(将大小与 IOPS 分离),这样可以独立优化 IOPS,通常可节省 20%。此外,还应识别未连接的 EBS 卷(实例已终止但卷仍被遗留),并将其创建快照或删除。
# Get EBS volume recommendations
aws compute-optimizer get-ebs-volume-recommendations \
--volume-arns arn:aws:ec2:us-east-1:123:volume/vol-12345
# Common finding: gp2 -> gp3 migration
# gp2: 500 GB = 500 GB * $0.10 = $50/month
# IOPS: 1,500 (3 IOPS/GB, not configurable)
# gp3: 500 GB = $40/month + 3,000 IOPS free
# Save $10/month plus get MORE baseline IOPS
# Find unattached EBS volumes
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[].{VolumeId:VolumeId,Size:Size,Created:CreateTime}'autoScalingGroup 建议
Compute Optimizer 会分析整个 autoScalingGroup 中所有实例的利用率,并针对实例类型推荐启动模板更改。如果某个 autoScalingGroup 中的所有实例始终处于过度配置状态,切换到更小的实例类型可以大规模降低成本。例如,如果某个 autoScalingGroup 平均运行 10 个 m5.large 实例,切换到 m5.medium 可使每个实例节省 50%。当您的软件兼容时,Compute Optimizer 还会推荐基于 Graviton 的实例,同时带来性能提升和成本降低。
# Get ASG recommendations
aws compute-optimizer get-auto-scaling-group-recommendations \
--auto-scaling-group-arns arn:aws:autoscaling:us-east-1:123:autoScalingGroup:abc:autoScalingGroupName/my-asg
# If recommendation is to switch to Graviton:
# Current: m5.large (x86, $0.096/hr)
# Recommended: m6g.large (Graviton2, $0.077/hr)
# Savings: 20% per instance
# ASG at 10 instances average = $220/month savingsTrusted Advisor 成本洞察
AWS Trusted Advisor 除了提供安全性、性能、容错能力和服务限额检查外,还能提供成本优化洞察。关键成本检查包括:低利用率 EC2 实例(连续 4 天以上 CPU 利用率低于 10%)、未关联的 Elastic IP Addresses(未连接时仍会收费)、利用不足的 EBS 卷、空闲的负载均衡器(没有运行状况正常的目标)以及未使用的 Reserved Instances。Trusted Advisor 的基本检查免费;完整检查集需要 Business 或 Enterprise Support。
# Trusted Advisor: get cost optimisation checks
aws support describe-trusted-advisor-checks \
--language en \
--query 'checks[?category==`cost_optimizing`].{Name:name,Id:id}'
# Key checks:
# Qkj5MU5fNp: Low utilisation EC2 instances
# Z4AUBRNSmh: Unassociated Elastic IP addresses
# DAvU99Dc4C: Underutilized EBS volumes
# hjLMh88uM8: Idle load balancers
# 1e93e4c0b5: Unused reserved instances实例代际升级
AWS 会定期发布更高效的新一代 EC2 实例,以更低或相同的成本提供更好的性能。从第 5 代(m5、c5、r5)迁移到第 7 代(m7g、c7g、r7g),可以在相近或更低的成本下获得 40% 的计算性能提升。Compute Optimizer 会专门标记升级到新一代实例(包括基于 Graviton 的实例)的机会。实例升级通常是最简单的资源规格优化措施——配置不变,硬件更新,性能更好,成本更低。
# EC2 instance generation comparison (same price tier):
# m5.large: 2 vCPU, 8 GB, $0.096/hr (2019)
# m6i.large: 2 vCPU, 8 GB, $0.096/hr (2021, ~10% faster)
# m7i.large: 2 vCPU, 8 GB, $0.1008/hr (2023, ~15% faster)
# m7g.large: 2 vCPU, 8 GB, $0.0808/hr (2023, Graviton3, cheapest)
# Upgrade path for Linux workloads:
# m5 -> m7g (Graviton): best price/performance
# m5 -> m7i: same architecture, no code changes优化 RDS 实例规格
RDS 实例价格较高,而且经常存在过度配置。请使用 CloudWatch 指标评估 RDS 利用率:CPUUtilization、FreeableMemory、ReadIOPS 和 WriteIOPS。如果 CPU 持续低于 20%,且内存始终保持较高水平,请考虑缩小规格。对于启用了 Multi-AZ 的生产数据库,优化规格可以使节省金额翻倍,因为主实例和备用实例都会更换规格。此外,还可以考虑从 RDS MySQL/PostgreSQL 切换到 Aurora,这样通常能以相近的成本提供更好的性能,并且在大规模运行时更具成本效益。
# Monitor RDS utilisation for right-sizing
aws cloudwatch get-metric-statistics \
--namespace AWS/RDS \
--metric-name CPUUtilization \
--dimensions Name=DBInstanceIdentifier,Value=mydb \
--start-time 2026-05-21T00:00:00Z \
--end-time 2026-06-21T00:00:00Z \
--period 86400 \
--statistics Maximum Average
# If 30-day P99 CPU < 30%, consider downsizing
# If P99 CPU > 80%, consider upsizing将资源规格优化流程化
资源规格优化应当是持续进行的流程,而不是一次性工作。请建立每月或每季度的评审周期:获取 Compute Optimizer 建议,评估哪些建议可以安全应用,在维护时段实施更改,并衡量节省金额。对于容易实现的优化,可以进行自动化:清理未连接的 EBS 卷、释放未使用的 Elastic IP,以及移除空闲的负载均衡器都可以编写脚本实现。请在 CloudWatch 中创建成本优化控制面板,按服务跟踪每月支出,并突出显示异常增长。
# Script to release unassociated Elastic IPs
aws ec2 describe-addresses \
--query 'Addresses[?!AssociationId].AllocationId' \
--output text | xargs -I {} \
aws ec2 release-address --allocation-id {}
# Script to delete unattached EBS volumes (careful!)
# First check if snapshots exist before deleting
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[].VolumeId' \
--output text资源规格优化与架构更改
资源规格优化可以解决现有架构中的过度配置问题,但有时问题本身在于架构。一个运行多个应用的大型 EC2 实例,可能需要进行架构拆分(在 Fargate 上运行微服务),而不仅仅是换用更小的实例。单体数据库可能需要分片或缓存,而不只是缩小实例规格。资源规格优化是第一步,也是最快的一步。架构优化(无服务器、容器、缓存)能够带来更深入且更持久的节省,但需要付出更多努力。Cost Optimisation 支柱建议同时推进这两方面。
# Cost optimisation hierarchy:
# Level 1: Right-sizing (quick wins, days)
# - Compute Optimizer recommendations
# - Delete unused resources
# - Elastic IP, EBS cleanup
# Level 2: Purchasing model (weeks)
# - Reserved Instances / Savings Plans
# - Spot for eligible workloads
# Level 3: Architecture (months)
# - Serverless migration
# - Container consolidation
# - Caching layer addition
# - Database optimisation快速检查
测试您对本课中 AWS Solutions Architect(SAA-C03)概念的理解。
课程回顾
在本课中,您学习了:AWS Compute Optimizer 会利用 CloudWatch 指标进行机器学习,以推荐经过资源规格优化的计算资源;资源规格优化适用于 EC2、Lambda、EBS、ASG 以及 Fargate 上的 ECS;以及升级到更新的实例代际(尤其是 Graviton)可以同时改善成本和性能。请将资源规格优化作为持续实践,而不是一次性工作。接下来,我们将学习 Reserved Instances、Savings Plans 和 Spot 购买模式。
常见问题解答
「调整资源规格与 Compute Optimizer」课时是免费的吗?
是的 — 「调整资源规格与 Compute Optimizer」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「调整资源规格与 Compute Optimizer」这节课中我会学到什么?
使用 AWS Compute Optimizer 的建议缩减配置过度的 EC2 实例、Lambda 函数和 EBS 卷,以降低成本 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「调整资源规格与 Compute Optimizer」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 调整资源规格与 Compute Optimizer
- 预留实例、Savings Plans 与 Spot
- Cost Explorer、预算与成本分配标签
- S3 与数据传输成本优化