我的 VPC 在不同的可用区中有三个子网,每个子网都有一个接口 VPC 终端节点。默认情况下,VPC 终端节点有 4 个 DNS 主机名:
- 区域 DNS 主机名,例如
vpce-x.ec2.us-east-1.vpce.amazonaws.com
. - 三个特定于端点的区域 DNS 主机名,例如
vpce-x-us-east-1a.ec2.us-east-1.vpce.amazonaws.com
.
据我了解,区域 DNS 主机名将指向任意端点。有没有办法配置一个始终解析到同一子网中的端点的单个 DNS 主机名,以减少可用区间的流量?我不确定延迟路由策略是否适用于此用例,或者是否有其他解决方案。还是区域 DNS 主机名已经做了类似的事情?
这里的用例是一个应用程序,它通过 VPC 实例端点向外部服务发送大量流量 - 以至于数据传输会产生大量成本。避免 VPC 端点的可用区间流量将减少一部分数据传输成本。
如果您使用区域 DNS 名称,那么您正在与该区域通信。从文档:
因此,如果您有一个实例在 us-east-1a 中运行,请告诉它使用 east-1a 端点,所有通信都将在 AZ 内。您应该能够通过使用代码中的环境变量、CloudFormation 中的映射或 Parameter Store 查找来更改 DNS 名称。请记住,这不会对失败有弹性。
除非您正在执行需要极低延迟的 HPC 事情,或者跨区域传输大量数据,否则我只会使用区域(例如 us-east-1)名称。我的期望是它会使用一些明智的东西。
您可以通过执行一些操作
host REGIONALDNS
并检查它返回给您的 IP 并与区域结果进行比较来进行验证。