Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi Linux Server Virtual

Cara Menginstal dan Mengonfigurasi MongoDB di VPS (Panduan Lengkap 2024)

MongoDB adalah salah satu database NoSQL yang paling banyak diadopsi di dunia — dan ada alasan yang bagus untuk itu. Model dokumen yang fleksibel, performa baca/tulis throughput tinggi, dan skalabilitas horizontal native menjadikannya backend pilihan untuk API modern, platform SaaS, CRM, mesin e-commerce, dan aplikasi yang intensif data. Tidak seperti layanan database cloud terkelola, menjalankan MongoDB di VPS Hosting Anda sendiri memberikan kontrol penuh atas tuning performa, pengerasan keamanan, dan biaya jangka panjang.

Panduan ini memandu Anda melalui instalasi MongoDB Community Edition 8.0 tingkat produksi di VPS Linux — mencakup setup repositori resmi untuk Debian 12 dan Ubuntu LTS, manajemen layanan, pembuatan pengguna dan database, pengerasan keamanan (autentikasi, network binding, aturan firewall), strategi backup, dan langkah-langkah troubleshooting umum. Baik Anda meluncurkan aplikasi pertama atau memigrasikan beban kerja yang ada, panduan ini membuat MongoDB berjalan dengan andal sejak hari pertama.

1. Prasyarat

Sebelum Anda memulai, pastikan kondisi berikut terpenuhi:

PersyaratanDetail
Akses VPSAkses SSH tingkat root atau sudo
Sistem operasi64-bit Debian 12 (Bookworm) atau Ubuntu 22.04/24.04 LTS
RAMMinimum 1 GB; 2 GB+ direkomendasikan untuk produksi
PenyimpananPenyimpanan berbasis SSD sangat direkomendasikan
FirewallUFW atau iptables tersedia

> Penting: MongoDB 8.0 secara resmi mendukung rilis Debian 12 dan Ubuntu LTS. Selalu instal dari repositori resmi MongoDB — jangan pernah gunakan paket mongodb yang disertakan dengan distribusi Linux Anda, karena sudah ketinggalan zaman, tidak didukung, dan dapat bertentangan dengan paket mongodb-org resmi.

Jika Anda belum memiliki server, paket VPS Hosting AlexHost menawarkan instans VPS Linux berbasis SSD pada infrastruktur berkinerja tinggi — ideal untuk menjalankan beban kerja database produksi.

Perbarui Sistem Anda Terlebih Dahulu

Selalu mulai dengan sistem yang sepenuhnya diperbarui:

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y gnupg curl

2. Instal MongoDB di Debian 12 (Bookworm)

MongoDB tidak tersedia di repositori Debian default, jadi Anda harus menambahkan repositori APT MongoDB resmi secara manual.

Langkah 1 — Impor Kunci Penandatanganan GPG MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

Ini mengunduh dan menyimpan kunci GPG yang digunakan untuk memverifikasi integritas paket. Tanpa langkah ini, APT akan menolak untuk menginstal paket dari repositori MongoDB.

Langkah 2 — Tambahkan Repositori MongoDB Resmi

echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] 
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list > /dev/null

Langkah 3 — Instal MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

APT sekarang akan menarik rilis MongoDB 8.0 terbaru langsung dari CDN resmi MongoDB.

3. Instal MongoDB di Ubuntu LTS (24.04 / 22.04)

Prosesnya hampir identik dengan Debian, tetapi URL repositori berbeda menurut nama kode Ubuntu.

Langkah 1 — Impor Kunci Penandatanganan GPG MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

Langkah 2 — Tambahkan Repositori untuk Versi Ubuntu Anda

Ubuntu 24.04 (Noble Numbat):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Ubuntu 22.04 (Jammy Jellyfish):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Langkah 3 — Instal MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

4. Mulai dan Aktifkan Layanan MongoDB

Setelah diinstal, gunakan systemctl untuk memulai MongoDB dan mengonfigurasinya agar diluncurkan secara otomatis saat server di-boot ulang.

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod --no-pager

Mengapa daemon-reload?

Dokumentasi resmi MongoDB secara khusus merekomendasikan menjalankan systemctl daemon-reload sebelum memulai layanan. Jika Anda melewati langkah ini dan melihat kesalahan "Unit mongod.service not found", jalankan daemon-reload terlebih dahulu — ini memaksa systemd untuk membaca ulang file unit dari disk.

Output yang Diharapkan

Layanan MongoDB yang sehat akan menampilkan output serupa dengan:

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
     Active: active (running) since ...

Jika status menunjukkan failed atau inactive, lompat ke bagian Pemecahan Masalah.

5. Buat Database dan Pengguna

