如何在两个 EC2 服务器上部署单个 Web 应用程序(nodejs+reactjs)以实现负载平衡和自动缩放?

How to deploy a single web application(nodejs+reactjs) on two EC2 server for load balancing and autoscaling?

我的客户要求我在两台 EC2 服务器上部署 Web 应用程序(nodejs 后端+reactjs 前端)。为了实现良好的负载均衡和基于流量的自动缩放, 注意:客户端不想选择高版本的单服务器

假设前端是 SPA(浏览器生成的 HTML),然后在 S3 + CloudFront

上托管 React 部分

关于在 EC2 上部署节点:

使用CloudFormation设置基础设施(EC2机器、ASG和负载均衡器)

然后使用CodeDeploy部署/更新应用程序

这里是 post 使用 CodeDeploy 部署 Node.js:https://hub.packtpub.com/deploy-nodejs-apps-aws-code-deploy/

您可能会发现它更容易使用 Elastic Beanstalk 不过

有多种方法可以针对此问题实现令人满意的架构。如果我们正在研究使用 EC2 实例,我们可以执行以下操作:

将您的后端部署到 Auto Scaling Group 的目标组中,并在其前面放置一个应用程序负载均衡器。实例可以自动注册到负载均衡器,负载均衡器可以在它们之间分配流量。

将您的静态前端应用程序部署到 S3 bucket,如有必要,使用 CloudFront 分发进行缓存和更快的加载。