У меня есть экземпляр Redis на AWS, который я хочу подключить с помощью Redis Desktop Manager с моего локального компьютера.
Я могу подключиться по ssh к своему экземпляру ec2, а затем запустить redis-cli -h host
и подключиться к нему.
Но то же самое невозможно с моей локальной машины.
Я уверен, что должен быть способ контролировать мой Redis с помощью графического интерфейса, и я думаю, что если я могу подключиться к ec2 с помощью файла pem и я могу подключиться к Redis из insde, должен быть способ объединить оба? И подключиться к экземпляру Redis локально через мой экземпляр ec2? Есть идеи?
По замыслу домен AWS EC развертывается для использования только внутри AWS. Из документов:
Elasticache — это сервис, предназначенный для внутреннего использования в вашем VPC. Внешний доступ не рекомендуется из-за задержки интернет-трафика и соображений безопасности. Однако если для тестирования или разработки требуется внешний доступ к Elasticache, это можно сделать через VPN.
Таким образом, к нему нельзя получить доступ напрямую из-за пределов вашего VPC. Для этого вам нужно настроить VPN между вашей локальной домашней/рабочей сетью и вашим VPC или, что часто проще сделать для тестирования и разработки, установить ssh-туннель.
Для ssh-туннеля вам понадобится публичный прокси/бастион EC2, через который будет установлен туннель. Существует множество руководств о том, как это сделать для разных сервисов AWS. Общие процедуры одинаковы для ES, EC, Aurora Serverless или RDS Proxy. Некоторые примеры:
Существуют определенные проблемы с подключением к кластеру Redis (как обрабатывать перенаправления), которые не охватываются этими ссылками.
@PeterHall Спасибо. Вы можете сделать новый более подробный ответ. Это было бы полезно.
Как упомянул @Marcin, AWS рекомендует использовать Elasticache только в вашем VPC из-за задержки, но вам нужно как-то развиваться... (Обязательно прочитайте ответ @Marcin)
AWS - это огромная загадка, и трудно найти ресурсы для начинающих и среднего уровня, поэтому я немного расширим ответ @Marcin для тех, кто может наткнуться на это.
Довольно просто настроить то, что часто называют «переходником», для подключения ко всем видам ресурсов AWS — это просто любой экземпляр EC2, который находится в том же VPC (сети), что и ресурс, к которому вы пытаетесь подключиться. в данном случае это кластер Redis Elasticache. (Если у вас возникли проблемы, просто запустите новый экземпляр — t4g.nano или что-то очень маленькое работает отлично.)
Вам нужно убедиться, что вы находитесь в каталоге с вашим ключом, но затем вы сможете запустить следующую команду, чтобы связать любой порт, который вы хотите использовать, с удаленным кластером Redis:
ssh -i ${your_ssh_key_name.pem} ${accessible_ec2_host} -L ${port_to_use_locally}:${inaccessable_redis_or_other_host}:${inaccessable_redis_port}
Затем вы можете использовать localhost
и ${port_to_use_locally}
для подключения к Redis.
Этот ответ был бы лучше, если бы вы включили шаги, как это сделать с Redis, а не ссылки на внешние учебные пособия (которые на самом деле не касаются Redis).