Database

Cara Instalasi PostgreSQL di Ubuntu 24.04 LTS

Cara Instalasi PostgreSQL di Ubuntu 24.04 LTS
Daftar Isi

PostgreSQL mempunyai reputasi kuat mengenai standards compliance, extensibility, dan dukungan tipe data yang lebih kaya dibanding kebanyakan RDBMS lain (JSONB, array, range type, custom type). Panduan ini membahas instalasi PostgreSQL versi terbaru dari repository resmi PGDG di Ubuntu 24.04 LTS menggunakan paket qVM-2, mulai dari setup repository, pembuatan role dan database, konfigurasi autentikasi menggunakan pg_hba.conf, sampai verifikasi koneksi.

Pengenalan

PostgreSQL sebenarnya tidak punya tier "LTS" resmi seperti Ubuntu atau Node.js. Tiap major version — 16, 17, 18, dan seterusnya — sama-sama dapat dukungan resmi selama 5 tahun sejak rilis, lalu EOL. Jadi versi yang paling "long-term" otomatis versi terbaru, karena sisa masa dukungannya paling panjang. Ubuntu 24.04 LTS sendiri di repository default-nya hanya menyediakan PostgreSQL 16 (versi yang sudah ada saat Ubuntu 24.04 dirilis, dan otomatis makin tua seiring waktu karena repository Ubuntu tidak ikut update ke major version baru). Panduan ini menggunakan repository resmi PGDG (PostgreSQL Global Development Group) supaya bisa melakukan instalasi PostgreSQL 18 — major version terbaru dengan sisa masa dukungan sampai sekitar 2031.

Soal manajemen akses, kalau sudah terbiasa dengan MySQL/MariaDB, hal pertama yang terasa beda di PostgreSQL adalah cara mengatur siapa boleh akses apa. MySQL menyatukan konsep user dan privilege jadi satu — tinggal CREATE USER lalu GRANT. PostgreSQL memisahkannya jadi dua lapis: role (bisa berfungsi sebagai user atau group) yang diatur melalui SQL, dan pg_hba.conf yang menentukan dari mana, melalui method apa, dan ke database mana sebuah role boleh connect. Dua file inilah — postgresql.conf untuk parameter server, pg_hba.conf untuk aturan autentikasi — yang perlu dipahami sebelum PostgreSQL dibuka untuk akses remote.

Begitu instalasi selesai, otomatis dibuatkan OS-level user bernama postgres, yang jadi superuser database secara default. PostgreSQL sengaja mengikat akses lokal ke OS user melalui peer authentication — login sebagai postgres di database cuma bisa dilakukan melalui user Linux postgres.

qVM yang dipakai di panduan ini diasumsikan masih fresh install, belum ada konfigurasi tambahan apa pun.

Persyaratan

Software

  • Ubuntu 24.04 LTS, kondisi fresh install
  • Akses root atau user dengan hak sudo
  • Koneksi internet untuk mengunduh package dari repository resmi PGDG
  • SSH client di sisi lokal untuk remote ke qVM

Hardware / Spesifikasi VPS qVM

Panduan ini menggunakan paket qVM-2, dengan spesifikasi:

  • vCPU: 1 core
  • RAM: 2 GiB
  • Storage: 50 GiB

RAM 2 GiB cukup untuk workload kecil sampai menengah tanpa tuning tambahan. Parameter seperti shared_buffers dan work_mem memang idealnya disesuaikan dengan RAM yang tersedia, tapi default bawaan PostgreSQL sudah cukup konservatif dan aman langsung digunakan di qVM-2.

Tahapan

1. Update dan Upgrade OS Ubuntu 24.04 LTS

bash
apt update && sudo apt upgrade -y

2. Tambahkan Repository Resmi PGDG

bash
apt install -y postgresql-common

Jalankan script setup resmi dari PGDG — otomatis mendeteksi codename Ubuntu (noble) dan menambahkan repository yang sesuai:

bash
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y

SCR-20260819-mfxo

3. Instalasi PostgreSQL 18

bash
apt install postgresql-18 -y

Sejak beberapa major version terakhir, sebagian besar modul contrib sudah ikut terbundle di package utama, jadi tidak perlu instal postgresql-contrib terpisah untuk kebutuhan umum.

Aktifkan biar jalan otomatis tiap qVM reboot, lalu cek statusnya:

bash
systemctl enable postgresql
systemctl status postgresql

Cek versi yang terpasang:

bash
psql --version

SCR-20260819-mhjg

4. Set Password untuk Role postgres

