性能与资源优化

在 AWS 上部署应用

Dunieski Otano

Amazon Web Services Solutions Architect

又慢又贵

  • 流量高峰时应用变慢
  • 同月 Lambda 账单飙升
  • 调优可更快也更省钱

速度与成本仪表:函数既慢又贵,指向优化

在 AWS 上部署应用

并发:成本 vs 冷启动


Reserved:限额与保护

  • 为函数设上限并保障容量
  • 成本最低,但无助于冷启动

Provisioned:为"热身"付费

  • 预热实例,避免冷启动
  • 成本更高;仅在延迟关键处使用
在 AWS 上部署应用

用时长-成本曲线定内存

内存增大时的时长-成本曲线:时长先降后趋稳,总成本呈 U 形,标出最省钱的最佳内存点

  • 更多内存 = 更多 CPU = 更短时长
  • 成本 = 内存单价 × 时长
  • 最便宜点常在中间
  • 多个规格压测,再择优
在 AWS 上部署应用

应用级缓存

  • 在执行上下文内复用工作
  • 热 Lambda 会保留全局变量
  • 缓存配置、客户端与热点查询
  • 用 ElastiCache 跨实例共享缓存

Lambda 执行上下文缓存:全局客户端对象在热调用间复用,ElastiCache 集群在多实例间共享热点数据

在 AWS 上部署应用

CloudFront 边缘缓存

  • CloudFront:在边缘缓存响应
  • 重复请求不再打到后端
  • 缓存键可含headers、query strings、cookies
  • 静态与可缓存内容可免费扩展

CloudFront 边缘缓存:全球边缘节点向近端用户提供缓存响应,无需访问后端;缓存键含请求头与查询串配置

在 AWS 上部署应用

选对缓存层

三层缓存:边缘层 CloudFront 处理广泛共享的静态内容;应用层内存缓存保存每实例热点对象;数据层 ElastiCache 或 DAX 处理高频读取共享

  • 边缘(CloudFront):静态、广泛共享内容
  • 应用(内存):每实例热点对象
  • 数据(ElastiCache/DAX):共享热点读
  • 分层组合;各自降低不同成本
在 AWS 上部署应用

整合优化策略

  • 依据时长-成本曲线定内存
  • 仅在延迟重要处加预置并发
  • 在边缘、应用、数据层缓存
  • 先度量,改一项,再度量

优化总结:用于定内存的时长-成本曲线、预置并发决策、三层缓存图,以及"度量-变更-再度量"的迭代循环

在 AWS 上部署应用

让我们一起练习吧!

在 AWS 上部署应用

Preparing Video For Download...