amazon-web-services - AWS 3 层架构查询
问题描述
在这里需要一些认真的帮助,非常感谢!
前几天我提出了一个类似的问题,没有得到我想要的答案。所以重构了整个问题
我需要在 AWS 上部署一个可扩展的 3 层 Web 应用程序,我对设计架构的最佳实践有一些疑问/困难。
注意:据我了解,在前端服务器向用户提供 html/css/js 之后,所有后端请求都是通过浏览器请求的。
这是我在网上找到的解决方案:
问题
- 它不会扼杀“所有对后端 api 的请求都是通过客户端的 Web 浏览器发出的(因为前端服务器向用户的浏览器提供 html/js 代码)”的所有逻辑吗?这意味着,请求应该来自浏览器 --> externalLoadbalancer --> 后端 API
- 考虑到这一点,这个路由将如何工作?因为,我们不能使用前端进行路由,可以吗?
正确的解决方案 IMO(但它不提供对来自外部世界的后端 API 的限制):
这绝对不会破坏任何逻辑/概念,但可以访问世界以访问后端 api,如 <domain_name/api>
我被这个设计困住了好几天,我需要将网络应用程序投入生产。我真的很感激帮助。
解决方案
我认为您应该考虑使用 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 应用程序的常用方法。
推荐阅读
- ios - 在 iOS 中调试时推送 viewController 不起作用
- excel - 合并后用工作簿名称命名工作表?
- python - python中声明方法(&self)的问题
- oracle12c - OBIEE 12c。在具有 XML 权限的标题中创建自定义链接
- ssl - 如何识别证书未知错误背后的原因
- javascript - 无法从 Promise 中检索数据
- kubernetes - 如何将 ConfigMap 配置与 Helm NginX Ingress 控制器一起使用 - Kubernetes
- npm - npm prune 移除依赖模块
- django - 无法分配“
class ProductDetailSlugview(ObjectViewedMixin, DetailView): queryset = Product.objects.all() template_name = "products/product_detail.html" def get_context_data(self, *args, **kwargs):
- r - 使用 write.table 创建包含逗号的字段的制表符分隔文件