Anda di halaman 1dari 22

IMPLEMENTASI LOAD BALANCING MENGGUNAKAN NGINX DAN

APACHE WEB SERVER SERTA REPLIKASI DATABASE MySQL

MAKALAH
Disusun untuk Memenuhi Tugas Mata Kuliah
Sistem Terdistribusi

oleh :
Pian Rispian 177006057
Arif Maulana K 177006085
Della Maerlin S 177006019

JURUSAN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS SILIWANGI
TASIKMALAYA
2019
i

KATA PENGANTAR

Segala puji dan syukur penulis panjatkan ke hadirat Alloh Swt. yang telah
melimpahkan segala rahmat-Nya sehingga penulis dapat menyelesaikan laporan
dengan judul Implementasi Load Balancing Menggunakan Nginx Dan Apache Web
Server Serta Replikasi Database MySQL guna memenuhi tugas Mata Kuliah Sistem
Terdistribusi Jurusan Informatika Fakultas Teknik Universitas Siliwangi
Tasikmalaya.
Berhubungan dengan penggunaan Load Balancer yang salah satu
implementasinya untuk mengoptimalkan kinerja dari web server ketika
menggunakan lebih dari satu dan meminimalisir salah satu web server down. Dalam
makalah ini akan dibahas tentang sistem terdistribusi secara umum, dan penerapan
Replikasi Database pada MySQL.
Dalam kesempatan ini penulis mengucapkan terimakasih kepada Dosen Mata
Kuliah Sistem Terdistribusi Pak Alam Rohmatullah, S.T, M.T. yang telah
membimbing penulis.
Makalah ini masih memiliki banyak kekurangan baik isi maupun susunannya.
Semoga makalah ini dapat bermanfaat tidak hanya untuk penulis tapi juga bagi para
pembaca.

Tasikmalaya, 28 Oktober 2019

Penulis
ii

DAFTAR ISI

KATA PENGANTAR ..................................................................................... i


DAFTAR ISI .................................................................................................... ii
BAB I PENDAHULUAN ................................................................................ 1
A. Latar Belakang................................................................................. 1
B. Maksud dan Tujuan ........................................................................ 2
C. Manfaat Makalah ............................................................................. 2
BAB II LANDASAN TEORI .......................................................................... 3
A. Kajian Teoritis ................................................................................. 3
BAB III METODOLOGI ................................................................................. 6
BAB IV PEMBAHASAN ................................................................................ 7
A. Konfigurasi Replikasi Database MySQL di Windows .................... 7
BAB V SIMPULAN DAN SARAN ................................................................ 11
A. Simpulan .......................................................................................... 11
B. Saran ................................................................................................ 11
DAFTAR PUSTAKA ...................................................................................... 12
BAB I
PENDAHULUAN

A. LATAR BELAKANG
Semakin besarnya kebutuhan masyarakat akan informasi dan kompleknya
informasi yang disajikan, secara tidak langsung menyebabkan perkembangan
teknologi informasi menjadi semakin kompleks dengan berbagai platform dan
sumber daya yang berbeda-beda. Di sisi lain perkembangan teknologi memberikan
kemudahan bagi penyajian dan pengolahan infromasi, namun di satu sisi dengan
segala kecanggihan teknologi informasi, masih memiliki keterbatasan apabila
diintergrasikan dengan aplikasi atau platform yang berbeda. Begitu juga dengan
komunikasi antar sistem yang cenderung rentan dari segi kemamanan, akselerasi,
efektifitas dan efisiensi suatu sistem.
Keinginan untuk menghasilkan aplikasi yang dapat berjalan dalam berbagai
platform, terkadang mengabaikan nilai suatu informasi yang akan disajikan. Tanpa
disadari kerusakan data yang disajikan ternyata dapat mengakibatkan kerugian yang
sangat besar. Informasi yang tidak tersaji dengan baik mengakibatkan kerugian
materi maupun moril bagi sebuah perusahaan. Kebutuhan akan tersedianya data
yang baik setiap saat menjadi permasalahan yang rumit. Hal ini berkaitan dengan
kinerja sistem, jumlah pengakses data, serta lalulintas jaringan data yang setiap saat
bertambah padat. Hal ini memicu munculnya teknologi replikasi data.
Proses replikasi basis data merupakan sebuah proses yang banyak dilakukan
pada sistem basis data terdistribusi. Sistem basis data terdistribusi terdiri dari
kumpulan site-site, masing‐masing site ini dapat ber-partisipasi dalam pemrosesan
transaksi yang mengkases data pada suatu site atau beberapa site. Beberapa alasan
untuk membangun basis data terdistribusi, seperti berbagi informasi (share),
kehandalan (reliability), ketersediaan (availability) dan kecepatan pemrosesan
query. Keuntungan utama dari basis data terdistribusi adalah kemampuan untuk
pemakaian dan pengaksesan data secara bersama dengan cara yang handal dan
efisien.

