Jln. Astina Jaya, No. 10, Br. Pande
Blahbatuh, Gianyar - Bali
082122403014​⁠​
081288313477
info@dicloud.id
support@dicloud.id

Menjaga Performa Database dengan Database Read Replica

Menjaga Performa Database dengan Database Read Replica

Menjaga Performa Database dengan Database Read Replica. Pada postingan sebelumnya kita sudah mempelajari cara mudah untuk Optimasi MySQL dengan MySQL Query Cache, solusi tersebut mampu meningkatkan kecepatan akses aplikasi GuestPro Cloud PMS hingga 2-4x lipat. Namun belum lama menikmati akses yang lebih cepat, tiba2 ada client yang info kalau akses mereka kadang-kadang masih lambat, Wow… apalagi ini. Awalnya kami kira internet client itu yang lambat.. namun kami teliti lebih dalam dengan membandingkan history resource server dan history akses oleh client2 GuestPro, akhirnya kami menemukan permasalahannya. Yuk simak bagaimana kami menjaga performa database untuk case ini.

Introduction

GuestPro merupakan sebuah startup yang memberikan layanan system informasi berupak Cloud Property Management System. Sebagai penyedia aplikasi Cloud PMS, Guestpro memiliki PR berat untuk menjaga performa aplikasi mereka, khusunya menjaga performa database guna memberikan layanan yang cepat dan stabil kepada semua clientnya.

Permasalahan yang sekarang dihadapi GuestPro adalah laporan dimana user kadang2 mengalami akses lambat ke aplikasi GuestPro. Menerima laporan seperti ini, kami sempat berfikir apakah kami harus meng-upgrade semua server? tentu saja keputusan yang sangat menyeramkan karena harus mengeluarkan biaya yang cukup Wow. Berbekal dari rasa ingin berhemat, kami akhirnya melakukan investigasi. pertama kami melakukan monitoring disisi server aplikasi, kami melakukan pengecekan resource penggunan CPU dan RAM dan Jumlah akses seperti berikut :

Graph CPU salah satu APP Server GuestPro

Dari graph CPU salah satu server App tersebut, penggunaan resource tidak ada yang aneh, mulus2 saja. kami rasa tidak ada problem dsini, next kita langsung cek ke server database.

Graph CPU DB Server GuestPro

Ternyata oh ternyata, ada history CPU sampai 100% berkali2. selanjutnya kami cek lebih lanjut dengan membandingan dengan keterangan user, jam brapa mereka mengalami akses lambat dan dengan log history akses dari semua user yang ada. Hasil pengecekan kami menunjukkan bahwa pada jam tersebut ternyata ada banyak user yang melakukan akses ke module reporting GuestPro, hal ini menyebabkan resource CPU server terkuras banyak. mungkin sudah saatnya kami harus upgrade ke server DB yang lebih besar. Cek harga server kalau upgrade dari spek sekarang, OMG… 2x lipat harganya. kami pikir kami perlu solusi lain. Setelah berdiskusi lama, akhirnya kami menemukan solusi lain, yaitu dengan mebuat server database replikasi yang khusus untuk menangani read akses saja (read replica). Solusi ini cukup manjur, dimana resource server DB utama dapat terjaga dengan stabil.

Cara kerja Database Read Replica

Cara kerja Database Read Replica

Seperti namanya, server database ini merupakan server replikasi yang hanya digunakan untuk read akses saja. Server ini secara realtime melakukan replikasi ke server utama, sehingga data pada server ini identik dengan server utama. selajutnya beberapa query read kami arahkan ke server ini, sehingga load server utama bisa menurun. cara kerjanya cukup simple bukan?

 

Cara Setup Database Read Replica

Untuk melakukan konfigurasi database read replica guna menjaga performa database cukup mudah. Kita hanya perlu melakukan 2 kegiatan utama, yaitu membuat koneksi database baru pada aplikasi kita, dimana koneksi ini akan kita gunakan hanya untuk akses read saja dan membuat server replikasi database baru. cara confignya tentu berbeda2 sesuai dengan stack yang teman2 gunakan, berikut beberapa tutorial yang bisa teman2 ikuti :

Hasil Performa Database

Setelah menambahkan server read replica guna menjaga performa database, akses aplikasi GuestPro Cloud PMS menjadi lebih stabil. Hal ini terjadi karena beberapa load read akses ke Database sudah di bagi ke server read replica. pembagian load ini mampu menjaga kestabilan database sehingga tidak ada lagi akses lambat pada fitur2 utamanya. berikut graph CPU server read replica :

Graph CPU DB Server Read Replica GuestPro

Dari graph tersebut terlihat penggunaan CPUnya rata cukup besar, dikarenakan size servernya lebih kecil dari server utama (biar lebih hemat).

Kesimpulan

Menjaga Performa Database dengan Database Read Replica merupakan cara yang cukup mudah dan dapat menghemat biaya dibandingkan dengan meng-upgrade langsung server utama. Semoga pengalaman ini dapat berguna bagi rekan2 yang sedang merintis startup. Terima kasih.


Programmer juga nyambi di bidang system dan infrastuktur. Berpengalaman sebagai System Engineer sejak tahun 2013. Selama beberapa tahun terakhir bekerja di salah satu Bank BUMN.