4

Half serverless blog with react front end我需要在这部分无服务器架构设计

我想举办这种可伸缩的博客或应用上的NodeJS AWS利用AWS技术的反馈。这里的想法是有一个小型EC2服务器,不负责为网站提供服务,但仅用于运行CMS /管理面板。虽然这些操作也可以是无服务器的,但我认为拥有专用的小型VM EC2实例可以更高效,并且可以更好地利用现有框架等。

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

我认为这是一个很好的设计,只要面向用户的一面都是静态的,就可以实现极具扩展性和相对便宜的网站。另一种替代方案是CDN,但是我必须处理缓存失效问题,更新速度较慢的站点以及较大的服务器。

这对我来说似乎是一个双赢。反馈?

+2

这种设计没有任何问题。您基本上构建了一个在EC2上运行的静态网站管理员,以及一个在Lambda上运行的静态网站生成器。你也可以在EC2上运行整个事情。你是从头开始构建或使用现有的静态网站工具?您可能需要查看一个现有的静态网站生成器,它可以像这样在Lambda上运行:https://github.com/ryansb/hugo-lambda –

+1

正如Mark B所说,您基本上正在构建一个简单的静态网站,定制,但不支持任何后端逻辑。只要你关心的是一些大多是静态的内容页面,那么设计就可以。 –

+0

您的网站内容更新频率如何? –

回答

0

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

有几个其他考虑这个建筑。 Lambda函数非常适合水平扩展微服务,每个小函数可以并行执行数十次或数百次。生成静态网站通常是单线程操作,因此您可能看不到预期的收益,您还需要观察超时期限(目前最长为300秒),并确保您可以在此时生成网站。当然,如果你没有运行Lambda代码,你不会收取费用。

对于您的管理员前端,我建议使用ElasticBeanstalk,即使您在单个实例中固定它,它也会为您提供诸如滚动更新等许多优秀功能。

祝你好运。