1
2

Salah satu metode replikasi data adalah dengan menggunakan replikasi multi-
master. Replikasi multi-master merupakan sebuah metode penduplikasi basis data
yang memungkinkan data untuk disimpan di sejumlah site/node dan di update dari
semua site. Pada bentuk multi-master setiap site akan berperan sebagai master bagi
site-site lainnya. Replikasi basis data mengakibatkan akses terhadap informasi yang
disajikan menjadi lebih cepat, karena informasi yang diberikan dapat dilalukan dari
beberapa site. Dengan penggunaan Load Balancer dapat membagikan beban
permintaan dan dapat terus bekerja walaupun terjadi kegagalan pada server load
balancer ataupun kegagalan pada server backend. Selain itu, dalam beberapa
pengujian, penggunaan load balancing terbukti mampu menurunkan waktu respon
dan meningkatkan thoughput pada sistem sehingga mampu meningkatkan performa
keseluruhan sistem.

B. MAKSUD DAN TUJUAN


Adapun maksud dan tujuan dari dari implementasi ini yaitu untuk mengetahui
bagaimana replikasi database master-master bekerja pada webserver dan client
dengan menggunakan MySQL pada windows. Selain itu dengan menggunakan load
balancing dapat mengoptimalkan kinerja dari webserver, ketika
mengimplementasikan lebih dari satu webserver juga menantisipasi ketika salah
satu server down untuk melayani kebutuhan client.

C. MANFAAT
Manfaat dari implementasi ini kita dapat mengetahui bagaimana cara
konfigurasi replikasi database master-master pada MySQL Apache sebagai
webserver. Selain itu juga memahami cara kerja dari load balancing terhadap
webserver dan client. Mengetahui fungsi dari replikasi database dan implementasi
load balancing juga dapat mengoptimasi kerja dari webserver ketika salah satu
down.
3

BAB II
LANDASAN TEORI

A. Kajian Teoritis
1. Replikasi Database MySQL
Replikasi MySQL adalah suatu proses yang memungkinkan data dari satu
database server MySQL (the master) di copy secara otomatis pada suatu database
MySQL server (the slave). Biasanya digunakan untuk menyebar akses membaca
pada multiple server untuk scalability, meskipun juga dapat digunakan untuk tujuan
lain seperti untuk failover (kegagalan), atau menganalisis data pada slave agar tidak
membebani master (Bojovic, 2016).
Replikasi adalah suatu teknik untuk melakukan copy (salin) dan
pendistribusian data dan objek objek database dari satu database ke database lain
dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat
terjamin. Dengan menggunakan teknik replikasi ini, data dapat didistribusikan ke
lokasi yang berbeda melalui koneksi jaringan lokal maupun internet. Replikasi juga
memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai
dengan penggunaannya (Silitonga, 2014).

2. Manfaat dan Tujuan Replikasi Database


