我的 EC2 有一个 VPC,每个可用区都有私有子网。在 VPC 中,我的 ElastiCache (Redis) 实例也有私有子网。设置就像这个。
我还有安全组和 NACL 来控制对子网中资源的访问。
当我想从 EC2 实例之一上运行的程序访问 ElastiCache 集群时,我必须指定集群端点 - 例如:
Primary Endpoint: CLUSTER_NAME.uepak9.ng.0001.euw1.cache.amazonaws.com:6379
Reader Endpoint: CLUSTER_NAME-ro.uepak9.ng.0001.euw1.cache.amazonaws.com:6379
我知道使用 Reader 端点可以在读取器实例之间实现负载平衡,但由于所有资源都位于同一 VPC 中(并且 ElastiCache 实例基于 EC2),因此“理论上”是可能的(但不是最佳实践)直接通过其私有 IP 访问 ElastiCache 实例。
从我所看到的文档来看,没有关于 ElastiCache 端点如何工作的更详细的解释。
我
假设
AWS 在网络负载均衡器上指向主端点的 DNS 记录(因为 Redis 使用 TCP 连接),并在另一个网络负载均衡器上为读取器端点指向一条记录。我假设这些负载均衡器随后指向 ElastiCache 实例。但所有这一切都只是一组假设。
通过读取器端点的连接如何工作?
主要/读取器终端节点的 DNS 记录是否存储在 VPC 外部的中央 AWS DNS 服务器中?
如果 VPC 包含 ElastiCache 集群,VPC 的 DNS(位于
*.*.*.2
)是否有直接指向私有 IP 的记录 - 以便 EC2 和 ElastiCache 之间的流量可以保留在 VPC 内部?
从 EC2 到 ElastiCache 的流量是否通过公共互联网,还是始终保留在 AWS 基础设施内?
。当您启动它时,您可以创建一个使用与 Elastic Cache 相同的 VPC 的环境。之后,您可以使用sudo yum install bind-utils
或其他网络工具来查看主站或读卡器的主机如何解析为实际的IP地址。例如,您可以使用
dig
,它会给您一个 dns 查找链。