AWS 简单无服务器架构建议



我正在学习网站结构,我对概念和设计的数量感到困惑。

这就是我想做的:

(使用 AWS(

图片:AWS 无服务器简单结构

路线 53:DNS

CloudFront: CDN

website1.com/styles.css   ->  S3 /website1/styles.css
website1.com/robots.txt   ->  S3 /website1/robots.txt
website1.com/favicon.ico  ->  S3 /website1/favicon.ico
website1.com/             -> API Gateway
website1.com/api/*        -> API Gateway

S3:我保存的地方:syles.css,robots.txt和favicon.ico

API 网关:请求处理程序。

website1.com/       ->  Lambda (node.js)
website1.com/api/*  ->  Lambda (API)

Lambda (node.js(:我想让无服务器服务器端渲染 React App with Node。此应用调用 API 以获取一些数据。

Lambda (API(:API

RDS: PostgreSQL

问题

1( 我的结构是否正确?或者还有其他更好的网站服务器设计?(我想节省服务器端渲染(

2( 我可以在此结构中添加另一个网站吗?或者我需要为 AWS 的每个元素生成一个新实例?

您可以使用此设置,但是...我不建议将 API 网关用于服务器端呈现的网站。问题是,现在几乎没有人在编写服务器端渲染的网站而不使用已建立的框架来选择他们的语言,并且真的没有使用这些框架的好方法,例如。ExpressJS 在 Node 的情况下,使用 Lambda。在大多数情况下,您需要编写自己的代码,这相当于重新发明轮子,更不用说容易出错了。

Lambda 函数应该是一小块代码,以实现可维护性并减少其执行时间,这等于降低成本。另请注意,lambda 函数大小有限制。

常见设置是将 S3 和 API 网关上托管的 SPA 与 Lambda 用于后端逻辑。如果您需要使用服务器端渲染,那么最好使用其他服务,它允许您使用上述框架以"旧"方式(EC2,Beanstalk,ECS,EKS...(编写后端应用程序。

是的,您可以在此设置中包含任意数量的网站。您可以直接在 API 网关上基于 URL 执行路由,为不同的网站提供单独的资源,也可以在 CloudFront 上执行路由,每个网站有一个 API 网关。

最新更新