#amazon-web-services #amazon-vpc #aws-security-group #redis-cli #aws-elasticache
Вопрос:
Недавно я создал кластер Redis на AWS elasticache, и у меня возникли проблемы с подключением через redis-cli с моего локального компьютера. Каждый раз, когда я выполняю команду:
redis-cli -h <redis_cluster_domain> -p 6379
соединение никогда не устанавливается и в конечном итоге завершается из-за тайм-аута.
В конце концов я решил, что он блокируется из-за настройки в группе безопасности, поэтому я отредактировал правила входящих сообщений, чтобы разрешить весь трафик с моего IP-адреса. Даже после этого я все еще не могу подключиться к кластеру. Есть какие-нибудь идеи, почему это может быть?
Комментарии:
1. Ваш VPC блокирует входящее соединение
2. docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/…
3. Включена ли у вас аутентификация? Это в VPC? Нам нужно больше деталей.
4. Аутентификация @ErmiyaEskandary в настоящее время не включена в этом кластере, и она находится в VPC. В VPC также включены CIDR IPv4. Быстрый и глупый вопрос — должен ли мой IP-адрес находиться в диапазоне CIDR?
5. Какой диапазон CIDR? Если вы определили его в правилах входящих сообщений, то да, конечно — получите свой текущий общедоступный IP — адрес и измените правило входящих сообщений, чтобы разрешить ваш IP-адрес-это работает?
Ответ №1:
Я все понял.
По-видимому, по умолчанию вы не можете получить доступ к кластерам elasticache из-за пределов AWS. Для этого вам нужно создать VPN через AWS и подключиться к нему, чтобы добраться до нужного кластера.
Шаги для этого описаны в этом руководстве по AWS здесь, но в более простых терминах все, что я сделал, это следующее:
- Создайте и импортируйте сертификат полномочий с помощью диспетчера сертификатов AWS. Вы будете использовать этот сертификат для подключения к VPN.
- Создайте конечную точку VPN-клиента и прикрепите к ней ключ и сертификат, сгенерированные на предыдущем шаге.
- Свяжите VPC, используемый в вашем кластере elasticache, с конечной точкой VPN.
- Авторизуйте весь трафик в своей VPN для всех пользователей.
- Добавьте маршрут в таблицу маршрутов вашей конечной точки VPN, чтобы разрешить доступ из любого места (0.0.0.0/0).
- Загрузите файл конфигурации VPN-клиента локально и подключитесь к VPN с помощью «openvpn» (возможно, вам потребуется установить его) с вашим сертификатом и ключом, созданными на первом шаге.
Это сработало для меня, и я рад, что понял это. Теперь я могу подключиться к своему кластеру Redis со своего локального компьютера с помощью «redis-cli»!