Adapun manfaat dari replikasi MySQL, yakni :
a) Solusi Scale-out : menyebarkan beban di antara banyak slave untuk
meningkatkan kinerja.
b) Keamanan data : karena data direplikasi ke slave, dan slave dapat menghentikan
proses replikasi, dimungkinkan untuk menjalankan layanan cadangan pada slave
tanpa merusak data master yang sesuai.
c) Analisis : data langsung dapat dibuat pada master, sedangkan analisis informasi
dapat dilakukan pada slave tanpa mempengaruhi kinerja master.
d) Distribusi data jarak jauh dapat menggunakan replikasi untuk membuat salinan
data lokal untuk situs remote untuk digunakan, tanpa akses permanen ke master.
4

Adapun tujuan dari replikasi MySQL ini, yakni :


a) Memecah pekerjaan antara beberapa MySQL server.
Server MySQL utama menjalankan proses bisnis dan server MySQL hasil
replikasi menjalankan analisa data. Dengan cara ini saat MySQL replikasi
melakukan analisa data yang mungkin menguras memory dan proses tidak akan
mempengaruhi proses bisnis yang dijalankan.
b) Realtime Backup
Hasil MySQL Replication bisa menjadi backup yang realtime. Meskipun
demikian tetap harus membuat backup yang bersifat periodik.

3. Model dan Jenis Replikasi Database


a) Model Replikasi Database
Dalam replikasi ada beberapa model yang sering digunakan, diantaranya:
1. One Master, One Slave

Gambar 1.1 Master-Slave


2. One Master, Many Slave

Gambar 1.2 Master-Many Slave


3. Master-Slave Circular Relationship

Gambar 1.3 Master-Slave Relationship


5

4. Master-Slave “Daisy Chain”

Gambar 1.4 Master-Slave “Daisy Chain”


b) Jenis Replikasi Database
1. Replikasi Synchronous
Proses dilakukan secara real‐time antara master dengan slave. Keseluruhan
proses penulisan pada disk master dan slave harus selesai terlebih dahulu
sebelum beranjak ke transaksi selanjutnya. Kebutuhan akan performansi
sistem yang tinggi harus dipertimbangkan (kecepatan & jarak antar
site/node). Keuntungannya yakni, menyediakan recovery yang konsisten
karena sinkronisasi data terjaga.

Gambar 2.4 Replikasi Synchronous


2. Replikasi Asynchronous
Proses replikasi terjadi setelah transaksi di master selesai. Pertukaran data
secara buffering, data akan diletakkan dalam sebuah buffer terlebih dahulu,
kemudian pada jangka waktu tertentu akan direplikasi ke disk slave. Tidak
menjamin kesinkronan data apabila salah satu site/node mengalami crash saat
6

replikasi belum selesai dilaksanakan. Keuntungannya yakni efektifitas biaya


proses transaksi.

Gambar 2.5 Replikasi Asynchronous

4. Ubuntu WSL
Windows Subsystem untuk Linux atau WSL, adalah fitur opsional Windows
10 yang memungkinkan program Linux berjalan secara native di Windows. WSL
dirancang oleh Microsoft dalam kemitraan dengan Canonical, pencipta Ubuntu.
Bersama-sama, mereka menciptakan lapisan kompatibilitas kernel berbasis
Ubuntu. Lapisan kompatibilitas ini memungkinkan program-program Linux untuk
berjalan dalam versi 10 dari Bash Shell. (Hope, 2018)

5. MySQL
MySQL adalah sebuah perangkat lunak system manajemen basis data SQL
(DBMS) yang multithread, dan multi-user. MySQL adalah implementasi dari
system manajemen basisdata relasional (RDBMS). MySQL dibuah oleh TcX dan
telah dipercaya mengelola system dengan 40 buah database berisi 10.000 tabel dan
500 di antaranya memiliki 7 juta baris. MySQL AB merupakan perusahaan
komersial Swedia yang mensponsori dan yang memiliki MySQL. Pendiri MySQL
AB adalah dua orang Swedia yang bernama David Axmark, Allan Larsson dan satu
orang Finlandia bernama Michael “Monty”. Setiap pengguna MySQL dapat
menggunakannya secara bebas yang didistribusikan gratis dibawah lisensi
GPL(General Public License) namun tidak boleh menjadikan produk turunan yang
bersifat komersial (Yasin, 2019).
7

