无论用户访问的内容类型如何,将 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 前面是不是更好?的主要内容,如果未能解决你的问题,请参考以下文章

如何将标签/插槽添加到输入字段 Vue

如何通过预处理主题功能将树枝文件中的块限制为内容类型中的某些页面?

Drupal - 每种有机组内容类型的单独菜单

如何使用用户的表单添加内容类型的内容(帖子)

如何从随机访问文件中搜索和显示内容?

无论数据类型如何,检查给定数据是不是为非空?