AWS 成本优化:节省 30-50% 的云基础设施费用

通过针对 Web 应用程序和 ERP 的适当规模、预留实例、现货实例、自动扩展和存储优化策略,将 AWS 成本降低 30-50%。

E
ECOSIRE Research and Development Team
|2026年3月16日4 分钟阅读802 字数|

AWS 成本优化:节省 30-50% 的云基础设施费用

平均组织将 32% 的云支出浪费在闲置或过度配置的资源上。 对于每月在 AWS 上花费 5,000 美元的公司来说,每年浪费 19,200 美元。云成本优化并不是偷工减料,而是只为实际使用的内容付费。

本指南涵盖了 AWS 成本降低策略的全部内容,从本月节省资金的快速成功到随着时间的推移增加节省的架构更改。

要点

  • 通过将实例类型与实际资源使用情况相匹配,仅调整大小即可节省 20-40%
  • 预留实例和节省计划为可预测的工作负载提供 30-60% 的折扣
  • Spot 实例可将容错工作负载的计算成本降低 60-90%
  • 存储生命周期策略可防止 S3 成本无限增长

成本优化框架

优先顺序

按此顺序进行优化,以最小的努力获得最大的投资回报率:

  1. 消除浪费(立即,无风险)
  2. 合适大小的实例(1-2 周,低风险)
  3. 使用定价模型(预留、现货、储蓄计划)
  4. 优化架构(数月,需要工程)

步骤 1:消除浪费

查找未使用的资源

# Find unattached EBS volumes (you are paying for storage with no use)
aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query 'Volumes[*].{ID:VolumeId,Size:Size,Type:VolumeType}' \
  --output table

# Find unused Elastic IPs
aws ec2 describe-addresses \
  --query 'Addresses[?AssociationId==null].{IP:PublicIp,AllocationId:AllocationId}' \
  --output table

# Find idle load balancers (no targets)
aws elbv2 describe-target-groups \
  --query 'TargetGroups[*].{ARN:TargetGroupArn,Name:TargetGroupName}' \
  --output table

# Find stopped instances still consuming EBS
aws ec2 describe-instances \
  --filters Name=instance-state-name,Values=stopped \
  --query 'Reservations[*].Instances[*].{ID:InstanceId,Type:InstanceType,StopTime:StateTransitionReason}' \
  --output table

常见废物来源

废物来源典型每月费用修复
独立的 EBS 卷每卷 10-100 美元删除或快照并删除
使用 EBS 停止实例每个实例 20-200 美元终止或创建 AMI
未使用的弹性 IP每个 3.60 美元发布
旧快照0.05 美元/GB生命周期政策
超大 NAT 网关每个网关 32 美元以上整合、使用 VPC 端点
空闲的RDS实例$50-500+停止或终止开发实例

第 2 步:调整大小

分析实际使用情况

# Get average CPU utilization over the last 14 days
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --start-time $(date -u -d '14 days ago' +%Y-%m-%dT%H:%M:%S) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
  --period 3600 \
  --statistics Average Maximum \
  --output json

正确调整决策矩阵

平均 CPU峰值CPU行动
<10%<30%缩小 2 个步骤(例如,从大到中)
10-30%<60%缩小 1 步(例如,从大到大)
30-60%<80%目前尺寸合适
>60%>80%考虑扩大规模或自动缩放

实例类型优化

当前实例尺寸合适每月储蓄
m5.xlarge(140 美元)m5.large (70 美元)70 美元 (50%)
r5.2xlarge(365 美元)r6g.xlarge (146 美元)219 美元 (60%)
t3.large ($60)t3.medium (30 美元)30 美元 (50%)
c5.xlarge(124 美元)c6g.large ($62)62 美元 (50%)

迁移到 Graviton (ARM) 实例(r6g、c6g、m6g)可额外节省 20% 的成本,并且对大多数工作负载具有相同或更好的性能。


步骤 3:定价模型

预留实例与储蓄计划

特色预留实例计算储蓄计划EC2 储蓄计划
折扣30-60%30-54%40-60%
灵活性特定实例类型/区域任何实例系列/区域特定实例系列/区域
承诺1 或 3 年1 或 3 年1 或 3 年
最适合稳定、可预测的工作负载混合工作负载具体实例家族

建议:从计算储蓄计划开始以获得灵活性。承诺您有信心的最低基线使用量。

Spot 实例

Spot 实例提供 60-90% 的折扣,但可以在提前 2 分钟通知的情况下中断。

适合

  • CI/CD 构建运行程序
  • 批处理和数据管道
  • 开发和暂存环境
  • 负载均衡器后面的无状态 Web 服务器(具有按需回退功能)

不适合

  • 数据库
  • 单实例应用程序
  • 无检查点的有状态工作负载
