Lewati ke konten utama
diskon 50% semua paket, waktu terbatas. Mulai dari $2.48/mo
Sisa waktu: 17 mnt
Arsitektur Cloud dan IT

VPS Terbaik untuk Hosting Basis Data: Pilih Sesuai Beban Kerja

S Oleh Sugu 17 menit baca
Ilustrasi server basis data dan prosesor untuk hosting basis data VPS

Dua basis data bisa memakai ruang disk sama tetapi memerlukan VPS berbeda. Yang satu berulang kali membaca sedikit baris; lainnya terus menulis, membangun indeks besar, atau harus pulih cepat setelah kegagalan. Memilih VPS basis data terbaik dimulai dari perbedaan ini sebelum membandingkan penyedia.

Membeli VPS mandiri berarti bertanggung jawab atas operasi basis data. PostgreSQL, MySQL, dan MariaDB memiliki anggaran memori berbeda; kapasitas pemulihan harus dirancang bersama server utama. Konfigurasi awal harus menyisakan ruang untuk pencadangan dan pemeliharaan, lalu lolos uji beban representatif.

Ukur Beban Basis Data Sebelum Memilih Paket

Ukur data dan indeks aktif, kueri bersamaan saat puncak, pertumbuhan, serta kebutuhan pemulihan sebelum memilih CPU, RAM, atau disk. Tambah sumber daya sesuai kendala terukur. Sertakan ruang pemeliharaan dan konsumsi puncak aplikasi jika berbagi host; anggaran harus menampung periode sibuk dan operasi biasa.

Set kerja adalah data dan indeks yang cukup sering diakses sehingga bermanfaat disimpan dalam memori. Ukuran tersimpan juga mencakup data dingin. Koneksi terbuka bukan kueri aktif: klien menganggur dan pengurutan bersamaan memerlukan RAM dan CPU berbeda. Catat keduanya, bentuk kueri, serta campuran baca/tulis.

Susun kebutuhan pembelian dari periode sibuk representatif:

  • Ukur memori puncak aplikasi jika berbagi VPS.
  • Catat ukuran basis data dan indeks, perkiraan set kerja, operasi bersamaan, dan pertumbuhan selama horizon kapasitas.
  • Ukur produksi log dan tentukan pembangunan indeks, penulisan ulang tabel, atau pemeliharaan terbesar yang diperkirakan.
  • Tetapkan target latensi p95, jendela kehilangan data yang diterima, dan target waktu pemulihan.
  • Tentukan lokasi aplikasi dan uji jalurnya ke basis data.

Dokumentasi pemantauan PostgreSQL menyarankan statistik basis data dipadukan dengan utilitas sistem operasi. Kumpulkan CPU, tekanan memori, dan aktivitas disk bersama waktu kueri dan commit. Kenaikan latensi saat pencadangan perlu diteliti meski pemeriksaan server menganggur terlihat baik.

vCPU khusus memberi akses berkelanjutan ke CPU yang dialokasikan. Ini bukan seluruh server fisik dan tidak menentukan IOPS penyimpanan. Nilai CPU, RAM, dan perilaku penyimpanan secara terpisah. Jika kebutuhan terukur melampaui VPS yang tersedia, pertimbangkan perangkat keras khusus alih-alih menebak dari nama paket lebih besar.

Cocokkan Beban SQL dengan Konfigurasi Awal

Contoh ukuran beban basis data untuk aplikasi satu host dan terpisah

Gunakan PostgreSQL 16, MySQL 8.4 dengan InnoDB, atau MariaDB 11.4 dengan InnoDB sebagai lingkungan alternatif sesuai kompatibilitas aplikasi. Mesin ini tidak saling menggantikan dan bukan klaim versi terbaru. Catat versi patch terpasang sebelum pengujian; contoh tidak menentukan versi image penyedia.

Satukan Aplikasi Kecil dan Basis Datanya

Untuk asumsi basis data 3 GB, set panas 1 GB, dan lima kueri sederhana berindeks aktif, uji VPS 2 vCPU, RAM 4 GB, serta SSD atau NVMe nominal 60 GB. Koneksi tetap lokal, tetapi aplikasi dan basis data harus muat dalam anggaran memori puncak bersama.

