EC2实例如何连接到同一VPC中的ElastiCache集群?

问题描述 投票:0回答:2

我的 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 基础设施内?

amazon-web-services amazon-ec2 amazon-vpc amazon-elasticache
2个回答
2
投票

您可以解析 VPC 外部的 ElastiCache 主机,您可以通过在 VPC 外部运行 DIG 命令来重现此问题。

这些主机将始终解析为 VPC 内的私有 IP 地址,因此永远不会有任何公共连接。事实上,每个节点都会在您的 VPC 内启动一个 ENI。

将 ElastiCache 集群开放到 0.0.0.0/0 不会将集群暴露到 Internet,因为它没有公共 IP 地址,因此无法从 VPC 外部访问。

除了使用 VPN 之外,没有直接的方法与节点进行通信。

更多信息请参阅

访问您的集群

文档。


0
投票
https://aws.amazon.com/cloudshell/

。当您启动它时,您可以创建一个使用与 Elastic Cache 相同的 VPC 的环境。之后,您可以使用sudo yum install bind-utils或其他网络工具来查看主站或读卡器的主机如何解析为实际的IP地址。例如,您可以使用

dig
,它会给您一个 dns 查找链。
    

© www.soinside.com 2019 - 2024. All rights reserved.