Anda di halaman 1dari 13

BAB 1

PENDAHULUAN

1.1 LATAR BELAKANG


Seiring dengan berkembangnya teknologi informasi yang semakin pesat,
pengguna dengan mudah mendapatkan informasi yang dibutuhkan dalam waktu
yang relatif singkat. Kebutuhan komunikasi data pun menjadi sangat penting. Hal
yang sangat penting bagi teknologi informasi dan komunikasi data adalah database
sebagai penyedia data. Karena semakin bertambah dan banyaknya pengguna dalam
hal pengaksesan informasi menimbulkan padatnya traffic access baik dalam sisi
aplikasi terutama pada pengolahan data pada sisi database. Terlebih lagi apabila
pengaksesan aplikasi dilakukan secara concurrent dapat mengakibatkan crash baik
pada sisi server aplikasi terutama server database. Oleh sebab itu, diperlukan
perancangan yang tepat dan handal dalam membangun database server. Salah satu
solusi yang dapat diterapkan untuk mengatasi permasalahan tersebu tadalah dengan
menerapkan teknologi Cluster database.
Cluster database atau biasa juga disebut database clustering adalah
kumpulan dari beberapa server yang berdiri sendiri kemudian bekerjasama sebagai
suatu sistem tunggal, Hal ini secara langsung berdampak pada server database
sebagai penyedia layanan terhadap akses data. Oleh sebab itu beban database
server akan dibagi kemasing-masing database server dalam satu cluster
menggunakan server HA Proxy sebagai load balancer. Sehingga dapat diharapkan
dengan adanya pengelompokan clustering tersebut kinerja pengolahan data yang
dilakukan oleh server database tersebut dapat merata dan dapat terkontrol dengan
baik dan yang dihasilkan juga dapat maksimal sehingga layanan akan data dalam
sebuah sistem informasi dapat terpenuhi.

1.2 RUMUSAN MASALAH


Adapun rumusan masalah dari penelitian ini adalah sebagai berikut:
1. Bagaimana cara untuk menghasilkan sebuah layanan database yang mampu
menangani kebutuhan akses database yang besar?
2. Bagaimana cara membagi beban dari database server dengan Teknik
clustering?

1.3 BATASAN MASALAH


Dalam mengimplementasikan Load Balancing dan Replikasi Database
dengan HAproxy penulis memiliki beberapa batasan, yaitu:
1. Penelitian hanya menggunakan HAproxy sebagai loadbalancer.
2. Replikasi database yang dilakukan master to slave dan master to master.

1.4 TUJUAN IMPLEMENTASI


Adapun tujuan implementasi load balancing dan replikasi database
menggunakan HAProxy ialah :
1. Mengetahui cara untuk menghasilkan sebuah layanan database yang mampu
menangani kebutuhan akan akses database yang besar.
2. Mengetahui cara membagi beban dari database server dengan Teknik
clustering.

1.5 MANFAAT IMPLEMENTASI


Adapun manfaat dari implementasi Haproxy Load Balancing sebagai berikut:
1. Bagi penulis menjadi pengasah kemampuan untuk merancang sekaligus
membangun sebuah sistem dari nol hingga bisa digunakan.
2. Bagi pembaca, menjadi refrensi yang akurat dalam membangun sebuah
jaringan dengan memanfaatkan HAproxy sebagai Load balancer dan
penggunaan Teknik clustering database.
BAB II
LANDASAN TEORI

2.1 DATABASE
Basis data atau database adalah kumpulan data yang secara logik berkaitan
dalam merepresentasikan fenomena atau fakta secara terstruktur dalam domain
tertentu untuk mendukung aplikasi pada sistem tertentu. Basis data mendekripsikan
state organisasi atau perusahaan atau sistem dan merupakan komponen utama
sistem informasi karena semua informasi untuk pengambilan keputusan berasal dari
data pada database. (Hariyanto, 2004)

2.2 CLUSTERING
Secara umum, salah satu karakteristik utama komputer cluster adalah konsep
single entity dimana kumpulan banyak komputer yang menjadi komputer cluster
dipandang sebagai satu kesatuan sistem tunggal. (Han & Kamber, 2006) Suatu
clustering merupakan suatu kelompok yang terdiri dari dua atau lebih yang
ditugaskan secara khusus untuk menjalankan satu atau beberapa aplikasi yang
dihubungkan dengan sedemikian rupa yang apabila terdapat kesalahan atau tidak
berfungsi salah satu mesin, maka akan diambil alih atau digantikan oleh mesin yang
lain secara otomatis. (Syamsu, 2018)

2.3 CLUSTER DATABASE