Masuk sebagai OS user postgres (sudah otomatis dibuat sejak instalasi), lanjut masuk ke psql:

bash
sudo -i -u postgres psql

Set password buat role postgres — dibutuhkan nanti kalau mau connect menggunakan password authentication, bukan hanya mengandalkan peer authentication via OS user:

sql
ALTER USER postgres WITH PASSWORD 'PasswordKuatAnda';
\q

SCR-20260819-mhrt

5. Membuat Role dan Database Aplikasi

Masih sebagai OS user postgres, buat role dan database khusus untuk aplikasi. Jangan pernah menggunakan role postgres langsung buat koneksi aplikasi — sama seperti prinsip di MySQL, aplikasi harus punya akses terbatas, bukan superuser.

bash
sudo -i -u postgres createuser --interactive app_user

Jawab n untuk pertanyaan "Shall the new role be a superuser?" kecuali memang sengaja butuh. Buat database, langsung set ownership-nya ke role tadi:

bash
sudo -i -u postgres createdb app_db --owner=app_user

Set password untuk role aplikasi melalui psql:

bash
sudo -i -u postgres psql -c "ALTER USER app_user WITH PASSWORD 'PasswordKuatAnda';"

6. Konfigurasi Remote Access (Opsional)

qVM tidak punya private network antar-instance — tiap qVM cuma punya IP Publik, jadi akses remote ke database otomatis melalui internet publik. qVM juga tidak mengaktifkan firewall (ufw) secara default, artinya port yang listen langsung bisa dijangkau dari internet. Konsekuensinya, entry di pg_hba.conf yang dibatasi per-IP jadi satu-satunya lapisan proteksi — jangan sampai isi baris ini 0.0.0.0/0.

Abaikan tahap ini kalau aplikasi berjalan di server yang sama. Lanjutkan hanya kalau aplikasi memang benar-benar berjalan di qVM terpisah.

Edit postgresql.conf supaya PostgreSQL listen di IP Publik qVM ini, bukan cuma localhost:

bash
vim /etc/postgresql/18/main/postgresql.conf

Cari baris:

text
#listen_addresses = 'localhost'

Ubah jadi:

text
listen_addresses = 'localhost,161.248.116.110'

Edit pg_hba.conf supaya cuma IP client tertentu yang boleh connect menggunakan password — inilah file yang benar-benar menentukan siapa boleh akses dari mana:

bash
vim /etc/postgresql/18/main/pg_hba.conf

Tambahkan baris berikut di bagian paling bawah file (scram-sha-256 adalah default hashing PostgreSQL 14 ke atas, jauh lebih kuat dibanding md5 yang masih sering muncul di tutorial-tutorial lama). Notasi /32 artinya satu host spesifik, bukan subnet:

text
host    app_db    app_user    161.248.116.110/32    scram-sha-256

Ganti 161.248.116.110 dengan IP Publik qVM aplikasi yang akan connect. Kalau ada beberapa client, tambahkan satu baris per IP — PostgreSQL menolak koneksi dari IP mana pun yang tidak match baris pg_hba.conf, walau port 5432 sendiri bisa dijangkau dari mana saja di internet.

Restart supaya konfigurasi diterapkan:

bash
systemctl restart postgresql

7. Verifikasi Instalasi

bash
psql -h localhost -U app_user -d app_db -c "SELECT version();"

SCR-20260819-mjic

Kalau diminta password dan query berhasil balikin version string yang menyebut PostgreSQL 18, instalasi sudah siap dipakai aplikasi.

Kesimpulan

VPS qVM-2 (1 core, 2 GiB RAM, 50 GiB storage) sekarang sudah jalanin PostgreSQL 18 dari repository resmi PGDG — major version dengan sisa masa dukungan terpanjang saat ini, dibanding PostgreSQL 16 bawaan repository default Ubuntu. Role dan database aplikasi sudah terpisah dari superuser postgres, dan remote access diatur eksplisit melalui pg_hba.conf, bukan sekadar buka port ke 0.0.0.0. Untuk kebutuhan backup, pg_dump/pg_basebackup bisa dijadwalkan melalui cron mirip pola mysqldump di MySQL/MariaDB. Kalau traffic sudah tumbuh signifikan dan butuh high availability, PostgreSQL punya streaming replication bawaan yang layak dipelajari sebagai langkah lanjutan.

Mulai Kelola Infrastruktur Cloud Anda

Akun Sequel Anda siap untuk memesan & mengelola layanan cloud.

Bagikan
Apakah artikel ini membantu?