Как подключиться к кластеру AWS Redis локально?

У меня есть экземпляр Redis на AWS, который я хочу подключить с помощью Redis Desktop Manager с моего локального компьютера.

Я могу подключиться по ssh к своему экземпляру ec2, а затем запустить redis-cli -h host и подключиться к нему.

Но то же самое невозможно с моей локальной машины.

Я уверен, что должен быть способ контролировать мой Redis с помощью графического интерфейса, и я думаю, что если я могу подключиться к ec2 с помощью файла pem и я могу подключиться к Redis из insde, должен быть способ объединить оба? И подключиться к экземпляру Redis локально через мой экземпляр ec2? Есть идеи?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
3 645
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

По замыслу домен AWS EC развертывается для использования только внутри AWS. Из документов:

Elasticache — это сервис, предназначенный для внутреннего использования в вашем VPC. Внешний доступ не рекомендуется из-за задержки интернет-трафика и соображений безопасности. Однако если для тестирования или разработки требуется внешний доступ к Elasticache, это можно сделать через VPN.

Таким образом, к нему нельзя получить доступ напрямую из-за пределов вашего VPC. Для этого вам нужно настроить VPN между вашей локальной домашней/рабочей сетью и вашим VPC или, что часто проще сделать для тестирования и разработки, установить ssh-туннель.

Для ssh-туннеля вам понадобится публичный прокси/бастион EC2, через который будет установлен туннель. Существует множество руководств о том, как это сделать для разных сервисов AWS. Общие процедуры одинаковы для ES, EC, Aurora Serverless или RDS Proxy. Некоторые примеры:

Этот ответ был бы лучше, если бы вы включили шаги, как это сделать с Redis, а не ссылки на внешние учебные пособия (которые на самом деле не касаются Redis).

Peter Hall 14.01.2021 18:13

Существуют определенные проблемы с подключением к кластеру Redis (как обрабатывать перенаправления), которые не охватываются этими ссылками.

Peter Hall 14.01.2021 18:21

@PeterHall Спасибо. Вы можете сделать новый более подробный ответ. Это было бы полезно.

Marcin 14.01.2021 23:17

Как упомянул @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.

Другие вопросы по теме