如何在云端路由 S3、EC2、aws

Posted

技术标签:

【中文标题】如何在云端路由 S3、EC2、aws【英文标题】:how to route S3, EC2 at cloudfront, aws 【发布时间】:2021-10-25 17:44:31 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

详细信息:CloudFront 允许您配置多个源(例如 S3、EC2、API 网关、ELB、自定义 URL 等),然后创建将流量定向到适当的来源。

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

【讨论】:

【参考方案2】:

您可以使用 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

【讨论】:

以上是关于如何在云端路由 S3、EC2、aws的主要内容,如果未能解决你的问题,请参考以下文章

如何将 S3 用作静态网页和 EC2 作为 REST API 一起使用? (AWS)

如何在AWS中将Windows EC2实例复制到S3存储桶?

AWS S3 存储桶策略:如何授予对 EC2 实例的访问权限?

如何使用 AWS CodeDeploy/CodePipeline/S3 将 Gitlab-Ci 部署到 EC2

如何在 aws s3 存储桶和云端执行从非 www 到 www 的 301 重定向

在 AWS 上跨 EC2 集群提供图像的最佳方式是啥?