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

标签 amazon-web-services amazon-ec2 amazon-vpc amazon-elasticache

我的 EC2 有一个 VPC,每个可用区都有私有(private)子网。在 VPC 中,我的 ElastiCache (Redis) 实例也有私有(private)子网。设置类似于 this .
我还有安全组和 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

据我所知,使用读取器端点可以在读取器实例之间实现负载平衡,但由于所有资源都位于同一 VPC 中(并且 ElastiCache 实例基于 EC2),因此理论上这是可能的(但不是最佳实践)直接通过其私有(private) IP 访问 ElastiCache 实例。
从我所看到的文档来看,没有关于 ElastiCache 端点如何工作的更详细的解释。
假设 AWS 在网络负载均衡器上指向主端点的 DNS 记录(因为 Redis 使用 TCP 连接),并在另一个网络负载均衡器上为读取器端点指向一条记录。我假设这些负载均衡器随后指向 ElastiCache 实例。但所有这一切都只是一组假设。

通过读取器端点的连接如何工作?

主/读取器终端节点的 DNS 记录是否存储在 VPC 外部的中央 AWS DNS 服务器中?

如果 VPC 包含 ElastiCache 集群,则 VPC 的 DNS(位于 *.*.*.2)是否有一条直接指向私有(private) IP 的记录 - 以便之间的流量EC2 和 ElastiCache 可以保留在 VPC 内部吗?

从 EC2 到 ElastiCache 的流量是否通过公共(public)互联网,还是始终保留在 AWS 基础设施内?

最佳答案

AWS 技术在幕后的工作原理通常不会公开,但是,在多个节点之间确实会有一些分布。

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

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

Opening up the ElastiCache cluster to 0.0.0.0/0 does not expose the cluster to the Internet because it has no public IP address and therefore cannot be accessed from outside the VPC.

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

更多信息请参阅 Accessing Your Cluster文档。

关于amazon-web-services - EC2实例如何连接到同一VPC中的ElastiCache集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66048000/

相关文章:

mongodb - Amazon EFS 上的 MongoDb 数据有什么缺点吗?

python - 如何使用Ruby CLI客户端基于Amazon Elastic MapReduce上的JSON JobFlow描述启动JobFlow

amazon-web-services - <AWS VPC> 无法从公有子网实例 ping 私有(private)子网实例

amazon-web-services - 每个环境的 AWS VPC,还是针对不同环境具有多个子网的单个 VPC?

amazon-web-services - 尝试连接到网络接口(interface)已禁用的 AWS EC2 实例

amazon-web-services - 如何解决 AWS S3 中的 'HttpVersionNotSupported' 错误?

amazon-web-services - DynamoDB 映射器 : update only not-null properties

api - Amazon API - 如何创建自定义负载均衡器?

r - 在我的桌面上使用 ESS 在云中运行 R

java - 在 Amazon AWS 上运行实时 Java 服务器