Database Clustering adalah kumpulan dari beberapa server yang berdiri
sendiri dan kemudian bekerja sama sebagai suatu kesatuan sistem tunggal (Hodges,
2007). Saat ini aplikasi database semakin berkembang, baik dalam hal kegunaan,
ukuran, maupun kompleksitas. Hal ini secara langsung berdampak pada
serverdatabase sebagai penyedia layanan terhadap akses database, konsekuensi dari
semua itu adalah beban database server akan semakin bertambah berat dan
mengakibatkan kurang optimalnya kinerja dari server tersebut.
Oleh karena itu diperlukan perancangan yang tepat dan handal dalam
membangun database server. Database pada masa sekarang ini dituntut agar dapat
berjalan dengan cepat, mempunyai kehandalan dan keseterdiaan yang tinggi,
dengan clustering database yang disimpan dapat terbagi ke beberapa mesin dan
pada saat aplikasi berjalan, semua mesin yang menyimpan data tersebut dianggap
sebagai satu kesatuan. Metode clustering seperti ini sangat baik untuk load-
balancing dan penanganan system failure karena kemampuan tiap mesin akan
digunakan dan jika ada salah satu mesin yang mengalami failure maka sistem tidak
akan langsung terganggu karena mesin lain akan tetap berfungsi. Kemampuan
clustering memungkinkan sebuah database tetap hidup dalam waktu yang lama.
(Syamsu, 2018)

2.4 REPLIKASI DATABASE


Replikasi database adalah seperangkat teknologi yang digunakan untuk
menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan
selanjutnya, mensinkronisasikan antar database untuk menjaga konsistensi. Dengan
replikasi, data dapat didistribusikan ke lokasi yang berbeda dan pengguna yang jauh
melalui LAN, WAN, Dial-up Connection, wireless connections, dan internet.
Kegunaan replikasi database ialah membuat backup dengan menggunakan
replication memungkinkan didapatkan backup yang sempurna dari suatu database
MySQL yang besar dan aktif tanpa melakukan penghentian dari server yang
bersangkutan. Tanpa replikasi, backup akan memperlambat sistem dan ada
kemungkinan data yang tidak konsisten, karena bisa saja satu tabel berubah
sementara tabel lain yang berhubungan tidak berubah dan sedang di-backup.
Mematikan server akan menjamin data yang konsisten, tetapi ini berarti
menghentikan layanan pada pengguna dan sangat tidak diharapkan. Kadangkala
penghentian ini tidak dapat dihindarkan, tetapi penghentian setiap hari tidak dapat
diterima. (Hermawan, 2018)

Gambar 2. 1 Replikasi Database


Gambar diatas merupakan deskripsi untuk Replikasi Database, jadi database
yang ada di komputer “Server Master” sekaligus yang diakses oleh client, dimiliki
juga oleh komputer “Server Slave”. sehingga dapat menghindari kemungkinan
kehilangan data yang ada pada komputer Server Master”.
Metoda alternatif replikasi MySQL menjamin backup sempurna tanpa harus
menghentikan server tiap hari. Replikasi merupakan konfigurasi sistem dimana
server MySQL, yang dalam hal ini dinamakan master, menyimpan data dan
menangani permintaan pengguna, sementara server MySQL yang lain, yang
dinamakan slave server berisi copy dari data master dan melakukan semua SQL
statement yang mengubah data di master, segera setelah master melakukannya.
Dengan demikian backup dapat dilakukan secara periodik, misalnya seminggu
sekali, pada server slave untuk mendapatkan backup yang sempurna. Setelah
backup selesai, replikasi dapat dijalankan lagi dan slave akan secara otomatis
melakukan query yang dilakukan master pada saat slave dimatikan. Fitur replikasi
merupakan bagian dari MySQL. (Hermawan, 2018)

2.5 LOAD BALANCING CLUSTER


