我需要对这种部分无服务器架构设计的反馈

nov*_*int 5 amazon-s3 amazon-ec2 amazon-web-services aws-lambda static-generator

带有 React 前端的半无服务器博客

我想利用 AWS 技术在 AWS 上的 nodeJS 中托管此类可扩展的博客或应用程序。这里的想法是拥有一个小型 EC2 服务器,它不负责为网站提供服务,而只负责运行 CMS/管理面板。虽然这些操作也可以是无服务器的,但我认为拥有一个专用的小型 VM EC2 实例会更高效,并且可以更好地与现有框架等配合使用。

在我上面的图表中,您可以看到有两种类型的用户audiencesadmin/writers. 管理员 CRUD 操作也会导致 lambda 运行。Lambda 在 Admin 更改后生成静态站点,并将其交付给 S3。用户被定向到 S3 中托管的静态站点。只有管​​理员/作者才能访问站点的服务器连接部分。

我认为对于一个可扩展性极强且相对便宜的站点来说,这是一个很好的设计,只要面向用户的一面都是静态的。另一种方法是 CDN,但随后我必须处理缓存失效问题、更新速度较慢的站点以及更大的服务器。

这对我来说似乎是双赢的。回馈?

小智 0

这应该是评论而不是答案,但由于我没有足够的积分......

此架构还有一些其他考虑因素。Lambda 函数非常适合水平扩展微服务,每个小函数都可以并行执行数十或数百次。静态站点的生成通常是单线程操作,因此您可能看不到预期的收益,您还需要观察超时时间(当前最多 300 秒)并确保可以在该时间内生成站点。当然,如果您不运行 Lambda 代码,则不会收取费用。

对于您的管理前端,我建议使用 ElasticBeanstalk,即使您将其固定在单个实例上,它也会为您提供许多出色的功能,例如滚动更新。

祝项目顺利。