如何在 cloudfront、aws 路由 S3、EC2

how to route S3, EC2 at cloudfront, aws

我的 S3(前端代码)和 EC2(后端代码)都链接到 'example.com' 我在这里喜欢做的是引导用户查看存储在 S3 中的页面,除非他们在浏览器上输入“example.com/api/”。 换句话说,'example.com/api/' 用于服务器访问,其他路由用于 React 应用程序访问。

我应该在 AWS 中使用哪种服务? CloudFront、Route53、负载均衡。我感到很困惑。谢谢。

您可以使用 Route53 创建一个子域,比如 api.example.com,这里有一个 https://aws.amazon.com/premiumsupport/knowledge-center/create-subdomain-route-53/

的文档

要为新创建的子域路由流量,请阅读此文档https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-routing-traffic-for-subdomains.html

TLDR; 为您的域创建单个 CloudFront 分配,为您需要支持的每个路径使用单独的缓存行为。您可以轻松添加其他应用程序、控制缓存或编写边缘函数(使用 Lambda@Edge 或 CloudFront Functions)以进行您可能需要的任何进一步自定义。

详细信息:CloudFront 允许您配置多个来源(例如 S3、EC2、API 网关、ELB、自定义 URL 等),然后创建缓存将流量引导至适当来源的行为(路由)。

在您的情况下,您将创建 /api/* 的缓存行为以指向您的 EC2 来源,并且默认缓存行为(将其视为您的后备路由)将指向所有的 S3 来源不以 /api/

开头的请求