我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
利用 Amazon CloudFront 功能来优化您的 亚马逊云科技 架构的成本
使用 CloudFront 处理所有内容,包括动态内容
假设您通过直接从
如果您在 亚马逊云科技 上托管应用程序时使用第三方 CDN,则应注意,从数据传输的成本角度来看,这可能是一种反模式。让我们了解一下原因——假设您在 亚马逊云科技 上的应用程序
图 1:内容分发网络的数据流架构
使用 CloudFront 地理限制限制向不需要的区域提供内容
有害和恶意流量可能导致您的资源负载增加,消耗带宽,并增加您的 亚马逊云科技 成本。在不必要的流量到达您的其他资源之前将其限制在边缘可以帮助您节省成本。例如,假设你不希望来自特定国家的流量进入你的应用程序。在这种情况下,您可以使用
使用 CloudFront 价格类别作为边缘定位策略的指标
CloudFront
图 2:CloudFront 价格等级选项
实施控制措施以降低 CloudFront 日志记录的成本
您可能需要监控您的内容分发指标,您可以使用 CloudFront 日志来获得这些指标。但是,请注意,实时日志是根据生成的日志行数收取费用的,而生成的日志行数又取决于您的 CloudFront 分配服务的 HTTP 请求数。因此,作为最佳实践,我们建议采取一些预防性控制措施,以限制您的 CloudFront 分配使用
- 指定要记录的请求百分比
- 选择仅记录特定的日志字段
- 仅为特定 CloudFront 缓存行为启用实时日志
您可以在 CloudFront 日志设置上配置所有这些内容,如下图所示。
图 3:CloudFront 日志
优化非 亚马逊云科技 源的缓存命中率
CloudFront 通常用作 亚马逊云科技 外部托管的应用程序的内容分发层。在这些情况下,优化缓存命中率可以帮助节省原始请求提交成本。缓存命中率是边缘站点缓存的内容所提供的请求总数的百分比。利用 CloudFront 的可自定义缓存策略,通过控制缓存密钥来提高缓存命中率。缓存密钥是缓存中每个对象的唯一标识符,它决定查看者请求是否导致缓存命中。当查看者请求生成与先前请求相同的缓存密钥,并且该缓存密钥的对象位于节点的缓存中并且有效时,就会发生缓存命中。提高缓存命中率的一种方法是在缓存密钥中仅包含必要的最低值。通过
图 4:CloudFront 缓存密钥设置
有效利用 CloudFront 压缩数据缓存功能
CloudFront 本身支持请求和缓存以 GZIP 或 Brotli 压缩格式压缩的对象。当查看者的 Web 浏览器或其他客户端支持压缩对象时,CloudFront 会提供压缩对象,并使用 Accept-Encoding HTTP 标头表示他们对压缩对象的支持。对象压缩有助于降低成本,因为您将较少的数据从源服务器传输到互联网。如果 CloudFront
图 5:CloudFront 压缩数据缓存
优化 CloudFront 缓存策略以减少缓存失效情况
如果您必须在文件过期之前将其从 CloudFront 边缘缓存中删除,则可以使该文件在边缘缓存中失效。对于每月请求失效的前 1,000 条路径以外的失效请求,您需要支付费用。因此,重要的是要了解一些一般的最佳实践,以节省失效成本。
我们建议您 使用源服务器发送的
图 6:CloudFront TTL 选项
如果您必须在文件过期之前将其从 CloudFront 边缘缓存中删除,则可以考虑使用文件版本控制来提供具有不同名称的不同版本的文件。版本控制使您能够控制请求返回哪个文件,即使用户在本地或公司缓存代理后面缓存了版本。如果您使文件无效,则用户可能会继续看到旧版本,直到它从这些缓存中过期。版本控制更便宜。对于非 亚马逊云科技 来源,您仍然需要为 CloudFront 付费才能将文件的新版本传输到边缘站点,但您不必为文件失效付费。有关更多信息,请参阅
考虑使用通配符 (*) 路径失效而不是单个文件失效。您需要为每个失效路径付费,但是失效路径可以是单个文件,例如 (/images/logo.jpg) 或多个文件(例如 /images/ *)。包含* 通配符的路径算作一条路径,即使它会导致 CloudFront 使成千上万个文件失效。
通过调整 亚马逊云科技 Lambda 运行时大小来优化 Lambda @Edge 的执行成本
为您的工作负载运行 Lambda @Edge 的成本由三个因素决定:执行次数、
结论
这篇文章解释了一些最佳实践,这些实践可以帮助您利用 A
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。