问题描述
假设我在私有子网中有一个 ec2,可以通过 NAT 网关访问互联网,并且我有 VPC endpoints (PrivateLink) 用于 DynamoDB 或 SNS 等 AWS 服务。如果我的 ec2 实例需要与那些服务交互,它会使用私有链接还是 NAT 网关?换句话说,流量会在公共互联网上还是会留在 VPC 内?
解决方法
换句话说,流量会在公共互联网上还是会留在 VPC 内?
它将转到接口端点。原因是当有不止一种选择来引导流量时,aws 会选择 more specific(最长前缀匹配)路由。因此,如果 VPC 必须在 NAT 的 0.0.0.0/0
和接口端点地址之间做出决定,则接口端点将被优先考虑。
您可以自己轻松检查。将接口端点放在您的私有子网中,该子网具有到 NAT 的路由。然后使用其安全组屏蔽所有传入接口端点的流量。您应该看到的是,即使有 NAT 网关,您也无法访问接口端点的服务。