# Launch template with Spot Instance
Resources:
  SpotFleet:
    Type: AWS::EC2::SpotFleet
    Properties:
      SpotFleetRequestConfigData:
        AllocationStrategy: lowestPrice
        TargetCapacity: 5
        LaunchSpecifications:
          - InstanceType: t3.large
            ImageId: ami-0123456789abcdef0
          - InstanceType: t3.xlarge
            ImageId: ami-0123456789abcdef0
          - InstanceType: m5.large
            ImageId: ami-0123456789abcdef0

步骤 4:存储优化

S3 生命周期策略

{
  "Rules": [
    {
      "ID": "ArchiveOldBackups",
      "Status": "Enabled",
      "Filter": {
        "Prefix": "backups/"
      },
      "Transitions": [
        {
          "Days": 30,
          "StorageClass": "STANDARD_IA"
        },
        {
          "Days": 90,
          "StorageClass": "GLACIER"
        },
        {
          "Days": 365,
          "StorageClass": "DEEP_ARCHIVE"
        }
      ],
      "Expiration": {
        "Days": 730
      }
    }
  ]
}

S3 存储类定价

存储类每 GB 价格/月检索最适合
标准0.023 美元即时活跃数据
标准-IA0.0125 美元即时($0.01/GB 检索)每月访问
冰川即时0.004 美元即时($0.03/GB 检索)按季度访问
冰川0.004 美元1-12 小时年度访问
深度存档0.00099 美元12 小时合规,长期

EBS 优化

# Convert gp2 volumes to gp3 (20% cheaper, better performance)
for vol_id in $(aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 --query 'Volumes[*].VolumeId' --output text); do
  echo "Converting $vol_id from gp2 to gp3"
  aws ec2 modify-volume --volume-id "$vol_id" --volume-type gp3
done

步骤 5:自动缩放

基于计划的扩展

大多数 B2B 应用程序在工作时间之外的流量会减少 70%:

# Scale down at night
aws autoscaling put-scheduled-action \
  --auto-scaling-group-name production-asg \
  --scheduled-action-name scale-down-night \
  --recurrence "0 20 * * 1-5" \
  --desired-capacity 2 \
  --min-size 1

# Scale up in the morning
aws autoscaling put-scheduled-action \
  --auto-scaling-group-name production-asg \
  --scheduled-action-name scale-up-morning \
  --recurrence "0 7 * * 1-5" \
  --desired-capacity 5 \
  --min-size 3

开发环境调度

在工作时间之外停止非生产环境:

# Stop dev/staging instances at 7 PM
aws ec2 stop-instances --instance-ids i-dev123 i-staging456

# Start at 8 AM
aws ec2 start-instances --instance-ids i-dev123 i-staging456

每月节省:每天运行开发实例 10 小时而不是 24 小时,可节省 58%。


每月成本审查清单

  • 检查 AWS Cost Explorer 是否存在异常
  • 检查未使用的资源(卷、IP、快照)
  • 验证合适的规模建议(AWS 计算优化器)
  • 查看预留实例/储蓄计划覆盖范围
  • 检查 S3 存储增长和生命周期策略的有效性
  • 查看数据传输费用(通常占总账单的 10-15%)
  • 验证自动缩放阈值是否匹配当前流量模式
  • 检查失败部署中的孤立资源

常见问题

降低 AWS 成本最快的方法是什么?

删除未使用的资源。大多数 AWS 账户每月都有数百美元的未附加 EBS 卷、未使用的弹性 IP、旧快照和已停止的实例。这需要不到一个小时,并且立即省钱。第二个最快的胜利是将 gp2 EBS 卷转换为 gp3——相同或更好的性能,但成本降低 20%。

我们应该使用 Savings Plans 还是预留实例?

计算大多数企业的储蓄计划。它们提供与预留实例相当的折扣,但具有更大的灵活性 --- 您不会被锁定到特定的实例类型。仅当您确定实例类型 1-3 年时才使用 EC2 预留实例。

我们如何按项目或团队跟踪 AWS 成本?

使用 AWS 资源标签。使用 projectteamenvironmentcost-center 标签标记每个资源。在计费控制台中启用成本分配标签。创建按标签分组的 Cost Explorer 报告,以按项目查看支出。使用标记未标记资源的 AWS Config 规则强制执行标记。

迁移到容器是否更具成本效益?

与每台服务器运行一个应用程序相比,容器将资源利用率提高了 30-50%。 ECS Fargate 和 EKS 简化了容器管理,但增加了按任务定价。对于大多数中小型企业来说,带有 Docker Compose 的 EC2 提供了简单性和成本的最佳平衡。请参阅我们的Docker 部署指南 了解实施细节。


接下来会发生什么

成本优化是一项持续的实践,而不是一次性的项目。安排每月成本审查并将成本监控集成到您的生产警报 设置中。有关完整的基础架构策略,请参阅我们的小型企业 DevOps 指南

联系 ECOSIRE 获取 AWS 成本优化咨询,或探索我们的 Odoo 支持服务 以获取具有内置成本优化的托管基础​​设施。


由 ECOSIRE 发布——帮助企业优化云基础设施支出。

E

作者

ECOSIRE Research and Development Team

在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。

通过 WhatsApp 聊天