VPS Üzerinde MongoDB Instance’ı Nasıl Oluşturulur

MongoDB’yi bir Sanal Özel Sunucu (VPS) üzerinde dağıtmak, veritabanı altyapınız üzerinde tam kontrol sağlar—geliştiriciler, girişimler ve performans, esneklik ve veri egemenliğini önceliklendiren organizasyonlar için idealdir. Bu kılavuz, VPS üzerinde MongoDB’yi kurmak, yapılandırmak, güvence altına almak ve optimize etmek için ileri düzey adımları size gösterecektir.

🛠️ Adım 1: Sisteminizi Güncelleyin

sudo apt update && sudo apt upgrade -y

Hostname ve zaman diliminizi ayarlayın:

hostnamectl set-hostname mongodb-server
timedatectl set-timezone UTC

📦 Adım 2: MongoDB’yi Kurun

1. MongoDB GPG Anahtarını İçe Aktarın

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg

2. MongoDB Deposu Ekleyin

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Not: Ubuntu 22.04 kullanıyorsanız focal yerine jammy veya sürümünüzü değiştirin.

3. MongoDB’yi Kurun

sudo apt update
sudo apt install -y mongodb-org

🧪 Adım 3: MongoDB’yi Başlatın ve Etkinleştirin

sudo systemctl start mongod
sudo systemctl enable mongod

Durumu kontrol edin:

sudo systemctl status mongod

🔐 Adım 4: MongoDB Sunucunuzu Güvence Altına Alın

Varsayılan olarak, MongoDB 127.0.0.1’e bağlanır. Uzaktan erişim istiyorsanız:

1. Yapılandırmayı Düzenleyin

sudo nano /etc/mongod.conf

net: altında bindIp satırını bulun ve değiştirin:

bindIp: 127.0.0.1,0.0.0.0

2. Kimlik Doğrulamayı Etkinleştirin

security: bölümünün altına ekleyin:

security:
authorization: enabled

MongoDB’yi yeniden başlatın:

sudo systemctl restart mongod

👤 Adım 5: Yönetici Kullanıcısı Oluşturun

MongoDB shell’ine erişin:

mongosh

Bir yönetici kullanıcısı oluşturun:

use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123!",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

Çıkmak için exit yazın, ardından giriş test edin:

mongosh -u admin -p --authenticationDatabase admin

🛡️ Adım 6: VPS ve MongoDB’yi Güçlendirin

1. UFW Güvenlik Duvarı

sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enable

Tek bir IP’den uzaktan erişim için:

sudo ufw allow from YOUR.IP.ADDRESS to any port 27017

2. Fail2Ban (SSH Koruması)

sudo apt install fail2ban -y
sudo systemctl enable fail2ban

⚙️ Adım 7: İleri Düzey Optimizasyon (İsteğe Bağlı)

1. Yüksek Erişilebilirlik için Replica Set

/etc/mongod.conf dosyasını düzenleyin:

replication:
replSetName: "rs0"

Başlatın:

mongosh
rs.initiate()

2. Yedekleme Stratejisi

Yedeklemeler için mongodump kullanın:

mongodump --out /var/backups/mongodb/$(date +%F)

Cron ile otomatikleştirin:

crontab -e
# Daily at 2 AM
0 2 * * * /usr/bin/mongodump --out /var/backups/mongodb/$(date +%F)

3. Şifreli Bağlantılar için TLS/SSL Kullanın

Sertifikaları oluşturun ve mongod.conf dosyasındaki net.ssl bölümünü yapılandırın. Bu, daha fazla kurulum ve güvenilir bir sertifika otoritesi (CA) gerektirir.

🧪 Adım 8: Dağıtımınızı Test Edin

Uzaktan bağlantıyı test edebilirsiniz:

mongosh "mongodb://admin:StrongPassword123!@your-server-ip:27017/admin"

your-server-ip’yi VPS IP’niz veya alan adınızla değiştirin.

📊 Adım 9: MongoDB’nizi İzleyin

Şunları düşünün:

  • MongoDB Atlas İzleme Aracı (isteğe bağlı)

  • Prometheus + Grafana ile exporter’lar

  • Cron ve logwatch ile özel uyarılar

Ayrıca logları doğrudan izleyebilirsiniz:

sudo tail -f /var/log/mongodb/mongod.log

✅ Son Kontrol Listesi

  • MongoDB kurulu ve çalışıyor

  • Uzaktan erişim güvence altına alındı

  • Yönetici kimlik doğrulaması zorunlu hale getirildi

  • Güvenlik duvarı yapılandırıldı

  • Yedeklemeler mevcut

  • İsteğe bağlı izleme etkinleştirildi

🧩 Sonuç

VPS üzerinde MongoDB çalıştırmak, size eşsiz bir esneklik sağlar, ancak güvenlik, yedeklemeler ve performansa dikkat edilmesi gerekir. Bu kılavuzu takip ederek, güvenli ve üretime hazır bir MongoDB instance’ı oluşturmuş oldunuz, uygulamanız büyüdükçe ölçeklenmeye hazır.