AWS:使用 CloudFront 处理 API 请求而不是直接将其路由到 ALB 有何意义?

bli*_*itz 1 amazon-s3 amazon-web-services amazon-cloudfront amazon-alb

我有一个负载均衡器 (ALB) 正在处理我的应用程序的 API 请求 (alb.domain.com) 。我还有一个 S3 存储桶,我的静态站点通过 CloudFront (domain.com) 提供服务。我已经配置了一个发行版,以便 /api 转到 ALB,其余部分转到 S3,一切正常。不过,我也可以将 API 请求直接路由到 ALB (alb.domain.com/api),而不是将 API 请求路由到 CloudFront (domain.com/api),这也可以正常工作。我不需要缓存我的 API 请求,所以我无论如何都在发行版上禁用了它。鉴于我 (1) 在路由中引入额外的连接以及 (2) 现在根据 CloudFront 定价计算我的请求,那么我通过 CloudFront 执行请求的意义何在。仅将请求直接路由到 ALB 并仅使用 CloudFront 提供静态文件是否有任何缺点?

Chr*_*ams 5

在您的场景(一般情况下)中使用 CloudFront 有很多好处。

首先,通过 CloudFront 进行路由,给人的印象是这是一个单一域,这消除了CORS的实现,有助于降低任何安全配置(例如CSP)的复杂性。此外,如果需要,您可以缓存任何基于静态的请求,或者将来不经常更改的请求。

您还可以获得访问边缘网络进行路由的好处,这对于远离该区域的客户来说是有利的。这意味着用户将到达距离他们最近的边缘位置,然后该边缘位置将通过私有 AWS 网络路由并与源建立连接(这比遍历公共互联网更快)。

此外,在边缘进行安全评估,WAFLambda@Edge都可以在 AWS Edge 基础设施上更接近用户而不是您自己的资源进行评估。