带有 NAT 网关和 VPC PrivateLink 的 AWS 私有子网:将使用哪一个?

AWS private subnet with NAT gateway and VPC PrivateLink: which one will be used?

假设我在私有子网中有一个 ec2,可以通过 NAT 网关访问互联网,并且我有 VPC endpoints (PrivateLink) AWS 服务,如 DynamoDB 或 SNS。如果我的 ec2 实例需要与那些服务交互,它将使用私有 link 还是 NAT 网关?换句话说,流量将继续 public 互联网还是留在 VPC 内?

In other words, the traffic will go on the public internet or will stay inside the VPC?

它将转到接口端点。原因是 aws 选择 more specific (最长前缀匹配)路由时有多个选择将流量定向到哪里。因此,如果 VPC 必须在 NAT 和接口端点地址 0.0.0.0/0 之间做出决定,接口端点将被优先考虑。

您可以自己轻松检查。将接口端点放在具有 NAT 路由的私有子网中。然后使用其安全组将所有传入接口端点的流量屏蔽掉。你应该看到你无法访问接口端点的服务,即使有 NAT 网关。