MongoDB tidak memberlakukan autentikasi secara default setelah instalasi baru. Ini berarti Anda harus membuat pengguna admin dan aplikasi sebelum mengaktifkan autentikasi — jika tidak, Anda berisiko mengunci diri sendiri.

Buka MongoDB Shell

Hubungkan ke MongoDB secara lokal di VPS:

mongosh

Langkah 1 — Buat Pengguna Administratif

Beralih ke database admin dan buat akun admin yang istimewa:

use admin

db.createUser({
  user: "admin",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})

> Tips keamanan: Ganti STRONG_PASSWORD_HERE dengan kata sandi yang dihasilkan secara acak dengan minimal 20 karakter. Gunakan pengelola kata sandi atau jalankan openssl rand -base64 24 di server Anda untuk menghasilkan satu.

Langkah 2 — Buat Database Aplikasi dan Pengguna

Buat database khusus dan pengguna dengan privilege minimal yang hanya terbatas pada database tersebut:

use myapp

db.createUser({
  user: "myapp_user",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "readWrite", db: "myapp" }
  ]
})

Ini mengikuti prinsip privilege minimal — aplikasi Anda hanya memiliki akses baca/tulis ke database-nya sendiri, bukan seluruh instance MongoDB.

Langkah 3 — Verifikasi Pengguna Dibuat

use admin
db.getUsers()

Keluar dari shell:

exit

6. Amankan Instans MongoDB Anda

Ini adalah bagian paling kritis dari panduan ini. Instans MongoDB yang salah konfigurasi dan terbuka untuk internet publik telah bertanggung jawab atas banyak pelanggaran data profil tinggi. Daftar periksa keamanan MongoDB sendiri sangat jelas: hardening instans Anda sebelum mengeksposnya ke jaringan apa pun.

A) Ikat MongoDB ke Localhost Saja (Default yang Direkomendasikan)

Secara default, MongoDB mungkin mendengarkan semua antarmuka jaringan. Batasi ke localhost kecuali Anda memiliki kebutuhan spesifik dan terjustifikasi untuk akses jarak jauh.

Edit /etc/mongod.conf:

net:
  bindIp: 127.0.0.1

Terapkan perubahan:

sudo systemctl restart mongod

Ini memastikan MongoDB hanya dapat dijangkau dari server itu sendiri — bukan dari internet publik.

B) Aktifkan Autentikasi

Tanpa autentikasi yang diaktifkan, proses lokal apa pun dapat terhubung ke MongoDB tanpa kata sandi. Edit /etc/mongod.conf:

security:
  authorization: enabled

Mulai ulang layanan:

sudo systemctl restart mongod

Sekarang uji bahwa autentikasi diterapkan:

mongosh -u admin -p --authenticationDatabase admin

C) Konfigurasikan Firewall

Jika Anda perlu mengizinkan koneksi jarak jauh (misalnya, dari server aplikasi di mesin berbeda), batasi port 27017 ke alamat IP terpercaya tertentu saja. Jangan pernah buka port 27017 ke 0.0.0.0/0.

Menggunakan UFW:

sudo ufw allow from YOUR.TRUSTED.IP.ADDRESS to any port 27017 proto tcp
sudo ufw enable
sudo ufw status

Verifikasi aturan aktif:

sudo ufw status verbose

D) Gunakan SSH Tunneling untuk Akses Jarak Jauh yang Aman (Praktik Terbaik)

Cara paling aman untuk mengakses MongoDB dari jarak jauh adalah melalui terowongan SSH. Ini menghindari pembukaan port 27017 sepenuhnya dan mengenkripsi semua lalu lintas dalam perjalanan.

Dari mesin lokal Anda:

ssh -L 27017:127.0.0.1:27017 root@YOUR_VPS_IP

Kemudian terhubung dari shell MongoDB lokal Anda seolah-olah itu lokal:

mongosh "mongodb://myapp_user:PASS@127.0.0.1:27017/myapp?authSource=myapp"

Pendekatan ini sangat direkomendasikan untuk pengembang yang mengakses database produksi dari laptop atau workstation jarak jauh.

Ringkasan Pengerasan Keamanan

Langkah KeamananLokasi KonfigurasiPrioritas
Ikat ke localhost saja/etc/mongod.confnet.bindIpKritis
Aktifkan autentikasi/etc/mongod.confsecurity.authorizationKritis
Pembatasan port firewallUFW / iptablesTinggi
SSH tunnel untuk akses jarak jauhKonfigurasi SSH sisi klienTinggi
Gunakan pengguna DB dengan hak istimewa minimalmongoshdb.createUser()Tinggi
Jaga MongoDB tetap diperbaruiapt-get upgrade mongodb-orgSedang

7. Backup dan Restore