Asumsikan baca/tulis 90/10, pertumbuhan 1 GB per bulan, dan tanpa laporan panjang saat pencadangan. CPU bersama dapat cocok untuk staging yang toleran. Pilih alokasi khusus jika perebutan sumber daya berkelanjutan mengganggu respons; perbandingan produksi berikut memakai vCPU khusus seluruhnya.

Usulan alokasi RAM berikut seluruhnya dalam GB:

Pemakai Asumsi RAM
OS dan agen pemantauan 0.75
Aplikasi saat puncak 1
Cache basis data 1
Cache sistem berkas 0.75
Cadangan kueri, koneksi, dan pemeliharaan 0.5
Total 4

Sesuaikan pool InnoDB MySQL atau MariaDB dengan anggaran ini. Persentase memori server basis data khusus yang diterapkan ke seluruh host akan mengambil jatah aplikasi. Untuk PostgreSQL, hitung buffer bersama dan memori operasi terpisah dalam alokasi dan cadangan basis data. Ukur puncak gabungan sebelum menerima salah satu konfigurasi.

Contoh disk: OS/log 5 GB, data/indeks 3 GB, log mesin 4 GB, ruang sementara 3 GB, pertumbuhan 6 GB; total 21 GB. Sisa nominal menampung overhead sistem berkas dan pekerjaan sementara, bukan alasan menyimpan retensi cadangan di server utama.

Hubungkan lewat soket lokal atau localhost. Uji commit tahan lama saat aplikasi dan pencadangan aktif, termasuk sinkronisasi (fsync) yang meminta OS menyimpan data ke media tahan lama. Jika pemilik menerima RPO 24 jam, yakni jendela kehilangan data, serta RTO empat jam, yakni target waktu pemulihan, usulkan pencadangan native malam hari di luar node dan buktikan durasinya lewat latihan. Jika anggaran memori, latensi, atau pemulihan gagal, pisahkan, perbesar, atau revisi pemulihan setelah diagnosis kueri/indeks.

Pisahkan Basis Data SQL Transaksional

Dengan aplikasi di host lain, contoh basis data SQL 12 GB dengan set panas 6 GB dapat mulai diuji pada 2 vCPU khusus, RAM kelas 16 GB, dan penyimpanan lokal kelas 50 GB. Asumsi: 20 kueri berindeks aktif, penulisan singkat, dan komputasi berkelanjutan rendah; operasi lebih berat bisa membatalkan anggaran.

Asumsikan baca/tulis 90/10 dan pertumbuhan 1 GB per bulan selama tiga bulan. Ini beban acuan tabel penyedia. Karena satuan berbeda, bandingkan memori tersedia dan byte sistem berkas yang benar-benar dapat dipakai sebelum menerapkan alokasi.

Untuk VPS PostgreSQL, panduan buffer bersama PostgreSQL 16 mulai dari 25% RAM sistem pada server basis data khusus dengan RAM minimal 1 GB. PostgreSQL juga memakai cache OS. Usulan 16 GB: buffer bersama 4 GB, OS/agen 2 GB, cadangan kueri/koneksi/pemeliharaan 2 GB, serta cache berkas/ruang bebas 8 GB.

Cadangan bukan nilai work_mem. Dokumentasi memori operasi kueri PostgreSQL menjelaskan bahwa pengurutan dan hash terpisah masing-masing dapat mengalokasikan memori saat banyak sesi berjalan. Hash juga memakai hash_mem_multiplier. Batasi operasi sesuai konkurensi yang diizinkan; nilai besar per operasi dapat melampaui anggaran meski buffer bersama cukup.

Untuk MySQL VPS, panduan buffer pool MySQL 8.4 Oracle biasanya menyarankan 50–75% RAM sistem dengan memperhitungkan OS dan alokasi lain. Uji pool InnoDB 8 GB dan sisakan selebihnya untuk pemakai lain serta puncak.

MariaDB memerlukan perhitungan lain. Panduan alokasi memorinya mulai dari 60–70% RAM tersedia setelah OS/layanan untuk sistem dominan InnoDB. Dengan 13 GB tersedia, hasilnya 7,8–9,1 GB; pool awal 8 GB cocok. MyISAM atau Aria perlu cache tersendiri. Anggaran mesin ini alternatif, jangan dijumlahkan.

