【发布时间】:2016-12-09 23:34:50
【问题描述】:
我想利用 AWS 技术在 AWS 上的 nodeJS 中托管一个可扩展的博客或此类应用程序。这里的想法是拥有一个小型 EC2 服务器,它不负责为网站提供服务,而只负责运行 CMS/管理面板。虽然这些操作也可以是无服务器的,但我认为拥有一个专用的小型 VM EC2 实例可能会更高效,并且可以更好地与现有框架等配合使用。
在我上面的图表中,您可以看到audiences 和admin/writers 两种类型的用户。管理员 CRUD 操作也会导致 lambda 运行。 Lambda 在 Admin 更改后生成静态站点,并将其传送到 S3。用户被定向到托管在 S3 中的静态站点。只有管理员/作者可以访问网站的服务器连接部分。
我认为对于一个可扩展性极强且相对便宜的网站来说,这是一个很好的设计,只要面向用户的一面都是静态的。对此的替代方案是 CDN,但随后我必须处理缓存失效问题、更新速度较慢的站点以及更大的服务器。
这对我来说似乎是双赢的。反馈?
【问题讨论】:
-
这个设计没有错。您基本上是在构建一个在 EC2 上运行的静态站点管理员,以及一个在 Lambda 上运行的静态站点生成器。您也可以在 EC2 上运行整个程序。您是从头开始构建这一切,还是使用现有的静态站点工具?您可能想查看在 Lambda 上运行的现有静态站点生成器,如下所示:github.com/ryansb/hugo-lambda
-
正如 Mark B 所说,您实际上是在构建一个简单的静态站点,该站点恰好允许进行一些自定义,但不支持任何后端逻辑。只要您关心的只是一些主要是静态内容的页面,那么设计就可以了。
-
您的网站内容多久更新一次?
-
@MarkB 感谢您推荐 hugo-lambda,非常有帮助。我也在考虑使用静态站点生成器。我可以把它放在 EC2 上。我不确定该网站会有多大。我认为如果网站变大,我应该把它放在 lambda 上,让 lambda 完成繁重的工作和扩展。
-
mike 是的,网站的观众不会触及后端逻辑。只是带有图片和视频的静态页面。 @harshal 我还不知道具体多少,但我认为每天不超过 1000 个。
标签: amazon-web-services amazon-s3 amazon-ec2 aws-lambda static-generator