Backup reguler adalah keharusan untuk database produksi apa pun. MongoDB menyertakan mongodump dan mongorestore sebagai bagian dari paket MongoDB Database Tools.

Buat Arsip Backup Terkompresi

mongodump 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Ini membuat file arsip terkompresi tunggal yang berisi logical dump dari semua database.

Restore dari Arsip Backup

mongorestore 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Otomatisasi Backup dengan Cron

Jadwalkan backup harian menggunakan cron:

crontab -e

Tambahkan baris berikut untuk menjalankan backup setiap hari pada pukul 2:00 AM:

0 2 * * * mongodump --username admin --password PASS --authenticationDatabase admin --archive=/root/backups/mongo-$(date +%F).archive --gzip

> Pro tip: Untuk redundansi off-site, pertimbangkan untuk menyinkronkan arsip backup ke lokasi penyimpanan eksternal menggunakan rsync atau rclone. Jangan pernah menyimpan satu-satunya backup Anda di server yang sama dengan database Anda.

8. Pemecahan Masalah Umum

Periksa Log Layanan

Tempat pertama untuk dilihat ketika MongoDB gagal dimulai atau berperilaku tidak terduga:

sudo journalctl -u mongod --no-pager -n 200

Ini menampilkan 200 baris terakhir dari jurnal systemd MongoDB — biasanya cukup untuk mengidentifikasi akar penyebabnya.

Verifikasi MongoDB Mendengarkan pada Port yang Diharapkan

sudo ss -lntp | grep 27017

Output yang diharapkan jika MongoDB berjalan dan terikat ke localhost:

LISTEN  0  128  127.0.0.1:27017  0.0.0.0:*  users:(("mongod",...))

Jika tidak ada output, MongoDB tidak berjalan atau terikat ke antarmuka yang berbeda.

Periksa Versi MongoDB yang Terinstal

mongod --version

Pesan Kesalahan Umum dan Perbaikannya

KesalahanPenyebab KemungkinanPerbaikan
Unit mongod.service not foundsystemd belum memuat file unitJalankan sudo systemctl daemon-reload
Address already in usePort 27017 ditempati oleh proses lainJalankan `sudo ss -lntpgrep 27017` untuk mengidentifikasi konfliknya
Authentication failedKredensial salah atau authSource salahVerifikasi nama pengguna, kata sandi, dan authenticationDatabase
Connection refusedMongoDB tidak berjalan atau terikat ke IP yang salahPeriksa bindIp di mongod.conf dan status layanan
mongod.conf permission deniedMasalah izin fileJalankan sudo chmod 600 /etc/mongod.conf

9. Pemikiran Akhir

Menjalankan MongoDB pada VPS adalah pendekatan yang terbukti dan hemat biaya untuk beban kerja produksi yang membutuhkan fleksibilitas, performa, dan kontrol infrastruktur penuh. Dengan mengikuti panduan ini, Anda telah menginstal MongoDB 8.0 dari repositori resmi, mengonfigurasi autentikasi dan pengikatan jaringan, membuat pengguna database dengan privilege minimal, menyiapkan aturan firewall, dan membangun rutinitas backup.

Beberapa poin penting yang perlu diingat:

  • Selalu aktifkan autentikasi — instance MongoDB tanpa autentikasi adalah kerentanan keamanan kritis.
  • Jangan pernah ekspos port 27017 ke internet publik — gunakan SSH tunneling atau batasi akses ke IP terpercaya tertentu.
  • Jaga MongoDB tetap terbaru — jalankan sudo apt-get upgrade mongodb-org secara teratur untuk menerima patch keamanan.
  • Uji backup Anda — backup yang belum pernah Anda pulihkan adalah backup yang tidak dapat Anda percayai.

Untuk tim yang membutuhkan fondasi yang andal dan berkinerja tinggi untuk deployment MongoDB, VPS Hosting AlexHost menyediakan penyimpanan SSD NVMe, akses root penuh, dan penskalaan sumber daya yang fleksibel. Jika beban kerja Anda berkembang melampaui VPS tunggal, Dedicated Servers menawarkan sumber daya CPU dan RAM dedicated tanpa efek noisy-neighbor — ideal untuk replica set MongoDB atau cluster sharded dengan traffic tinggi.

Butuh stack hosting lengkap? Pasangkan VPS database Anda dengan Shared Web Hosting untuk front-end atau aset statis Anda, dan amankan traffic aplikasi Anda dengan SSL Certificate untuk melindungi data dalam transit antara pengguna Anda dan server Anda.

*Terakhir diperbarui untuk MongoDB Community Edition 8.0 pada Debian 12 (Bookworm) dan Ubuntu 22.04/24.04 LTS.*