6. Apache
Apache adalah sebuah perangkat lunak web server yang menghubungkan
antara server dengan user (browser). Jika Anda mengakses sebuah website melalui
URL di browser kemudian muncul tampilan website, bisa jadi itu merupakan hasil
kerja dari Apache. (Yasin, K, 2019) Pada awal kemunculannya, Apache
dikembangkan supaya dapat menjadi sebuah perangkat lunak web server open-
source yang dapat dikembangkan dan dikelola oleh modern sistem operasi, seperti
Unix dan Windows. Tujuan lain dari pengembangan Apache adalah menyediakan
web server yang aman, efisien, dan dapat dikembangkan dengan mudah.
Selain itu, saat ini Apache menjadi web server yang paling banyak digunakan
dari total keseluruhan website yang ada di internet. Jika melihat kondisi sekarang,
saat ini juga banyak penyedia layanan panel kontrol (khususnya cPanel)
menggunakan Apache sebagai web server. Sama halnya dengan berbagai macam
web server saat ini, Apache menjadi salah satu penggerak utama supaya website
dapat terhubung dengan pengunjung (user).
8

BAB III
METODOLOGI

Untuk dapat mendukung penulisan tugas akhir ini, maka dapat menggunakan
metode penulisan sebagai berikut:
1. Studi Literatur
Literatur dalam hal ini baik berupa buku, catatan, jurnal hasil penelitian, dan
sumber-sumber elektronik di internet. Studi literatur ini ditujukan untuk
mendapatkan referensi yang jelas dan tepat mengenai sistem yang dibangun,
terutama mengenai rekomendasi dan standarisasi yang berlaku. (Sadrina, 2018)

2. Pengumpulan data
Pada metode pengumpulan data yang berdasarkan studi lapangan yaitu
metode observasi. Observasi, yaitu dengan melakukan pengamatan terhadap
aktivitas web server yang ada di jurusan Informatika dan beberapa web yang ada di
internet. (Sadrina, 2018)

3. Analisis
Analisis kebutuhan perangkat hardware sebagai media perancangan dan
software penginstalan dan aplikasi pendukung lainnya. (Sadrina, 2018)

4. Implementasi dan Evaluasi


Merupakan tahapan dalam menerapkan system load balancing web server dan
mencobakan sistem tersebut. (Sadrina, 2018)

5. Menyusun Laporan
Penyusunan laporam dilakukan untuk memberikan penjelasan yang berkaitan
dengan hasil kerja yang telah dibuat dan semua dokumentasi dari laporan. (Sadrina,
2018)
9

BAB IV
PEMBAHASAN

A. KONFIGURASI REPLIKASI DATABASE


a) Jalankan Load Balancer NGINX pada Ubuntu WSL
Untuk running Nginx sebagai load balancer, ketikkan perintah sebagai berikut :

Gambar 4.1 Running Nginx Load Balancer


1. Konfigurasi Master Slave dan Master Master Replikasi Database MySQL
Untuk melakukan konfigurasi replikasi database, disini menggunakan dua
perangkat laptop dengan tools yang digunakan yakni :
• Sistem Operasi Windows 10
• XAMPP (Apache Web Server)
• MySQL 5.7
Lakukan konfigurasi jaringan komputer server pada master dan slave :
Master  192.168.43.124 (Laptop 1)
Slave  192.168.43.210 (Laptop 2)
Konfigurasi pada Master Server (Laptop 1) :
a) Buka file my.ini pada, yang terdapat pada direktori C:/xampp/mysql/bin
kemudian lakukan konfigurasi seperti berikut :
#log-bin=mysql-bin  log-bin=mysql-bin (uncomment)
#server-id=1  server-id=1 (uncomment)
b) Jalankan Command Prompt, masuk ke direkroti C:/xampp/mysql/bin dan login
ke MySQL dengan perintah berikut :

