我有一个 React 前端和 Flask 后端,我想用 ECS 部署它们。我想让反应应用程序面向公众,并将烧瓶服务器隐藏起来,无法从外界访问。
根据我的阅读,该方法应该如下:
- 为 Flask 服务器创建公共子网和私有子网,并在公共子网上创建 NAT 网关。
- 在公共子节点中部署 React 应用程序,在私有子节点上部署服务器。
现在这是我感到困惑的地方:
- 如何向外界公开反应应用程序?我应该使用 Internet 网关还是 ELB/ALB?有什么区别?
- 当服务器只有私有IP时,如何让React应用程序与服务器通信?服务发现?如果是这样,我应该如何使用 docker 将服务器的服务名称注入到 React 应用程序中?
- 如何向外界公开反应应用程序?我应该使用 Internet 网关还是 ELB/ALB?有什么区别?
如果反应前端是静态网站,那么最好使用S3 + 云前用于托管它。但如果您想使用 ECS,那么通常是使用面向互联网的负载均衡器。
ELB is 第一代负载均衡器。现在你应该将 ALB 与 is 一起使用第二代平衡器比 ELB 提供更多功能,例如从 http 重定向到 https。
Internet 网关适用于您的 VPC,仅当您使用自定义目标 VPC 时才需要它。如果你使用默认专有网络,那么你就不用担心了。
- 当服务器只有私有IP时,如何让React应用程序与服务器通信?服务发现?如果是这样,我应该如何使用 docker 将服务器的服务名称注入到 React 应用程序中?
您不能使用私有 IP 也不能使用服务发现。您的前端将在您的客户端浏览器中执行,因此它必须使用互联网与您的后端交谈。这意味着您需要使用公共 IP(而不是私有 IP)公开 Flask API。
这也可以使用公共 ALB 来完成。你可以使用same ALB至于前端。所以你会有以下设置:
|---> Target Group 1 ---> ECS Services for React frontend (private subnet)
Client ---> ALB (public subnet) ---|
|---> Target Group 2 ---> ECS Service for Flask (private subnet)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)