首页 > 解决方案 > 我可以在 AWS S3 托管网站中包含 Routes 和 Node_modules

问题描述

我正在考虑使用 AWS 来托管我的个人业务网站。该网站很简单,(目前)不需要服务器。我的网站是用 React 编写的,并且确实安装了一些 npm 包,并且还使用路由器导航到我网站上的其他页面。

S3 存储桶是否会托管具有路由和依赖项的网站?如果我的网站增长并且我最终需要一台服务器怎么办。我能否将 EC2 实例附加到我的站点?

标签: amazon-web-servicesamazon-s3

解决方案


选项 1:查看AWS Amplfiy,因为它可以为您管理选项 2 中的所有内容,并且非常容易上手。我将它用于几个网站。如果您已经拥有 AWS 账户,通常只需几分钟即可开始工作。

简而言之,您可以从 AWS 控制台连接来自 GitHub、BitBucket、GitLab 和 AWS CodeCommit 的应用程序。它通常会自动检测您拥有的项目类型。

Amplify 将创建一个托管 S3 存储桶并为您设置 CloudFront。它还向 GIT 注册了一个 webwook,因此每当您在特定分支上提交时,都会重新构建并发布您的站点。你甚至可以有多个分支,所以 www.acme.com -> master 和 working.acme.com -> branch

选项 2:

S3 <--- CloudFront <-- Lambda@Edge <-- 浏览器 EC2 <--|

  • 将您的文件存储在 S3 中
  • 使用 CloudFront(内容交付网络)
  • 创建一个 Lambda@Edge 来处理您的路由。

然后在将来您可以使用 EC2 服务器。

查看 Lambda@Edge Multiple Cloudfront Origins with Behavior Path Redirection的答案


推荐阅读