Disk: data/indeks 12 GB + pertumbuhan 3 GB + OS 5 GB + log 4 GB + sementara/pemeliharaan 8 GB = 32 GB. Disk kelas 50 GB menyisakan sekitar 18 GB nominal sebelum overhead. Wajibkan ruang bebas terukur minimal 15 GB; log atau penulisan ulang lebih besar membatalkan contoh ini.

Dekatkan aplikasi dan basis data dengan jalur privat teruji jika didukung, autentikasi, kendali akses, dan enkripsi. Periksa latensi kueri serta commit tahan lama saat checkpoint, flush, dan backup. Alokasikan penyimpanan cadangan independen; kasus pemulihan berikut merincinya. Perbesar jika sumber daya jenuh, ruang bebas gagal, atau target pemulihan tak tercapai setelah diagnosis kueri/indeks.

Anggarkan Set Kerja Lebih Besar atau Penulisan Berkelanjutan

Untuk asumsi data 100 GB dengan set panas 16 GB, uji 4 vCPU khusus, RAM 32 GB, dan NVMe kelas 300 GB. Pisahkan aplikasi. Contoh ini mengizinkan 30 kueri campuran aktif dan baca/tulis 60/40; ukur eksekusi serta tekanan penyimpanan sebelum menentukan peningkatan.

Asumsikan pertumbuhan 10 GB per bulan selama tiga bulan. PostgreSQL: buffer bersama 8 GB, cadangan OS/kueri/pemeliharaan 4 GB, cache berkas/ruang bebas 20 GB. Pool InnoDB sekitar 16 GB adalah alternatif awal MySQL/MariaDB setelah pemakai lain dicadangkan. Pengaturan PostgreSQL tidak dapat dipindahkan begitu saja.

Penyimpanan mencakup pekerjaan berjalan: data/indeks 100 GB + pertumbuhan 30 GB + log tersimpan/antrean 30 GB + operasi sementara/pemeliharaan terbesar 60 GB + OS 10 GB = 230 GB. Tersisa sekitar 70 GB nominal. Penulisan ulang tabel lebih besar harus dihitung ulang meski pertumbuhan harian kecil.

Dokumentasi vacuum rutin PostgreSQL membedakan VACUUM yang membuat ruang baris mati dapat dipakai lagi dari VACUUM FULL yang menulis salinan baru dan sementara memerlukan ruang tambahan. Disk yang hanya sedikit lebih besar dari data bisa menghalangi pemeliharaan untuk mengembalikan ruang.

Ukur eksekusi CPU, tekanan cache, dan I/O fisik terpisah dari latensi tulis. Sertakan penulisan sementara serta checkpoint/flush. NVMe dan CPU khusus mendeskripsikan konfigurasi, bukan jaminan IOPS. Uji transfer backup dan replikasi berkelanjutan dengan koneksi aplikasi privat dekat serta penyimpanan pemulihan independen. Log lebih cepat mengubah kapasitas retensi dan kebutuhan jaringan. Tambah core, RAM, atau disk sesuai kendala teramati, bukan karena paket berikut menaikkan ketiganya.

Tambahkan Kapasitas Pemulihan ke Produksi

Desain pemulihan basis data dengan backup independen dan log pemulihan

Jendela kehilangan 15 menit dan target pemulihan satu jam memerlukan desain di luar anggaran utama. Pertahankan asumsi SQL terpisah, lalu tambah backup native, log pemulihan, penyimpanan independen, dan latihan terukur. Angka ini target perencanaan; hanya latihan yang membuktikan pencapaiannya.

Dokumentasi pengarsipan berkelanjutan PostgreSQL menjelaskan backup dasar dan arsip WAL tanpa putus untuk pemulihan titik waktu. Dokumentasi pemulihan MySQL Oracle memakai backup penuh disusul log biner. Prosedur PITR MariaDB memulihkan data penuh/inkremental sebelum memutar ulang log biner. Logging biner wajib diaktifkan untuk alur MySQL/MariaDB ini.

Contoh kapasitas: setiap backup penuh/dasar tanpa kompresi 12 GB. Simpan tiga dasar mingguan dan log berkelanjutan sejak awal dasar tertua. Anggarkan sampai 21 hari log sebesar 2 GB per hari dengan margin 20%:

