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 :
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.
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
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 :
- Configurasi read/write database atau multi database pada Laravel
- Configurasi MySQL master – slave replication
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 :
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.
Recommended Posts
Data Center Tier Classification System
May 18, 2021
Pendaftaran Magang GuestPro dan Dicloud Indonesia
November 23, 2019
Acara ITCC 2019 Universitas Udayana
October 31, 2019