【问题标题】:How to route an API request go through a proxy如何通过代理路由 API 请求
【发布时间】:2022-02-17 21:07:14
【问题描述】:

我们有 10 个实例,我们使用 AWS ECS 和 ELB 部署了应用程序

出于安全原因,API 只允许通过特定 IP 列入白名单的 IP 地址进行请求。

所以我们打算通过代理传递请求

如何通过代理路由 API 请求

我们正在使用 nginx

通过代理路由 API 请求的任何特定方式都会有帮助

【问题讨论】:

  • 当您说API时,它是您拥有的API吗?它是您的应用程序必须从您在 ECS 上运行的后端实例中使用的第 3 方 API 吗?
  • 您有 NAT 网关吗?如果是,将其 IP 列入白名单是最简单的。
  • @AllanChua 这是我的应用程序必须从运行在 ECS 上的后端实例中使用的第 3 方 API yodlee

标签: amazon-web-services nginx proxy amazon-elb yodlee


【解决方案1】:

您不需要 NGINX 作为此用例的代理,我建议考虑使用 AWS NAT 网关。 NAT 网关是一项高度可用的 AWS 托管服务,可让您轻松从 Amazon Virtual Private Cloud (Amazon VPC) 中的私有子网内的实例连接到 Internet。它是为所有子网的出站流量提供静态 IP 的理想场所。

为了为集群的出站流量提供具有静态 IP(弹性 IP)的 NAT 网关。这将允许您在 ECS 集群的私有子网内运行的不同任务看起来像来自外部 POV 的单个请求实体(在您的情况下,第 3 方 API 是外部)。为此,您必须:

  • 创建 2 个路由表(1 个用于私有子网,1 个用于公共子网)
  • 公共子网上的 Internet 网关
  • 弹性 IP 地址
  • 创建一个 NAT 网关并将弹性 IP 附加到它(这将是列入第 3 方 API 的白名单的 IP)
  • 确保您的所有任务都在 VPC 的私有子网内运行
  • 在路由表中为您的private subnets 添加一条规则,将出站0.0.0.0/0 重定向到NAT Gateway
  • 在路由表中为您的 public subnets 添加一条规则,将出站流量 0.0.0.0/0 重定向到互联网网关。

【讨论】:

    【解决方案2】:

    您应该考虑改用 NAT 网关。我假设您已经将所有容器都放在一个 VPC 中,因此您可以在此 VPC 本身内创建一个新的 NAT 网关。

    您可以参考下面的文章来做到这一点:

    1. https://docs.aws.amazon.com/appstream2/latest/developerguide/add-nat-gateway-existing-vpc.html

    2. https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html

    注意:NAT 网关有与之相关的价格。

    如果需要,您也可以在 lambda 上使用 NAT 网关提供的弹性 IP。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2019-08-02
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 2011-08-30
      • 2022-06-23
      相关资源
      最近更新 更多