Kategori loadbalancing Clusters bekerja dengan cara melakukan proses
penyampaian atau pendistribusian pembagian beban kerja dari data yang diproses
secara merata melalui node-node yang bekerja berada di belakang (back-end node)
sehingga semua operasi dapat berjalan dengan baik. Pada umumnya untuk dapat
melakukan hal tersebut cluster-cluster yang termasuk dalam kategori ini
dikonfigurasikan sedemikian rupa dengan beberapa front-end load-balancing
redundant. Load-balancing cluster sangat berguna bagi mereka yang bekerja
dengan anggaran TI yang terbatas. Mencurahkan beberapa node untuk mengelola
alur kerja sebuah cluster memastikan bahwa kemampuan pemrosesan yang terbatas
dapat dioptimalkan. (Muliyantoro, 2013)
Load balancer berfungsi sebagai input devices yang menerima request dari
pengguna dan menyebarkan ke semua node anggota cluster. Anggota cluster
jumlahnya menyesuaikan dengan jumlah request yang masuk setiap detik dan
berapa beban yang timbul di node cluster untuk setiap requestnya. (Syamsu, 2018)
2.6 MYSQL CLUSTER
MySQL Cluster merupakan sebuah tipe basis data (database) yang dapat
beroperasi dalam ukuran data yang relatif besar. MySQL Cluster adalah sebuah
teknologi yang memungkinkan pengelompokan di memori database dalam sistem
shared-nothing.
MySQL Cluster menggabungkan MySQL Server biasa dengan sebuah mesin
penyimpanan in-memory terkluster yang dinamakan NDB. NDB berarti bagian dari
suatu rangkaian yang dikhususkan sebagai mesin penyimpanan, sedangkan MySQL
Cluster diartikan sebagai kombinasi atau gabungan dari MySQL dan mesin
penyimpanan yang baru tersebut. NDB adalah sebuah mesin penyimpanan memory
yang menawarkan ketersediaan yang tinggi dan fitur-fitur persistensi data. Mesin
penyimpanan NDB dapat diatur dengan sebuah bidang failover dan pilihan-pilhan
load-balancing, tetapi untuk memulai paling mudah dengan mesin penyimpanan
pada level cluster. Sebuah MySQL Cluster terdiri dari sekumpulan komputer,
masing-masing menjalankan sejumlah proses mencakup beberapa MySQL server,
node-node penyimpanan untuk cluster NDB, server-server manajemen dan
program-program pengakses data yang khusus. Sistem database ini terdiri dari
beberapa node yang dapat didistribusikan ke beberapa perangkat keras dan ke
beberapa wilayah/zona yang berbeda sekaligus untuk tetap menjaga ketersediaan
data meskipun jaringan ataupun salah satu node sedang mengalami kegagalan.
(Muliyantoro, 2013)

2.7 HAPROXY
HAproxy adalah aplikasi open source yang bisa digunakan untuk kebutuhan
Load Balancing. Selain dapat melakukan Load Balancing, Haproxy juga dapat
mengatasi Fail Over akibat salah satu server tidak bisa diakses. Haproxy didukung
oleh beberapa algoritma yaitu Round Robin, Source, dan Least Connection.
Perangkat lunak ini sangat cocok digunakan untuk website yang traffic
hariannya tinggi sementara itu diperlukan kestabilan dan kekuatan dari
pemprosesan pada layer 7. HAProxy dipasang pada server front-end. Fron-end
server umumnya adalah server yang memiliki IP statis teregistrasi dengan DNS.
(Rosalia, Munadi, & Mayasari, 2016)
BAB III
METODOLOGI DAN PERANCANGAN SISTEM

3.1 METODE
Metode yang digunakan adalah metode Network Development Life Cycle (NDLC)
dengan alur sebagai berikut:

Gambar 3. 1 alur metode NDLC

Berikutadalah penjelasan dari masing-masing tahap Network Development Life


Cycle (NDLC) :
1. Analisis
Tahap awal ini dilakukan analisa kebutuhan, analisa permsalahan yang
muncul, analisa keinginan user, dan analisa topologi jaringan yang sudah
ada saat ini.
2. Design
Dari data yang didapatkan sebelumnya, tahap desain ini akan membuat
gambar desain topologi jaringan yang akan dibangun, diharapkan dengan
gambar ini akan memberikan gambaran seutuhnya dari kebutuhan yang ada.
3. Simulasi Protype
Beberapa pengembang jaringan akan membuat dalam bentuk simulasi
dengan bantuan tools khusus dibidang network.
4. Implementation
Di tahap ini akan memakan waktu lebih lama dari tahapan sebelumnya
dalam tahap implementasi, penulis menerapkan semua yang telah
direncanakan dan dirancang sebelumnya. Pada tahapan inilah akan terlihat
bagaimana sistem load balancing yang akan dibangun akan memberikan
pengaruh terhadap sistem yang sudah ada.
5. Monitoring
Setelah implementasi, tahapan monitoring merupakan tahapan yang penting
agar jaringan komputer dan komunikasi dapat berjalan sesuai dengan
keinginan dan tujuan awal dari user pada tahap awal analisis. Penulis akan
menggunakan tool-tool yang ada dan berfungsi untuk memonitor lalu lintas
data. Kemudian membandingkan dengan sistem sebelum dan sesudah
diterapkan load balancing di database server tersebut.
6. Management
Di manajemen atau pengaturan, salah satu yang menjadi perhatian khusus
adalah masalah kebijakan, yaitu dalam hal aktivitas, pemeliharaan dan
pengelolaan dikategorikan pada tahap ini. Kebijakan perlu dibuat untuk
membuat dan megatur agar sistem yang telah dibangun dan berjalan dengan
baik dapat berlangsung lama dan unsur reliability terjaga.

3.2 DESAIN JARINGAN


- Design Jaringan yang sudah ada

