首页 > 解决方案 > AWS 3 层架构查询

问题描述

在这里需要一些认真的帮助,非常感谢!

前几天我提出了一个类似的问题,没有得到我想要的答案。所以重构了整个问题

我需要在 AWS 上部署一个可扩展的 3 层 Web 应用程序,我对设计架构的最佳实践有一些疑问/困难。

注意:据我了解,在前端服务器向用户提供 html/css/js 之后,所有后端请求都是通过浏览器请求的。

这是我在网上找到的解决方案:

在此处输入图像描述

问题


正确的解决方案 IMO(但它不提供对来自外部世界的后端 API 的限制):

在此处输入图像描述

这绝对不会破坏任何逻辑/概念,但可以访问世界以访问后端 api,如 <domain_name/api>

我被这个设计困住了好几天,我需要将网络应用程序投入生产。我真的很感激帮助。

标签: amazon-web-servicesrestarchitectureamazon-elastic-beanstalkdevops

解决方案


我认为您应该考虑使用 AWS API Gateway 访问私有 EC2 端点,并从 S3 和 CloudFront 运行 react。我没有看到您的架构中调用了这些服务。

以下是 API 网关如何支持私有 EC2 后端的描述。

在 re:Invent 2017 上,我们宣布了私有 VPC 内的端点集成。借助此功能,您现在可以让在 EC2 上运行的后端在您的 VPC 中保持私有,而无需公开访问的 IP 地址或负载均衡器。

请参阅https://aws.amazon.com/blogs/compute/introducing-amazon-api-gateway-private-endpoints/

另请参阅https://aws.amazon.com/api-gateway/

除非您需要在服务器上进行 React 渲染,否则您可以将其作为静态网站从 S3 运行,并从 API 网关调用您的所有应用程序功能。这是在 AWS 上构建 React 应用程序的常用方法。


推荐阅读