0

我在本地和 aws elasticache 上都安装了 Redis chace。我的 Django 项目在带有 Redis 的本地机器上运行良好。但是,当我在 aws 上远程连接到我的 redis 时,出现以下错误。

Error 10060 connecting to xyz.0001.use2.cache.amazonaws.com:6379. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

我对本地 redis 有以下 Django 设置:

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

这是远程 redis 实例的 Django 设置:

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://xyz.0001.use2.cache.amazonaws.com:6379',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

同样,当我从本地缓存设置切换到远程缓存设置时,我得到了上面的错误。

我知道除非您有 vpn 连接,否则无法在 AWS 外部连接 ElastiCache。因此,我在 aws 上设置了 vpn 客户端端点并使用 aws vpn 客户端连接到它。我可以通过 vpn 成功连接,如下所示。

在此处输入图像描述

此外,如果我在命令提示符窗口的 C:\Program Files\Redis 下运行以下命令

redis-cli -h magicstat-redis.ysw0xy.0001.use2.cache.amazonaws.com -p 6379 ping

我得到这个错误。 在此处输入图像描述

知道为什么即使我可以通过 vpn 连接,我仍然无法从本地计算机连接到 aws elasticache 上的远程 redis?

4

2 回答 2

1

可悲的是,您无法从本地计算机连接。Elasticache 是一项旨在在您的 VPC 内部使用的服务。由于 Internet 流量的延迟和安全问题,不鼓励外部访问。

请参考本文档:https ://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws

于 2021-09-09T12:31:36.037 回答
0

我终于知道发生了什么事。从下面的屏幕截图中可以看出,我添加了自定义 0.0.0.0/0 源。我现在可以通过 VPN 连接。

在此处输入图像描述

于 2021-09-13T23:03:56.800 回答