(3 × 12 + 21 × 2) × 1.2 = 93.6 GB

Siapkan minimal 100 GB penyimpanan cadangan independen tanpa mengasumsikan kompresi. Kaitkan penghapusan log dengan kedaluwarsa backup dan penggantian berhasil. Pastikan dasar dan log membentuk rantai lengkap untuk setiap titik pemulihan yang dijanjikan.

Gunakan cadangan pada target independen, dengan kredensial serta kontrol hapus terpisah dari utama. Snapshot penyedia saja tidak membuktikan rantai pemulihan native ini. Latihan harus menyediakan target bersih, mentransfer dan memulihkan backup, memutar ulang log, memeriksa konsistensi basis data/aplikasi, lalu mengarahkan aplikasi. Hitung penyediaan dan transfer juga.

Target gangguan lebih singkat bisa memerlukan replika independen untuk seluruh beban. Anggarkan CPU, RAM, dan disk terpisah; tetapkan promosi, isolasi utama lama, dan perutean klien. Latih urutannya. Replikasi bukan pengganti backup dan satu VPS bukan ketersediaan tinggi. Revisi jika pemulihan lebih dari sejam, lag arsip melampaui RPO, standby gagal menanggung beban, atau backup mendekati batas kapasitas.

Kapan Memilih VPS Terkelola

Jika tak ada yang merespons alarm atau memulihkan basis data saat insiden, beli cakupan operasi eksplisit. VPS terkelola bisa mengalihkan sebagian pemeliharaan, tetapi kontrak harus menyebut tugas basis datanya. Panel kontrol tidak menjamin cakupan; VPS terkelola berbeda dari basis data terkelola.

Perbedaan tanggung jawab VPS terkelola dan mandiri berguna pada tingkat tugas. Jadikan ini daftar pengadaan, bukan janji bahwa semua layanan mencakup hal sama. Infrastruktur fisik tetap tanggung jawab penyedia; perangkat lunak tamu dan operasi basis data perlu pemilik eksplisit.

Pekerjaan VPS Tidak Terkelola Cakupan yang Disepakati Sebelum Membeli Pengelolaan
Patch/upgrade OS tamu dan basis data Anda menjadwalkan dan mengerjakan Versi OS/mesin yang didukung, lingkup patch, pengujian upgrade, dan jendela pemeliharaan
Penyetelan kueri, skema, dan indeks Anda mendiagnosis dan mengubah Apakah penyetelan termasuk, terbatas pada konfigurasi layanan, atau berbayar terpisah
Pemantauan dan insiden Anda mengatur alarm dan merespons Jam pemantauan, pemilik respons/eskalasi, dan pihak yang bertindak setelah alarm
Backup dan pemulihan Anda bertanggung jawab atas prosedur pemulihan Retensi, penyimpanan independen, bantuan pemulihan, serta bukti pengujian

Pertanyaan kontrak yang berguna: ‘Jika disk habis saat backup, siapa mendiagnosis, memulihkan layanan, dan memastikan backup berikutnya berhasil?’ Jawabannya membedakan akses dukungan dari tanggung jawab hasil. Tanyakan juga kegagalan upgrade mesin dan penghapusan tak sengaja.

Basis data terkelola memiliki perjanjian siklus hidup mesin, backup, dan failover sendiri. Ini bisa lebih cocok jika pemulihan dan upgrade yang ingin dialihkan. Jangan mengasumsikan penyetelan aplikasi; desain kueri dan perilaku aplikasi tetap perlu pemilik kecuali kontrak menyatakan lain.

Tetapkan setiap tugas sekali saja, dengan eskalasi dan pemeriksaan penerimaan. Bandingkan harganya dengan waktu dan kesiapan Anda. Tidak ada nilai per jam universal untuk pengelolaan mandiri; tagihan komputasi murah tidak menyelesaikan insiden tanpa penanggung jawab.

Pilih Konfigurasi VPS untuk Beban Non-SQL

Contoh membedakan beban dalam memori, dokumen, dan indeks pencarian. Dekatkan aplikasi dan uji koneksi serta transfer ke backup dan replika jika digunakan.

