#Restored Database PostgreSQL dari EBS Berbeda di AWS

Kernel sistem operasi bisa saja rusak kapanpun, baik di OS Windows ataupun Linux. Penulis akan berbagi bagaimana cara restored database PostgreSQL dari EBS (Elastic Block Store) yang berbeda di AWS.

PostgreSQL adalah salah satu database opensource yang sangat populer digunakan. EBS (Elastic Block Store) adalah “harddisk” yang dibuat untuk AWS EC2 (Elastic Compute Cloud) sebagai media penyimpanan, baik filesystem maupun data.

Studi kasusnya, EC2 dengan OS Ubuntu 22.04.3 LTS yang kita miliki tidak bisa booting. Kita juga tidak bisa melakukan SSH (Secure Shell) ke EC2 Instance tsb. Penyebabnya bisa dari aplikasi atau misconfiguration sehingga menyebabkan OS nya crash.

Pertama, login ke console AWS dan pilih EC2 Instance yang tidak bisa booting. Klik tab Storage lalu catat volume ID-nya. Dalam contoh ini nama EC2 Instance “EC2-SVR1” volume ID “vol-00747945c092ad53a”.

Kedua, masuk kemenu Elastic Block Store pilih Volumes. Centang volume-ID yang telah Anda catat sebelumnya, pilih “Actions“, lalu klik “Detach volume“. Proses ini akan “melepaskan” EBS volume dari EC2-SVR1.

Ketiga, buat EC2 Instance baru atau menggunakan EC2 Instance yang telah Anda miliki untuk me-recovery EBS. Dalam contoh ini kita telah memiliki EC2 Instance.

Kembali ke menu Elastic Block Store pilih Volumes. Centang volume-ID yang telah Anda “Detach” pada langkah kedua sebelumnya, pilih “Actions“, lalu klik “Attach volume“. Proses ini akan “mengaitkan” EBS volume ke EC2-SVR2 (Recovery Server).

Ditampilan windows berikutnya, pilih Instance EC2-SVR2, dalam contoh ID nya “i-04d0f54e769355de4”, Device name biarkan default “/dev/sdf”, lalu klik “Attach volume“.

Keempat, untuk memastikan EBS telah berhasil di “Attach“, klik EC2 Instance EC2-SVR2 lalu pilih tab Storage. Terlihat 2(dua) volumes, dimana yang bawah adalah volume yang baru kita “Attach“.

Kelima, lakukan koneksi SSH dari local notebook/PC Anda ke EC2-SVR2. Dalam contoh ini penulis menggunakan Putty. Tulis username loginnya : ubuntu (sesuaikan dengan username Anda).

Karena posisi EC2-SVR2 Instance ini berada di Private Subnet, maka SSH harus melalui “Bastion Server” yang berada di Public Subnet. Penulis menggunakan topology best practices, yaitu membuat segregasi resources, dimana Database Server PostgreSQL berada di Private Subnet.

Setelah masuk ke “Bastion Server”, lakukan koneksi ke EC2-SVR2 dengan menuliskan ssh -i namakeypairs.pem namauser@ip-ec2-svr2, enter lalu masukan password. Bila berhasil maka posisi console akan berpindah (lihat perbedaan IP Address). Berikut contohnya.

Keenam, cek volume yang telah di “mounting” dengan menuliskan df -h lalu enter. Terlihat hanya satu volume “/dev/nvme0n1p1”, yaitu sebagai root volume EC2-SVR2. Anda catat saja root volume ini.

Ketujuh, tampilkan list volume dengan menuliskan lsblk lalu enter. Terlihat root volume dan volume baru yang telah kita “Attach”. Dalam contoh namanya “nvme1n1”, terdiri dari 3(tiga) partisi. Anda cukup mencatat nama partisi “data” nya saja, yaitu “nvme1n1p1”.

Sebagai catatan, nama volume device yang ada di AWS console tidak selalu sama dengan nama yang muncul saat Anda menggunakan perintah lsblk di terminal Ubuntu, so… jangan bingung.

Kedelapan, buat folder/directory “backupdb” di dalam directory /mnt yang akan digunakan sebagai mounting drive/volume. Tulis cd /mnt enter, lalu tulis sudo mkdir backupdb lalu enter. Tulis ls untuk menampilkan directory yang kita buat.

Kesembilan, tulis sudo mount /dev/nvme1n1p1 /mnt/backupdb, perintah ini akan me-mounting volume nvme1n1p1 ke directory /mnt/backupdb. Nama volume tsb kita dapatkan di langkah Ketujuh.

Kesepuluh, untuk memastikan mounting berhasil/tidak, tulis perintah ls lalu enter (sebelumnya pastikan Anda telah berada di directory /mnt/backupdb).

Hmm… panjang juga tulisannya, ini baru setengah perjalanan saudara2. hehe. Pembahasan cara restored data ini ke directory PostgreSQL tunggu tulisan berikutnya ya, happy weekend !!!

Leave a comment