我的客户要求我在两个EC2服务器上部署web应用程序(nodejs后端+react前端)。为了实现良好的负载平衡和基于流量的自动缩放,注意:客户端不希望使用高版本的单个服务器
对于这个问题,有多种方法可以实现令人满意的体系结构。如果我们正在考虑使用EC2实例,我们可以这样做:
将后端部署到自动伸缩组的目标组中,并在其前面放置应用程序负载均衡器。实例可以自动注册到负载均衡器,负载均衡器可以在它们之间分配流量。
将静态前端应用程序部署到S3桶中,如果有必要,使用CloudFront分发版进行缓存和更快的加载。
假设前端是一个SPA(浏览器生成的HTML),那么在S3 + CloudFront上托管React部分
关于在EC2部署Node:
使用CloudFormation来设置基础设施(EC2机器、ASG和负载平衡器)
然后使用CodeDeploy来部署/更新应用程序
这是一篇关于使用CodeDeploy部署Node.js的文章:https://hub.packtpub.com/deploy-nodejs-apps-aws-code-deploy/
您可能会发现使用Elastic Beanstalk更容易,尽管