W jaki sposób można sprawić, aby lokalny serwer programistyczny Django działał w sieci AWS za pomocą tunelowania SSH?Użyj tunelu SSH, aby serwer Django sądził, że działa w AWS?
Mój scenariusz, używam lokalnego serwera Django, tj. python manage.py runserver
, a Redis jako backend pamięci podręcznej (Elasticache). Gdy moja aplikacja działa w środowisku AWS, ma dostęp do Elasticache, ale lokalnie nie będzie to (i to dobrze). Jeśli z jakiegoś powodu chcę przetestować swoje lokalne środowisko za pomocą Elasticache, muszę jakoś wykorzystać tunelowanie SSH, aby AWS sądził, że działa w sieci VPC.
Próbowałem uzyskać to działa, używając poniżej. Potwierdziłem, że mogę łączyć się lokalnie za pomocą tunelowania SSH z Redis Desktop Manager, więc w 100% wiem, że AWS obsługuje to, mój problem polega na tym, że teraz robię to samo z Django.
To co próbowałem:
> python manage.py runserver 8000
> ssh -i mykey.pem [email protected] -L 6379:localhost:6379
dostaję komunikat "Error 60 łączącą do" wiadomość, kiedy odwiedzam http://127.0.0.1:8000/
.
Co ja tu robię źle?
Uwagi:
[email protected]
nie jest serwerem Redis, tylko kolejny instancji EC2 na AWS, która ma dostęp Elasticache że chcę użyć jako tunelu.- Dostęp do ma odpowiednie uprawnienia.
- Instancja ec2 ma wszystkie odpowiednie uprawnienia i porty dostępu.
- Testowane tunelowanie SSH z Redis Desktop Manager i to działa dla tego oprogramowania.
- Elasticache i instancje EC2 znajdują się w tym samym regionie i mogą się ze sobą łączyć.
Dlaczego starasz się połączyć do produkcji np Redis? Czy nie możesz zamiast tego uruchomić lokalnej instancji na swoim komputerze? Jeśli chodzi o twoje pytanie, prawdopodobnie nie chcesz używać '6379: localhost: 6379', ale zamiast czegoś takiego jak' 6379: redis-servers.ip.address: 6379', ale to tylko zgadnij. Użyj 'ssh -vv' do debugowania problemów z tunelowaniem, to wydrukuje całą masę rzeczy na stderr. – koniiiik
Wierzę, że memcached na AWS działałoby tylko w sieci AWS. Próbowałem bez szczęścia połączyć się z moim lokalnym środowiskiem. BTW Nie zapomnij otworzyć portów Elasticache w twoich grupach bezpieczeństwa EC2. Również uruchamiam moje aplikacje Django przez AWS Elastc Beanstalk. – WayBehind
@koniiiik Nie rozumiesz, nie próbuję połączyć się bezpośrednio z Redis, ale chcę użyć tunelowania SSH (do dowolnej instancji EC2), aby wyglądało na to, że moje lokalne środowisko działa w VPC. – Prometheus