问题描述
跨区域无法访问Azure Redis服务, Redis 启用了Network并设置在一个VNET中,现在客户端部署在另一个区域数据中心中,两个数据中心区域使用VNET Peer(对等互连)访问。但是为什么不能访问Redis服务呢?
问题解答
根据Azure Redis的官方介绍,因为Redis服务使用了Azure负载均衡,并且是基本层的负载均衡。它不支持跨区域的对等互联,所以无法从另一个区域的VNET中访问Redis服务。详细解释为:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-vnet#can-i-connect-to-my-cache-from-a-peered-virtual-network
更好的解决方案其实是,启用Redis的私有终结点(Private Endpoint)
Azure 专用终结点是一个网络接口,可以通过私密且安全的方式将你连接到 Azure 专用链接支持的 Azure Cache for Redis。
缓存层(基本、标准、高级和企业)支持专用终结点。 我们建议使用专用终结点而不是 VNet。 专用终结点易于设置或删除,在所有层上都受支持,并且可以一次将缓存连接到多个不同的 VNet。
参考资料
使用 Azure 专用链接的 Azure Cache for Redis:https://learn.microsoft.com/zh-cn/azure/azure-cache-for-redis/cache-private-link
如何为高级 Azure Cache for Redis 实例配置虚拟网络支持:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-vnet#can-i-connect-to-my-cache-from-a-peered-virtual-network