将 public 流量路由到 VPC

Route public traffic to VPC

我在 VPC 上有一个 Aurora 数据库。今天我需要通过 Lambda 连接到那个数据库。不是真正的问题,除了我需要在那个 Lambda 中访问互联网,所以我必须设置以下内容:

  1. 我为 public NAT 添加了一个新子网。
  2. 我添加了一个 NAT 网关并分配给了一个新的 EIP 和新的子网。
  3. 我添加了一条新路由 table,将所有流量路由到 igw,并将 table 与我在步骤 1 中创建的新子网相关联。
  4. 我修改了 Main 路由 table 并将所有流量路由到 NAT。

这让我可以在我的 Lambda 中访问互联网,并且通过 运行 VPC 上的 Lambda,我还可以访问我的 Aurora 数据库。

但是,我现在已经失去 public 通过 MySQL Workbench 访问此数据库的权限。

我需要配置什么才能将 public 流量路由回 VPC?

您之前可以从笔记本电脑连接到 Amazon Aurora 数据库这一事实表明 Aurora 运行 在 Public 子网 中。即,具有将 Internet 绑定流量直接发送到 Internet 网关的路由 Table 的子网。

您提到您修改了 Main 路由 table。此路由 table 可能与您的 Public 子网(Aurora 所在的位置)相关联,并且它之前被配置为将流量发送到 Internet 网关。但是,可能已修改 以将流量发送到 NAT 网关。因此,子网实际上 更改为私有子网 (没有指向互联网网关的路由 Table 条目)。

如果您确实希望您的数据库位于 public 子网中,则配置为:

  • 一个 public 子网,其中包含 Lambda 函数连接到的 Aurora 数据库
  • A 路由 Table 与将 Internet 绑定流量 (0.0.0.0/0) 路由到 Internet 网关的子网关联
  • 可能 额外的子网 为 Aurora 和 Lambda 提供高可用性

不需要私有子网,因为您希望 Aurora 在 public 子网中。

一个更安全的选项将是:

  • 一个 public 子网,带有 跳转框 EC2 实例和 Lambda 连接
  • 带有 Aurora 的私有子网

要从笔记本电脑连接到 Aurora,您可以通过 SSH 连接到 Jump Box 并使用 port forwarding 访问 Aurora 数据库。这样,数据库就不会暴露在互联网上。

public 子网的路由 table 与私有子网不同(因此它们 private/public)。