我们正在从 S3 存储桶(位于孟买)向单个区域(印度)的用户提供视频。我们预计数千名用户仅从印度访问这些文件。拥有 CloudFront 发行版是否值得?如果我们使用 CloudFront,延迟会减少吗?如果我们不使用 CloudFront,S3 可以处理带宽吗?
谢谢您的帮助。
答案1
从性能角度来看,是的,它可能是有用的。
CloudFront 目前在印度有 5 个边缘站点(钦奈(2)、新德里(1)和孟买(2)),因此这表明使用 CloudFront 可以实现更低的延迟,因为您的内容可能更接近用户(取决于他们的地理分布)...
但是,从印度边缘站点下载 CloudFront 的费用为每 GB 0.17 美元,而直接从孟买 S3 下载的费用为每 GB 0.1093 美元。(使用 CloudFront + S3 时,不收取 S3 带宽费用)。
所以,是的,“有用”,但我们无法说它是否足够有用,以证明在这个特定地理区域的成本是合理的。
S3 具有最佳实践指南对于预期请求率超过每秒 800(峰值)或 300(持续)GET
请求(当未使用 CloudFront 时)的存储桶。服务将超出这些值,但遵循指南有助于更有效地扩展。(热键和索引热点不像分布良好的键那样容易扩展)。对于低于 100 req/s 的请求率,无需特殊考虑。
另一个选择是S3 传输加速,它选择性地通过 AWS“边缘网络”(即 CloudFront交通网络),无需任何实际缓存。在孟买,这是 0.04 美元/GB + 0.1093 美元/GB 的下载费用。这里的优势在于,浏览器可能会连接到边缘位置的服务器,该服务器将连接从那里代理回 S3。这会导致流量在 AWS 网络上传输尽可能远的距离,然后再移交给公共互联网,这可以通过优化传输和处理更靠近查看器的中间位置的数据包丢失来显著缩短传输时间。当使用 S3 传输加速时,CloudFront 用于将请求发送到最近边缘的 DNS 逻辑将用于确定将给定查看器连接回 S3 区域的最佳方式 - 因此它可能会将用户直接连接到 S3(在这种情况下,您无需为该请求的加速功能支付 0.04 美元/GB 的带宽费用),或者它可能会通过边缘网络路由它(在这种情况下,您将需要支付)。这里的理念是,该功能会根据请求者相对于存储桶的地理位置,自动绕过不太可能有帮助的请求。在存储桶上启用此功能时,您还会将存储桶端点更改为bucket-name.s3-accelerate.amazonaws.com
。它仅支持 REST 接口,不支持网站托管功能,但如果您不使用重定向和索引文档等功能,这没问题。考虑到您的地理位置和那里带宽定价的特殊性,这可能是一个不错的起点。