Beban dan Asumsi Konfigurasi Awal untuk Diuji Penyimpanan, Pemulihan, dan Pemicu Perubahan
Cache/key-value Redis; data terukur 2 GB 2 vCPU khusus, RAM 8 GB; atur maxmemory di bawah RAM host dengan cadangan overhead Cache yang bisa dibangun ulang dapat menerima kehilangan. Utama persisten perlu RDB/AOF terencana, ruang penulisan ulang, dan backup independen. Ukur memori/RSS, fragmentasi, eviksi, puncak persistensi, serta latensi ekor.
MongoDB; dokumen/indeks 20 GB dengan set panas kecil terukur 2–4 vCPU khusus, RAM 16 GB, disk lokal kelas 100 GB Anggarkan journal/oplog, pertumbuhan, dan sementara. Uji pemulihan; pantau eviksi cache, I/O disk, dan lag replikasi. Anggarkan CPU, RAM, disk setiap replika sesuai peran.
Elasticsearch; indeks kecil 30 GB 4 vCPU khusus, RAM 16 GB, disk lokal kelas 150 GB per node data terkait Anggarkan replika, penggabungan segmen, retensi, dan snapshot independen. Periksa heap/GC, latensi pencarian/indeks, I/O merge, dan disk. Ketahanan juga perlu topologi voting dan perutean klien yang tepat.

Panduan administrasi Redis memperingatkan bahwa penyimpanan RDB atau penulisan ulang AOF dengan banyak penulisan bisa memakai dua kali memori biasa, tergantung halaman berubah. Data 2 GB tidak boleh menghabiskan seluruh RAM. Dokumentasi persistensinya membedakan snapshot RDB berkala dari log AOF. Pilih menurut kehilangan yang diterima, lalu ukur puncak RAM dan disk saat berjalan.

Dokumentasi cache WiredTiger MongoDB menjelaskan cache internal dan sistem berkas. Default internal adalah yang lebih besar antara 50% × (RAM − 1 GB) atau 0,256 GB. Panduan replica set menyarankan tiga anggota penyimpan data. Arbiter memilih tanpa menyimpan data. Siapkan backup independen dan terapkan autentikasi MongoDB sebelum menghubungkan aplikasi.

Dokumentasi pengaturan JVM Elastic menyarankan ukuran heap otomatis. Jika manual, samakan minimum/maksimum dan jangan lebih dari 50% RAM tersedia. Panduan ketahanan cluster kecil menjelaskan dua node data yang layak menjadi master ditambah pemutus seri khusus voting. Konfigurasikan replika dan arahkan klien ke node data; pemutus seri menambah suara, bukan salinan. Jika merge/retensi menghabiskan cadangan disk, revisi sebelum menambah dokumen.

Bandingkan Paket Mandiri untuk Konfigurasi Anda

Untuk contoh SQL transaksional terpisah, saring paket minimal 2 vCPU khusus, RAM kelas 16 GB, penyimpanan lokal kelas 50 GB. Lolos batas hanya menjadikannya kandidat pengujian. Perbedaan bundel, satuan, dan komitmen tagihan tidak memungkinkan penyetaraan perangkat keras atau peringkat kinerja.

Acuan: Linux mandiri di Jerman atau Eropa Tengah dekat, data kecil dan RAM lebih besar. Lokasi dekat tidak menjamin latensi sama. Jalur aplikasi privat jika didukung, dengan IPv4 publik standar dalam penawaran. Asumsikan transfer di bawah semua kuota.

