Jak utworzyć MongoDB na serwerze VPS
MongoDB to popularna baza danych NoSQL znana ze swojej elastyczności, skalowalności i wydajności. Przechowuje dane w elastycznych dokumentach podobnych do JSON, co jest idealne dla programistów pracujących z dynamicznymi, szybko zmieniającymi się aplikacjami. Jeśli zdecydowałeś się uruchomić MongoDB na własnym wirtualnym serwerze prywatnym (VPS), czeka Cię satysfakcjonujące doświadczenie, które zapewni Ci pełną kontrolę nad środowiskiem bazy danych. Ten przewodnik przeprowadzi Cię krok po kroku przez proces konfiguracji MongoDB na VPS.
Wymagania wstępne
Zanim zaczniemy, upewnij się, że posiadasz następujące elementy:
- VPS z dostępem root.
- Ubuntu 20.04 lub podobna dystrybucja Linuksa.
- Dostęp SSH do VPS.
- Co najmniej 2 GB pamięci RAM (zalecane) dla MongoDB.
- Podstawowa znajomość interfejsu wiersza poleceń (CLI) i poleceń systemu Linux.
Krok 1: Aktualizacja systemu
Najpierw upewnij się, że twój VPS jest aktualny. Zaloguj się przez SSH i uruchom następujące polecenia, aby zaktualizować listę pakietów systemu i zainstalować wszelkie oczekujące aktualizacje:
sudo apt update
sudo apt upgrade -y
Po zaktualizowaniu systemu dobrą praktyką jest ponowne uruchomienie serwera, aby upewnić się, że wszystkie aktualizacje zostały poprawnie zastosowane:
sudo reboot
Krok 2: Zainstaluj MongoDB
MongoDB nie jest zawarte w domyślnych repozytoriach Ubuntu, więc przed instalacją należy dodać jego oficjalne repozytorium. Oto jak zainstalować MongoDB:
Dodaj repozytorium MongoDB
- Zaimportuj publiczny klucz GPG MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -..
- Utwórz plik listy dla MongoDB:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- Zaktualizuj lokalną listę pakietów:
sudo apt update
Instalowanie pakietów MongoDB
Teraz zainstaluj pakiety MongoDB, uruchamiając następujące polecenie:
sudo apt install -y mongodb-org
Spowoduje to zainstalowanie MongoDB wraz z innymi wymaganymi komponentami (takimi jak mongod, demon MongoDB).
Krok 3: Uruchom i włącz MongoDB
Po zainstalowaniu należy uruchomić MongoDB i włączyć jego uruchamianie:
sudo systemctl start mongod
sudo systemctl enable mongod
Aby potwierdzić, że MongoDB działa, sprawdź jego status:
sudo systemctl status mongod
Powinieneś zobaczyć MongoDB jako aktywne (działające). Jeśli wszystko wygląda dobrze, możesz przejść do konfiguracji.
Krok 4: Zabezpiecz MongoDB
Domyślnie MongoDB umożliwia nieuwierzytelniony dostęp, co nie jest idealne dla środowiska produkcyjnego. Aby zabezpieczyć MongoDB, należy włączyć uwierzytelnianie.
Utwórz użytkownika administratora
- Najpierw uzyskaj dostęp do powłoki MongoDB:
mongo
- Przełącz się do bazy danych administratora:
use admin
- Utwórz użytkownika admin, uruchamiając następujące polecenie, zastępując adminuser i hasło żądaną nazwą użytkownika i hasłem:
db.createUser({
user: "adminuser",
pwd: "password",
role: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
- Wyjście z powłoki MongoDB:
exit
Włącz uwierzytelnianie
- Otwórz plik konfiguracyjny MongoDB za pomocą edytora tekstu:
sudo nano /etc/mongod.conf
- W pliku konfiguracyjnym znajdź następujący wiersz:
#security:
- Usuń jego komentarz i dodaj pod nim następujący wiersz:
security:
autoryzacja: włączona
- Zapisz zmiany i zamknij edytor (w Nano naciśnij Ctrl X , następnie Y i Enter).
- Uruchom ponownie MongoDB, aby zastosować zmiany:
sudo systemctl restart mongod
Krok 5: Konfiguracja zdalnego dostępu do MongoDB (opcjonalnie)
Domyślnie MongoDB nasłuchuje tylko na localhost (127.0.0.1), co oznacza, że jest dostępny tylko z samego VPS. Jeśli potrzebujesz zdalnego dostępu, musisz skonfigurować MongoDB tak, aby zezwalał na połączenia z zewnętrznych adresów IP. Oto jak to zrobić:
- Otwórz plik konfiguracyjny MongoDB:
sudo nano /etc/mongod.conf
- Znajdź następującą linię:
bindIp: 127. 0.0.1
- Zamień go na:
bindIp: 0. 0.0.0
Dzięki temu MongoDB może akceptować połączenia ze wszystkich adresów IP.
- Zapisz zmiany i zamknij edytor.
- Uruchom ponownie MongoDB:
sudo systemctl restart mongod
Zabezpiecz zdalny dostęp za pomocą zapory sieciowej
Zezwól tylko zaufanym adresom IP na łączenie się z MongoDB, konfigurując zaporę VPS. Jeśli używasz UFW (Uncomplicated Firewall), oto jak zezwolić na zdalne połączenia na domyślnym porcie MongoDB (27017):
- Zezwól na dostęp z określonego adresu IP (zastąp your_ip swoim adresem IP ):
sudo ufw allow from your_ip to any port 27017
- Aby włączyć UFW (jeśli nie jest włączone):
sudo ufw enable
- Sprawdź status UFW, aby potwierdzić, że reguła została dodana:
sudo ufw status
Krok 6: Przetestuj konfigurację MongoDB
Aby sprawdzić, czy MongoDB działa poprawnie, możesz uzyskać dostęp do powłoki MongoDB i uwierzytelnić się przy użyciu utworzonego wcześniej użytkownika:
- Connect to MongoDB:
mongo -u adminuser -p --authenticationDatabase admin
- Powinieneś być teraz zalogowany do powłoki MongoDB jako użytkownik admin.
Krok 7: Kopia zapasowa i konserwacja
Regularne tworzenie kopii zapasowych baz danych MongoDB ma kluczowe znaczenie, zwłaszcza w środowisku produkcyjnym. Do tworzenia kopii zapasowych danych można użyć narzędzia mongodump:
mongodump --out /path/to/backup/directory
Dane można przywrócić za pomocą mongorestore:
mongorestore /path/to/backup/directory
Wnioski
Wykonując te kroki, pomyślnie zainstalowałeś i skonfigurowałeś MongoDB na swoim VPS. Masz teraz pełną kontrolę nad swoim środowiskiem MongoDB, które można dostosować do konkretnych potrzeb. Niezależnie od tego, czy używasz MongoDB do aplikacji internetowych, dużych zbiorów danych, czy po prostu eksperymentujesz, instalacja MongoDB oparta na VPS zapewni zarówno elastyczność, jak i wydajność.
Pamiętaj, aby regularnie monitorować swoją instancję MongoDB i dbać o jej bezpieczeństwo, włączając uwierzytelnianie i ograniczając dostęp przez zapory ogniowe. Miłego kodowania!