如何从本地计算机为 Django 项目连接 AWS Elasticache Redis?

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

我在本地和 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

我收到此错误。

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

python django amazon-web-services redis amazon-elasticache
3个回答
1
投票

遗憾的是您无法从本地计算机进行连接。 Elasticache 是一项设计用于您的 VPC 内部使用的服务。由于互联网流量的延迟和安全问题,不鼓励外部访问。

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


1
投票

我终于知道是怎么回事了。正如您从下面的屏幕截图中看到的,我添加了自定义 0.0.0.0/0 源。我现在可以通过 VPN 连接了。


0
投票

显然,您只能从同一 VPC 中的 ec2 连接 Elasticache Redis 和 MemoryDB。

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