Вы можете подключиться к Amazon Elasticache Redis за пределами Amazon



Я могу подключиться к экземпляру Elasticache redis в VPC из экземпляров EC2, но я хотел бы знать, есть ли способ подключиться к узлу Elasticache Redis за пределами экземпляров Amazon EC2, например, из моей локальной установки dev или экземпляров VPS, предоставленных другими поставщиками.



В настоящее время при попытке из моей локальной настройки:
redis-cli-h my-node-endpoint-p 6379



Я только получаю тайм-аут через некоторое время.



спасибо,

666   8  

8 ответов:

нет, вы не можете, не прибегая к "трюкам", таким как туннель, который, возможно, подходит для тестирования, но убьет любую реальную выгоду от использования сверхбыстрого кэша с добавленной задержкой/накладными расходами.

... an кластер Amazon ElastiCache, внутри или снаружи VPC, никогда не является разрешен доступ из интернета.

отсюда: http://aws.amazon.com/elasticache/faqs/#Can_I_access_Amazon_ElastiCache_from_outside_AWS

редактировать 2018: этот ответ выше был точен при написании, однако теперь можно с некоторой конфигурацией получить доступ к кэшу redis извне, используя направления примерно на 1/2 пути вниз по этой странице: https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html

переадресация портов SSH должна сделать трюк. Попробуйте запустить это от вашего клиента.

ssh -f -N -L6379:<your redis node endpoint>:6379 <your EC2 node that you use to connect to redis>

тогда от вашего клиента

redis-cli -h 127.0.0.1 -p 6379

это работает для меня.

обратите внимание, что порт по умолчанию для redis является 6379 не 6739. Также убедитесь, что вы разрешаете разрешить группу безопасности узла EC2, который вы используете для подключения к экземпляру redis в свою группу безопасности кэша.

кроме того, AWS теперь поддерживает доступ к вашему кластеру больше информации здесь

эти ответы устарели.

вы можете получить доступ к elasticcache за пределами AWS, выполнив следующие действия:

  1. создайте экземпляр NAT в том же VPC, что и ваш кластер кэша, но в a публичная подсеть.
  2. создание правил группы безопасности для кластера кэша и Нат пример.
  3. подтверждают правила.
  4. Добавить правило iptables в NAT пример.
  5. убедитесь, что доверенный клиент может подключиться к этот группа.
  6. сохраните конфигурацию iptables.

более подробное описание см. В руководстве aws:

http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Access.Outside.html

Не такой уж старый вопрос, я сам побежал к той же проблеме и решил ее:

иногда для разработки причин вам нужно получить доступ извне (чтобы избежать нескольких развертываний только для простого исправления ошибок, может быть?)

Amazon опубликовали новое руководство, которое использует EC2 в качестве прокси для внешнего мира:

http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Access.Outside.html

удачи!

мы используем HAProxy в качестве зарезервированного прокси-сервера.

ваша система вне AWS - - - > интернет --> HAProxy с публичным IP --> Amazon Redis (Elasticache)

обратите внимание, что есть еще одна веская причина для этого (в то время)

Как мы используем узел.клиент js, который не поддерживает Amazon DNS fail over, драйвер клиента не поддерживает dns-поиск снова. Если redis терпит неудачу, драйвер клиента будет поддерживать соединение со старым ведущим устройством, которое является ведомым после сбоя свыше.

с помощью HAProxy, он решил эту проблему.

теперь, используя последний драйвер ioredis, он поддерживает отказоустойчивость Amazon dns.

кстати, если кто-то хочет решение windows EC2, попробуйте их в командной строке DOS (на указанной машине windows EC2):

чтобы добавить переадресацию портов

C:\Users\Administrator>netsh interface portproxy add v4tov4 listenport=6379 listenaddress=10.xxx.64.xxx connectport=6379 connectaddress=xxx.xxxxxx.ng.0001.use1.cache.amazonaws.com

для перечисления портов переадресованных портов

C:\Users\Administrator>netsh interface portproxy show all

слушайте на ipv4: подключение к ipv4:

Адрес Порта Адрес Порта


10.ХХХ.128.xxx 6379 xxx.xxxxx.ng.0001.use1.cache.amazonaws.com 6379

чтобы удалить Port-forwarding

C:\Users\Administrator>netsh interface portproxy delete v4tov4 listenport=6379 listenaddress=10.xxx.128.xxx

это сплошной скрипт узел, который будет делать всю грязную работу за вас. Проверено и проверено, что это сработало.

https://www.npmjs.com/package/uzys-elasticache-tunnel

Как использовать Использование: uzys-elasticache-tunnel [options] [command]

команды:

start [filename]  start tunneling with configuration file (default: config.json)
stop              stop tunneling
status            show tunneling status

варианты:

-h, --help     output usage information
-V, --version  output the version number

Пример Использования

  • start-uzys-elasticache-tunnel start ./конфигурация.json
  • остановить - uzys-elasticache-tunnel stop
  • status-uzys-elasticache-tunnel status

Its невозможно напрямую получить доступ к классическому кластеру из экземпляра VPC. Обходным путем будет настройка NAT на классическом экземпляре.

NAT нужно иметь простой TCP прокси

YourIP=1.2.3.4
YourPort=80
TargetIP=2.3.4.5
TargetPort=22

iptables -t nat -A PREROUTING --dst $YourIP -p tcp --dport $YourPort -j DNAT \
--to-destination $TargetIP:$TargetPort
iptables -t nat -A POSTROUTING -p tcp --dst $TargetIP --dport $TargetPort -j SNAT \
--to-source $YourIP
iptables -t nat -A OUTPUT --dst $YourIP -p tcp --dport $YourPort -j DNAT \
--to-destination $TargetIP:$TargetPort

Comments

    Ничего не найдено.