Gambar 4.2 Running MySQL


10

c) Kemudian konfigurasi pada master yakni memberikan hak akses pada slave
untuk dapat melakukan replikasi.
Konfigurasi :
Username  server1
Password  STServer1
Jalankan perintah :

Gambar 4.3 Konfigurasi hak akses master kepada slave


d) Selanjunya menampilkan status master dan meng-unlock tabel pada master
dengan perintah berikut :

Gambar 4.4 Menampilkan status Master dan unlock tabel


Konfigurasi pada Slave (Laptop 2):
a) Buka file my.ini pada, yang terdapat pada direktori C:/xampp/mysql/bin
kemudian lakukan konfigurasi seperti berikut :
#log-bin=mysql-bin  log-bin=mysql-bin (uncomment)
#server-id=2  server-id=2 (uncomment)
b) Jalankan Command Prompt, masuk ke direkroti C:/xampp/mysql/bin dan login
ke MySQL. Kemudian lakukan konfigurasi pad Slave, dengan perintah berikut :
11

Gambar 4.5 Konfigurasi pada Slave


Informasi tersebut didapat dari status master dari Laptop 1
c) Selanjutnya restart pada MySQL dan jalankan perintah berikut, untuk
mengetahui status slave :

Gambar 4.6 Status Slave


Konfigurasi Master-Master
Agar replikasi database bias dilakukan dengan model Master-Master, maka
lakukan konfigurasi serupa dengan Master-Slave, namun yang tadinya Master
dikonfigurasikan Slave begitu juga sebaliknya
a) Master (Laptop 2)
Konfigurasi pada master yakni memberikan hak akses pada slave untuk dapat
melakukan replikasi.
12

Karena Laptop 2 merupakan Slave, maka hentikan terlebih dahulu slave


dengan perintah : stop slave
Username  server2
Password  STServer2

Gambar 4.7 Konfigurasi Master (Slave)


Selanjunya menampilkan status master dan meng-unlock tabel pada master
dengan perintah berikut :

Gambar 4.8 Status Master (Slave)


b) Slave (Laptop 1)
Jalankan Command Prompt, masuk ke direkroti C:/xampp/mysql/bin dan
login ke MySQL. Kemudian lakukan konfigurasi pad Slave, dengan perintah
berikut :

Gambar 4.9 Konfigurasi pada Slave (Master)


13

Selanjutnya restart pada MySQL dan jalankan perintah berikut, untuk


mengetahui status slave :

Gambar 4.10 Status Slave (Master)


Testing Replikasi Database
Pengujian dilakukan dengan membuat database dan menampilkan database
pada Laptop 2. Maka akan tampil juga pada Laptop 1, dan database yang dibuat
akan tampil juga pada Laptop 2

Gambar 4.11 Pengujian Replikasi Database Master-Master


14

2. Hasil implementasi
Membuat database pada Laptop 1 yakni sebagai berikut :

Gambar 4.12 Create Database Laundry


15

Implementasi dengan menggunakan Load Balancing :


Pada Client 1

Gambar 4.13 Aplikasi Laundry pada Client 1


16

Pada Client 2 :

Gambar 4.14 Aplikasi Laundry pada Client 2


Menampilkan tabel dari database pada Laptop 2 yang telah dibuat oleh Client:

Gambar 4.15 Menampilkan tabel database pada Laptop 2


17

BAB V
SIMPULAN DAN SARAN