Penyedia dan Paket Mandiri vCPU Khusus / RAM / Disk Lokal Lokasi dan Kuota Transfer Biaya, Tagihan, dan IPv4
Cloudzy: Regular Dedicated CPU kami 8 / 16 GB / 350 GB NVMe Lokasi di berbagai wilayah dunia; 10 TB $49,98/bulan; IPv4 dan IPv6 termasuk
Hetzner CCX23 4 / 16 GB / 160 GB NVMe EU-central NBG1/HEL1; minimal 20 TB di UE Batas €86,49/bulan termasuk IPv4 utama €0,50, belum PPN
DigitalOcean Memory-Optimized Droplet bundel, CPU Regular, SSD 1× 2 / 16 GiB / 50 GiB NVMe Keluarga tersedia di FRA1; 4.000 GiB Batas $84/bulan; $0,125/jam; IPv4 publik termasuk
Vultr Optimized Cloud Compute, Memory Optimized, AMD 2 core/16 GB/100 GB 2 / 16.384 MB / 100 GB NVMe Frankfurt (fra); 6.144 GB $80/bulan; $0,11/jam; IPv4 default; pastikan biaya terpisah atau diskon tanpa IPv4 sebelum menganggarkan
Akamai/Linode G7 Dedicated 16x8 8 / 16.384 MB / disk SSD 327.680 MB (kelas paket 320 GB) Frankfurt (de-fra-2) tercatat tersedia; 6.000 GB $173/bulan; $0,2595/jam; IPv4 publik standar tanpa biaya tambahan

Panduan pemilihan DigitalOcean menempatkan Memory-Optimized untuk basis data SQL/NoSQL dan cache. Saya menyarankan bundel ini untuk disk kecil dan kebutuhan RAM besar. VPS optimal memori bukan hanya untuk SQL. Jika kendalanya kapasitas atau kebutuhan penyimpanan berkelanjutan, evaluasi bundel Storage-Optimized secara terpisah.

Kelima paket memenuhi batas acuan dengan tambahan CPU/disk berbeda. Cadangan bisa mendukung pertumbuhan, tetapi bukan bukti keunggulan kecepatan tanpa pengujian. Daftar Hetzner tidak menjamin stok. Akamai mendokumentasikan SSD untuk G7 Dedicated. Optimized Memory Vultr terpisah dari High Frequency Compute bersama.

Alokasi khusus kami cocok untuk konfigurasi mandiri pada harga tersebut. Bandingkan sumber daya, mata uang, komitmen tagihan, serta biaya IPv4 sebelum menilai keseluruhan.

Biaya kepemilikan: komputasi + alamat + penyimpanan/permintaan/transfer backup independen + kapasitas uji pemulihan + standby opsional. Biaya tak diketahui bukan nol. Dapatkan biaya pemulihan terbaru dan verifikasi paket, lokasi, serta jalur upgrade sebelum berkomitmen. Jangan simpulkan tagihan tahunan dari kelipatan ekuivalen bulanan yang dibulatkan.

Setelah mesin SQL kompatibel dipilih, aplikasi sekali klik kami mempersingkat instalasi. PostgreSQL, MySQL, dan MariaDB merupakan pilihan terpisah; satu pilihan tidak memasang semuanya. Deployment tetap mandiri: patch, penyetelan, dan pemulihan tanggung jawab Anda.

Pertanyaan yang Sering Diajukan

Bisakah Rasio Cache-Hit PostgreSQL Menunjukkan Penyimpanan Lambat?

Tidak. Dokumentasi statistik I/O PostgreSQL menjelaskan bahwa pembacaan bisa dilayani cache OS tanpa mencapai disk. Padukan rasio hit dengan I/O OS dan waktu kueri. Rasio saja tidak membedakan kelambatan fisik disk dari pembacaan memori kernel.

Bisakah Dump Logis PostgreSQL Dipakai untuk Pemulihan Titik Waktu Berbasis WAL?

Tidak. Persyaratan pengarsipan berkelanjutan PostgreSQL menyebut dump logis tidak memiliki informasi untuk replay WAL. Dump memulihkan keadaan yang ditangkap; pemulihan WAL memerlukan backup dasar yang sesuai dan arsip WAL kontinu. Pilih format sesuai metode pemulihan.

Haruskah Cache MongoDB Memakai RAM Host Saat di Container?

Gunakan RAM tersedia bagi container. Panduan memori container MongoDB memperingatkan bahwa WiredTiger kadang tidak memperhitungkan batas container lebih rendah. Atur cache di bawah batas dengan ruang bagi proses lain; total RAM host bisa melebihkan memori tersedia untuk basis data.

Bagikan

Diskusi

Komentar

Masuk untuk bergabung dalam diskusi.

Lebih banyak dari blog

Lanjutkan membaca.

Siap deploy? Mulai $2,48/bln.

Cloud independen, sejak 2008. AMD EPYC, NVMe, 40 Gbps. Garansi uang kembali 14 hari.