Как подключить AWS Elasticache Redis с локальной машины для проекта Django?
У меня установлен Redis chace как на локальной машине, так и на aws elasticache. Мой проект Django хорошо работает на моей локальной машине с Redis. Однако, когда я подключаюсь к моему Redis удаленно на aws, я получаю следующую ошибку
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.
У меня следующие настройки Django для локального redis:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
А это настройки Django для удаленного экземпляра redis:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://xyz.0001.use2.cache.amazonaws.com:6379',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
Опять же, когда я переключаю настройки локального кэша на удаленный, я получаю вышеуказанную ошибку.
Я знаю, что невозможно подключить ElastiCache за пределами AWS, если у вас нет vpn-соединения. Итак, я установил конечную точку vpn-клиента на aws и подключился к ней с помощью aws vpn-клиента. Я могу успешно подключиться через vpn, как показано ниже.
Также, если я выполню следующую команду в C:\Program Files\Redis в окне командной строки
redis-cli -h magicstat-redis.ysw0xy.0001.use2.cache.amazonaws.com -p 6379 ping
Есть идеи, почему я все еще не могу подключиться с локальной машины к удаленному redis на aws elasticache, даже если я могу подключиться через vpn?
К сожалению, вы не можете подключиться с локальной машины. Elasticache - это служба, предназначенная для внутреннего использования в вашем VPC. Внешний доступ не рекомендуется из-за задержки интернет-трафика и соображений безопасности.
Пожалуйста, обратитесь к этой документации : https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws
Я наконец-то выяснил, в чем дело. Как вы можете видеть на скриншоте ниже, я добавил пользовательский источник 0.0.0.0/0. Теперь я могу подключаться через VPN.