问题描述
最近开始考虑在AWS上托管他的SPA Web应用。他已经阅读了很多关于如何在AWS上托管Web应用的不同类型的文章。他已经研究了Lambda、S3静态托管和EC2等。但是他似乎无法弄清楚如何最好地利用AWS和它的服务。
他的Web应用由一个使用Vue.js编写的前端和一个使用Laravel编写的后端API组成。前端和后端是隔离的,所以它们不必放在同一台机器上。所以我想这可能为使用不同的AWS产品带来一些好的机会?数据库只连接到后端API,所以前端是静态的。我也愿意在AWS环境中更换其他类型的数据库,如果那样更适合。但我不知道是否应该将前端和API分开成不同的服务。
提前感谢!
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据AWS的建议,你可以为每个组件使用适当的服务。
例如,将数据库放在RDS上 – 他们有多个选择。使用Fargate和Lambda部署前端。
有两个问题需要考虑:
1. 学习曲线。
熟悉AWS技术,并随着他们对旧版部署进行微小调整的速度保持同步,可能会非常耗时。
另一方面,一旦你成为这些技术的专家,你可以利用它们取得惊人的结果。
- 成本:
在开发过程中,你将主要使用免费层,成本将很低。
一旦进入生产阶段,你必须开始使用“真实”的机器,即使你不这样做,大多数服务也有免费层的到期时间:12个月和/或一定数量的使用量。
在那时,成本开始飙升,从小额变成3位甚至4位数的数字,适用于小型安装。
另一种方法是按照没有AWS的方式进行操作。
你没有给我太多细节,但如果你部署的是一些简单的东西,你可以启动一个EC2实例,安装一个LAMP服务器,并将其用于前端和后端。
然后,你可以使用生命周期管理器每天备份整个机器。
然而,如果你需要大规模扩展,你将不得不从头开始。
所以,你选择什么?
答案取决于你的资源:时间、金钱和人力资源,以及你如何将这个项目从一次性项目发展成为一个长期使用的、需要冗余、负载均衡和动态扩展能力的安装。
你还可以考虑AWS Beanstalk之类的东西,它更容易实现和重新部署,但不像他们的无服务器方法那样动态。