无论用户访问的内容类型如何,将 CloudFront 放在 ALB 前面是不是更好?
Posted
技术标签:
【中文标题】无论用户访问的内容类型如何,将 CloudFront 放在 ALB 前面是不是更好?【英文标题】:Is it better to locate CloudFront in front of ALB regardless of content type a user access?无论用户访问的内容类型如何,将 CloudFront 放在 ALB 前面是否更好? 【发布时间】:2019-09-19 16:09:01 【问题描述】:我想在 AWS 中构建一个 Web/应用程序服务器,我想使用 CloudFront 以低延迟交付内容,并使用 Application Load Balancer (ALB) 来平衡服务器之间的流量。如果需要缓存一些内容,在 ALB 前使用 CloudFront 应该会受益,但如果不是,从性能和成本的角度来看,是否仍然建议在 ALB 前使用 CloudFront?例如,推荐以下两种选择中的哪一种?
无论用户访问什么内容,用户始终通过 CloudFront 访问 ALB。
用户根据访问的内容直接访问 CloudFront 或 ALB。
哪种模式更好?
【问题讨论】:
【参考方案1】:这两个选项都没有错,但在 ALB 前使用 CloudFront 确实提供了一些优势 even for non-cacheable, dynamic content — 包括为远离 ALB 的查看者提供更快的 TLS 协商,以及在 AWS 边缘网络上全局优化请求路由,从靠近观察者的边缘位置,到 ALB 所在的区域。
根据 ALB 的位置和查看器的位置,与 ALB/EC2 定价相比,输出到 Internet 的 CloudFront 带宽最多可以便宜 0.005 美元/GB,或者可以更多...但是带宽来自ALB 到 CloudFront 是免费的,因此您无需支付这两项费用。
【讨论】:
感谢您的回答。当 ALB 和一个查看器在同一个区域时怎么样?在这种情况下,(Viewer -> CF) 和 (CF -> ALB) 将同时收费,对吗?这样它的成本就会更高。 查看者的位置无关紧要。从 EC2 (ALB) 到 CloudFront 的带宽费用为 0 美元。 你的意思是 alb -> cf 是免费的,但我说的是 cf -> alb。谢谢 啊,是的...cf -> 北美和欧盟的 alb 流量为 0.02 美元/GB,其他地方更高。 @Michael-sqlbot 在不涉及 TLS 的情况下,与通过 Internet 直接访问 ALB 相比,通过 CF -> ALB 是否有延迟增益?以上是关于无论用户访问的内容类型如何,将 CloudFront 放在 ALB 前面是不是更好?的主要内容,如果未能解决你的问题,请参考以下文章