Czy można połączyć się z Amazon Elasticache Redis poza Amazon

Jestem w stanie połączyć się z instancją elasticache redis w VPC z instancji EC2, ale chciałbym wiedzieć, czy istnieje sposób, aby połączyć się z węzłem Elasticache Redis poza instancjami Amazon EC2, takich jak z mojej lokalnej konfiguracji dev lub instancji VPS dostarczonych przez innych dostawców.

Obecnie podczas próby z mojej lokalnej konfiguracji: redis-cli-h my-node-endpoint-p 6379

Po pewnym czasie dostaję przerwę.

Dziękuję,

Author: Loic Duros, 2014-02-20

8 answers

Nie, Nie można bez uciekania się do "sztuczek", takich jak tunel, który może być w porządku do testowania, ale zabije wszelkie realne korzyści z korzystania z super szybkiej pamięci podręcznej z dodanym opóźnieniem/napowietrznym.

...An Amazon Elasticache Cluster, wewnątrz lub na zewnątrz VPC, nigdy nie jest dozwolony dostęp z Internetu .

Stąd: http://aws.amazon.com/elasticache/faqs/#Can_I_access_Amazon_ElastiCache_from_outside_AWS

EDIT 2018: This odpowiedź powyżej była dokładna, gdy została napisana, jednak jest teraz możliwe z pewną konfiguracją, aby uzyskać dostęp do pamięci podręcznej redis z zewnątrz za pomocą wskazówek około 1/2 W Dół tej strony: https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html

 53
Author: E.J. Brennan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-10 11:31:10

Przekierowanie portów SSH powinno załatwić sprawę. Spróbuj to sprawdzić przed klientem.

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

Następnie od klienta

redis-cli -h 127.0.0.1 -p 6379
Dla mnie działa.

Należy pamiętać, że domyślnym portem dla redis jest 6379, a nie 6739. Upewnij się również, że zezwalasz grupie zabezpieczeń węzła EC2, której używasz do łączenia się z instancją redis do grupy zabezpieczeń pamięci podręcznej.

Ponadto AWS obsługuje teraz dostęp do twojego klastra więcej informacji tutaj

 71
Author: Rico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-16 15:27:06

Te odpowiedzi są nieaktualne.

Możesz uzyskać dostęp do elasticcache poza AWS, wykonując następujące kroki:

  1. Utwórz instancję NAT w tym samym VPC co klaster pamięci podręcznej, ale w podsieć publiczna.
  2. Tworzenie reguł grupy zabezpieczeń dla klastra pamięci podręcznej i Instancja NAT.
  3. Zatwierdź Zasady.
  4. Dodaj regułę iptables do NAT przykład.
  5. potwierdź, że zaufany klient jest w stanie połączyć się z klaster.
  6. Zapisz iptables konfiguracja.

Bardziej szczegółowy opis znajdziesz w przewodniku aws:

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

 14
Author: cscan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-07 19:33:36

Nie Takie stare pytanie, sam wpadłem na ten sam problem i go rozwiązałem:

Czasami, z przyczyn rozwijających się, trzeba uzyskać dostęp z zewnątrz(aby uniknąć wielu wdrożeń tylko dla prostej poprawki błędów?)

[[0]} Amazon opublikował nowy przewodnik, który używa EC2 jako proxy dla świata zewnętrznego:

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

Powodzenia!

 5
Author: Shay Elkayam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-23 08:42:51

Używamy HAProxy jako zarezerwowanego serwera proxy.

Twój system poza AWS - - - > Internet -- > HAProxy z publicznym IP -- > Amazon Redis (Elasticache)

Zauważ, że jest inny dobry powód, aby to zrobić (w tym czasie)

Jak używamy node.klient js, który nie obsługuje Amazon DNS fail over, sterownik klienta nie obsługuje DNS look up ponownie. Jeśli redis się nie powiedzie, sterownik klienta zachowa połączenie ze starym master, który jest slave po failed over.

By używając HAProxy, to rozwiązało ten problem.

Teraz przy użyciu najnowszego sterownika ioredis, obsługuje Amazon DNS failover.

 4
Author: teddychan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-15 06:53:24

BTW jeśli ktoś chce rozwiązania Windows EC2, spróbuj je w wierszu polecenia DOS (na wspomnianym komputerze Windows EC2):

Aby dodać przekierowanie portów

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

Do listy portów przekierowanych

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

Listen on ipv4: Connect to ipv4:

Adres Port Adres Port


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

Usunąć port-forwarding

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

 4
Author: sming,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-11 18:41:36

Jest to solidny skrypt węzła, który wykona całą brudną robotę za Ciebie. Przetestowane i zweryfikowane to działało.

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

Jak używać Usage: uzys-elasticache-tunnel [options] [command]

Polecenia:

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

Opcje:

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

Przykład Użycia

  • start-uzys-elasticache-tunnel start ./ config.json
  • stop-uzys-elasticache-tunnel stop
  • status - uzys-elasticache-stan tunelu
 3
Author: TWilly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 20:56:09

Its nie jest możliwy bezpośredni dostęp do klasycznych klastrów z instancji VPC. Obejściem byłoby skonfigurowanie NAT na klasycznej instancji.

NAT musi mieć prosty serwer proxy 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
 1
Author: Malinga,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-30 01:15:06