Gambar 3. 2 Design Jaringan yang sudah ada

- Design Jaringan yang akan dibuat

Gambar 3. 3 Design Jaringan yang akan dibuat


BAB IV
HASIL DAN PEMBAHASAN

4.1 REPLIKASI DATABASE MASTER-SLAVE


Model Master-Slave: Jika terjadi perubahan database pada Master, database
pada Slave juga ikut berubah. Namun, jika terjadi perubahan pada Slave, Master
tidak terpengaruh.
4.1.1 PERSIAPAN
Server A – MySQL Master
Hostname: ihsanp@IhsanP:~$
IP: 192.168.43.223

Server B – MySQL Slave


Hostname: dewiws@DESKTOP-K0BRGTL
IP: 192.168.43.184
Konfigurasi Server Master
4.1.2 INSTALL MYSQL SERVER
Pada kedua server install paket mysql-server:

4.1.3 KONFIGURASI DATABASE MASTER


Edit file konfigurasi pada server master.

Di bawah [mysqld] tambahkan/ubah beberapa baris konfigurasi.


Pertama adalah ke IP mana server akan di binding, ganti 127.0.0.1 (localhost)
dengan IP server karena kita akan binding server agar bisa diakses dari manapun
(kecuali jika hanya lokal saja).
Kemudian ubah/uncomment (hilangkan tag ‘#’) pada bagian server-id. Ini adalah
untuk menandakan ID dari server tersebut. Kita bisa ganti dengan angka berapun
tapi lebih baik dimulai dari angka yang paling kecil. Yang perlu di ingat adalah
harus menggunakan id number yang tidak boleh sama dengan id server lainnya.
server-id =1
Pada baris log_bin, adalah dimana semua log proses replikasi disimpan. Slave
server nantinya kana menyalin semua perubahan yang ada di log tersebut. Cukup
dengan uncomment (#) pada bagian:
log_bin = /var/log/mysql/mysql-bin.log
Baris yang paling penting adalah binlog_do_db. Kita tentukan database mana
yang nanti akan kita replikasi dengan server slave. Jika ingin mereplikasi
beberapa database cukup dipisahkan dengan menyalin barisnya.
binlog_do_db = db_perpustakaan
Restart service mysql:
systemctl restart mysql.service
Langkah selanjutnya buka mysql shell untuk melanjutkan konfigurasi.
mysql -u root -p
Buat user yang nantinya akan digunakan untuk autentikasi pada server slave.
Kemudian beri grant akses untuk dapat melakukan replikasi.

Buat juga database yang akan di replikasi.

Kemudian berikan permission ke user agar bisa mereplikasi database:

Kemudian cek status dari server master:

4.1.4 KONFIGURASI DATABASE SLAVE

4.2 REPLIKASI DATABASE MASTER-MASTER


Master-Master: Semua server bertindak sebagai Master dan Slave. Karena
jika terjadi perubahan database di salah satu server, database pada server lain juga
ikut berubah.
4.3 IMPLEMENTASI LOAD BALANCING + REPLIKASI DATABASE
BAB V
KESIMPULAN DAN SARAN
5.1 SIMPULAN
5.2 SARAN

DAFTAR PUSTAKA

Han, J., & Kamber, M. (2006). Data Mining Concept and Techniques, Second Edition. San
Francisco: Morgan kaufmann.

Hariyanto, B. (2004). Sistem Manajemen Basis Data. Bandung: Informatika.

Hermawan, W. K. (2018, May 26). Teknologi Replikasi Hardware, Database Replication &
Virtual Operating System. Retrieved from medium.com:
https://medium.com/@wafaakamilahmaulanihermawan/teknologi-replikasi-
hardware-database-replication-virtual-operating-system-
99aacc9bbe4a#targetText=Replikasi%20database%20adalah%20seperangkat%2
0teknologi,antar%20database%20untuk%20menjaga%20konsistensi

Hodges, R. (2007). Database High Availability and Scalability. CTO Continuent, Inc.

Muliyantoro, H. S. (2013). PENERAPAN METODE LOAD-BALANCING CLUSTERS PADA


DATABASE SERVER GUNA PENINGKATAN KINERJA PENGAKSESAN DATA. Techno
Nusa Mandiri.

Rosalia, M., Munadi, R., & Mayasari, R. (2016). Implementasi High Availability Server
Menggunakan Metode Load Balancing dan Failover pada Virtual Web Server
Cluster. Fakultas Teknik Elektro, Universitas Telkom.

Syamsu, S. (2018). IMPLEMENTASI CLUSTER DATABASE BERBASIS MYSQL DAN HAPROXY


SEBAGAI PEMBAGI BEBAN KERJA SERVER. Jurnal Teknologi Informasi dan
Komunikasi Volume 8, 48-58.

Anda mungkin juga menyukai