A. Simpulan
Replikasi adalah suatu teknik untuk melakukan copy (salin) dan
pendistribusian data dan objek objek database dari satu database ke database lain
dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat
terjamin. Untuk melakukan konfigurasi replikasi database, disini menggunakan dua
perangkat laptop dengan tools yang digunakan yakni sistem operasi Windows 10,
Apache Web Server dan MySQL. Model yang digunakan yakni Master-Master
sehingga bisa mengimplementasikan replikasi database dikedua server. Selanjutnya
replikasi database ini dapat diimplementasikan dengan Load Balancer dengan
Nginx.
Metodologi yang digunakan yakni dengan melakukan studi literatur,
kemudian pengumpulan data, analisis dan implementasi serta evaluasi, juga
mendokumentasikan dalam bentuk laporan. Implementasi replikasi database dan
load balancing ini menggunakan Nginx sebagai load balancer dalam Ubuntu WSL
dan Apache untuk menjalankan webserver serta MySQL untuk databasenya.

B. Saran
Diharapkan laporan ini dapat menjadi referensi konfigurasi replikasi database
MySQL, dan dapat diimplemetasikan dengan Load Balancer supaya lebih optimal
dalam server. Meskipun laporan ini disusun memiliki beberapa kekurangan, supaya
bisa dimaklumi.
18

DAFTAR PUSTAKA

Bojovic, I. (2016, January 11). MySQL Master-Slave Replication on the Same


Machine. Retrieved from TopTal: https://www.toptal.com/mysql/mysql-
master-slave-replication-tutorial
Hope, C. (2018, November 13). WSL. Retrieved from Computer Hope:
https://www.computerhope.com/jargon/w/wsl.htm
LinuxSec. (2017, Juli 6). Tutorial Konfigurasi Load Balancing dengan Nginx .
Retrieved from LinuxSec.org:
https://www.linuxsec.org/2017/07/konfigurasi-load-balancing-dengan-
nginx.html?m=1
Lukitasari, D., & Oklilas, A. F. (2010). Analisis Perbandingan Load Balancing
Web Server Tunggal Dengan Web server Cluster MenggunakanLinux
Virtual Server. Jurnal Generic, 31-34.
Mulyana, T. (2018, Mei 5). Load Balancing dengan Nginx. Retrieved from
Nothinux: https://nothinux.id/load-balancing-dengan-nginx/
Nasser, H., & Witono, T. (2016). Analisis Algoritma Round Robin, Least
Connection, Dan Ratio Pada Load Balancng Menggunakan Opnet
Modeler. Informatika, 25-32.
Rahmatullah, A., & MSN, F. (2017). Implementasi Load Balancing Web Server
menggunakan Haproxy dan Sinkronisasi File pada Sistem Informasi
Akademik Universitas Siliwangi . Jurnal Nasional Teknologi dan Sistem
Informasi , 241-248.
Roustemaa, J. (2016). How to configure load balancing using Nginx. Retrieved
from Upcloud: https://upcloud.com/community/tutorials/configure-load-
balancing-nginx/
Sadrina, A. (2018). Implementasi Nginxsebagai Load Balancing Web Server
Clusteringdi Jurusan Teknologi Informasi Politeknik Negeri Padang.
Padang.
Silitonga, P. D. (2014). Replikasi Basis Data Pada Sistem Pengolahan Data.
Jurnal TIME, 32-36.
Sverdlov, E. (2012, Agustus 27). How To Set Up Nginx Load Balancing.
Retrieved from DigitalOcean:
https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-
load-balancing
19

Vuong, C. (2018, September 15). Install LEMP on Ubuntu WSL on Windows 10.
Retrieved from ChanhVuong: https://www.chanhvuong.com/3389/install-
lemp-on-ubuntu-wsl-on-windows-10/
Yasin. (2019, July 24). Pengertian MySQL, Fungsi, dan Cara Kerjanya.
Retrieved from NiagaHoster: https://www.niagahoster.co.id/blog/mysql-
adalah/
Yasin, K. (2019, Juli 22). Apa Itu Apache? Kelebihan dan Kekurangannya.
Retrieved from NiagaHoster: https://www.niagahoster.co.id/blog/apache-
adalah/
Yasin, K. (2019, Juli 21). Apa Itu Nginx dan Cara Kerjanya. Retrieved from
NiagaHoster: https://www.niagahoster.co.id/blog/nginx-adalah/

Anda mungkin juga menyukai