Problem z dostępem do Mongodb na Amazon EC2

Mam do ciebie inne pytanie. Mam instancję Amazon EC2 z zainstalowanym mondodb. Działa świetnie, z wyjątkiem jednej rzeczy - nie mogę uzyskać dostępu (połączyć się) z zewnątrz (mój komputer). Myślę, że problem z grupami bezpieczeństwa. To jakiś domyślny firewall. Czy ktoś wie jak skonfigurować instancję EC2 aby miała dostęp do mongodb? Z góry dzięki.

Author: clumpter, 2011-01-22

3 answers

Musisz dodać wyjątek grupy zabezpieczeń dla portu 27017, jeśli używasz domyślnej konfiguracji, aby uzyskać do niego dostęp z zewnątrz. Aby skonfigurować grupę zabezpieczeń, sprawdź dokumentację amazon EC2. A jeśli używasz innego portu na Mongo, zmień odpowiednio Port grupy zabezpieczeń.

--Sai

 10
Author: Sai Venkat,
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
2011-01-22 14:55:28

Zastanów się, zanim to zrobisz. Jeśli otworzysz porty, upewnij się, że ograniczysz numery IP, które mogą uzyskać do nich dostęp, w przeciwnym razie każdy będzie mógł uzyskać dostęp do twojej bazy danych. Możesz włączyć uwierzytelnianie w MongoDB, ale nie jest to szczególnie bezpieczne, wystarczy nazwa użytkownika i hasło. Nie powinieneś mieć swojej bazy danych otwartej na internet, to nie jest dobry pomysł.

Lepszym sposobem niż otwieranie portów w EC2 firewall jest otwarcie tunelu SSH i przejście do portu, dzięki czemu tylko dostęp do bazy danych można uzyskać tylko wtedy, gdy tunel SSH jest aktywny.

Otwórz nowy terminal i uruchom to polecenie (zastąpienie użytkownika i hosta użytkownikiem, którego używasz podczas SSH na serwerze i nazwą serwera):

ssh user@host -N -L 27017:127.0.0.1:27017

Polecenie przekieruje port 27017 na Twój komputer do tego samego portu na serwerze. Aby połączyć się z instancją MongoDB, po prostu uruchom mongo w terminalu (jeśli to nie zadziała, spróbuj mongo --host 127.0.0.1 lub nawet mongo --host 127.0.0.1 --port 27017).

Jeśli uruchomisz MongoDB na swoim lokalnym maszyna będziesz musiał zmienić pierwszy port, ponieważ serwer lokalny już go używa. W takim przypadku uruchom to polecenie:

ssh user@host -N -L 27018:127.0.0.1:27017

A następnie połączyć się z

mongo --port 27018

(ewentualnie dodanie --host 127.0.0.1 jeśli to nie zadziała).

Kiedy skończysz pracę z bazą danych, WYJDŹ z mongo i naciśnij ctrl - C w terminalu za pomocą polecenia SSH.

 39
Author: Theo,
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
2011-01-22 17:50:08

Czy Twoja instancja EC2 jest przypadkiem Windows server? Jeśli tak, oprócz grup zabezpieczeń EC2 musisz również skonfigurować zaporę systemu Windows, aby umożliwić połączenie przychodzące.

Przejdź do Narzędzia administracyjne, Zapora systemu Windows z zaawansowanym zabezpieczeniem i skonfiguruj nową regułę, która umożliwia połączenia przychodzące na porcie 27017 (domyślny port mongo) lub dowolnym wybranym porcie.

 5
Author: Brad Gagne,
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
2011-03-15 02:59:30