ArticlePDF Available

Implementasi Load Balancing NGINX dan Mongodb Cluster serta Mekanisme Redis Caching

Authors:

Abstract

Meningkatnya kebutuhan akan informasi menuntut akses yang cepat untuk mendapatkan informasi-informasi terkini, salah satunya yang paling mempengaruhi kecepatan akses suatu alamat website tertentu adalah server penyedia layanan. Server merupakan penyedia layanan sekaligus sebagai pusat pemrosesan data sehingga menuntut kinerja server secara maksimal agar dapat memberikan pelayanan yang maksimal. Salah satu metode yang dapat digunakan yaitu Load balancing atau membagi beban (request) pada web server yang bertujuan untuk meringankan beban yang ditanggung oleh masing masing server, sehingga mampu meningkatkan kinerja server dengan ketersediaan (availability) layanan web server tetap. Namun terdapat pula faktor penting lain, meningkatnya jumlah data yang disertai dengan pengolahan seara terpusat akan berujung tidak optimal. Ketidak optimalan tersebut berupa nilai response time yang tinggi, maka dibutuhkan sebuah arsitektur basis data selain arsitektur terpusat. Salah satu alternative bisa menerapkan metode cluster database untuk meningkatkan ketersediaan basis data dan penerapan mekanisme cache dengan teknologi redis untuk meningkatkan response time terhadap request data serupa. Penelitian ini bertujuan untuk membuat arsitektur sistem terdistribusi dengan menerapkan load balancing web server serta database cluster dan mekanisme caching guna mengatasi permasalahan low availability (rendahnya ketersediaan) pada suatu sistem atau unit kerja.
Implementasi Load Balancing
NGINX dan Mongodb Cluster serta Mekanisme Redis
Caching
Faisal Al Isfahani
Informatic
Siliwangi University
Tasikmalaya
177006047@student.unsil.ac.id
Fuji Nugraha
Informatic
Siliwangi University
Tasikmalaya
177006052@student.unsil.ac.id
AbstractMeningkatnya kebutuhan akan informasi
menuntut akses yang cepat untuk mendapatkan informasi
informasi terkini, salah satunya yang paling mempengaruhi
kecepatan akses suatu alamat website tertentu adalah server
penyedia layanan. Server merupakan penyedia layanan sekaligus
sebagai pusat pemrosesan data sehingga menuntut kinerja server
secara maksimal agar dapat memberikan pelayanan yang
maksimal. Salah satu metode yang dapat digunakan yaitu Load
balancing atau membagi beban (request) pada web server yang
bertujuan untuk meringankan beban yang ditanggung oleh
masing masing server, sehingga mampu meningkatkan kinerja
server dengan ketersediaan (availability) layanan web server
tetap. Namun terdapat pula faktor penting lain, meningkatnya
jumlah data yang disertai dengan pengolahan seara terpusat
akan berujung tidak optimal. Ketidak optimalan tersebut berupa
nilai response time yang tinggi, maka dibutuhkan sebuah
arsitektur basis data selain arsitektur terpusat. Salah satu
alternative bisa menerapkan metode cluster database untuk
meningkatkan ketersediaan basis data dan penerapan
mekanisme cache dengan teknologi redis untuk meningkatkan
response time terhadap request data serupa. Penelitian ini
bertujuan untuk membuat arsitektur sistem terdistribusi dengan
menerapkan load balancing web server serta database cluster
dan mekanisme caching guna mengatasi permasalahan low
availability (rendahnya ketersediaan) pada suatu sistem atau unit
kerja.
KeywordsLoad Balancing, Basis data terdistribusi, redis
cach, nginx, mongodb cluster
I. PENDAHULUAN
Perkembangan teknologi menjadi faktor utama
meningkatnya pengguna layana web. Pesatnya
perkembangan teknologi tentu diimbangi dengan
bertambahnya pula kebutuhan pengguna yang membuat
jumlah traffic website pupular menjadi tinggi. Peningkatan
traffic ini tentu sangat memberatkan kinerja server dalam
melayani permintaan yang ada. Akibat dari pembebanan
kerja ini adalah performa server menjadi menurun dan sering
terjadi gangguan pada layanan-ayanan web tersebut. Jika
tidak ditangani dengan cepat dan baik tentunya ini akan
mengakibatkan suatu sistem atau situs mati/down, yang
berarti akan menghambat pengguna dalam mengakses
informasi atau resource dalam suatu sistem atau situs [1].
adalah Selain permasalahan traffic yang tinggi, permasalahan
lain yang muncul adalah ketersediaan infrastruktur teknologi
penyedia atau pengelola data. Data biasanya di kelola dalam
jumlah besar oleh server dalam waktu yang cenderung
repetitif dan rutin [2].
Salah satu solusi untuk menangani masalah traffic tinggi
adalah dengan menggunakan sebuah server yang handal atau
memiliki performa yang inggi. Solusi lainnya adalah dengan
menerapkan teknologi load balancing. Teknologi load
balancing dapat membagi beban permintaan ke beberapa
web server sehingga teknologi ini memiliki peranan pernting
untuk mencapai penggunaan sumber daya bersama yang
efektif [3]. Solusi selanjutnya yakni untuk mengatasi
permasalahan pada pengolahan data yang sama diterapkan
sebuah metode replikasi basis data. Sistem basis data akan
dibangun dengan metode cluster dan antara satu node dengan
node lain akan saling berhubungan dan saling berbagi
resource serta saling membackup ketika salah satu atau lebih
dari database core mengalami down atau out of request.
Salah satu DBMS yang memiliki kemampuan basisdata
terdistribusi adalah MongoDB. Penerapan teknik ini
bbertujuan untuk meningkatkan performansi sistem terutama
dalam aspek availability data pada sistem basis data [2], [4].
Solusi yang ketiga adalah untuk mengatasi masalah
lambatnya response time ketika melakukan request data ke
sistem basis data yang memuat lebih dari 1000 data , maka
harus di terapkan metode cache dimana ketika request akan
data yang sama datang data hasil request sebelumnya akan
disimpan kedalam cache sehingga akan mengurangi request
yang berlebihan akan data yang sama kedalam sistem basis
data [5].
Pada penelitian ini bertujuan untuk membangun suatu
arsitektur sistem yang mengimplementasikan pembagi beban
server (load balancing) dan sebuah sistem database yang
menggunakan metode cluster dan penerapan mekanisme
cache dengan teknologi redis. Selain itu juga dilakukan
analisa pada performa sistem ketika ditambahkan satu
persatu teknologi. Dalam penelitian ini dimulai dengan studi
literature, dilanjutkan dengan pengumpulan data,
peranacngan sistem, implementasi, pengujian dan analisis
hasil.
II. TINJAUAN PUSTAKA
A. Sistem Terdistribusi
Sistem terdistribusi adalah sekumpulan komputer
otonom yang terhubung ke suatu jaringan, dimana bagi
pengguna sistem terlihat sebagai satu komputer. Dengan
menerapkan sistem terdistribusi, komputer dapat
melakukkan : Koordinasi Aktifitas dan berbagi sumber daya
(hardware, software dan data). Tujuan utama dari sistem
terdistribusi adalah high availability (ketersediaan tinggi)
yang hanya akan terwujud dengan berbagai mekanisme
sistem terdistribusi mulai dari distribusi proses, data,
method atau class, dll [6], [7].
B. Load Balancing
Penyeimbang beban atau load balancing adalah suatu
proses untuk mendistribusian sebuah trafik pada web dari
beberapa server yang di akses melalui jaringan . Load
balancing ini dimaksudkan untuk mengurangi beban kerja
server dengan cara mendistribusikan beban kerja tersebut ke
beberapa server yang tergabung dalam web cluster, sehingga
tidak ada server yang overload bahkan hingga down.
Walaupun terdapat down pada salah satu web server, dengan
menerapkan load balancing ini traffik akan di alihkan pada
web server yang available. Hal ini sangat dapat diandalkan
terutama untuk mewujutkan suatu sistem yang high
availability [1], [2], [8], [9].
C. Web Server
Web server adalah sebuah software yang memberikan
layanan berbasis data dengan meggunakan protokol HTTP
atau HTTPS dari web browser klien untuk request data dan
server akan mengirimkan response berisikan resource yang
diminta oleh client biasanya dalam bentuk HTML, CSS
ataupun JS. Resource tidak hanya berisikan laman web
namun juga bisa terdiri dari berkas teks, video, gambar, file
dan banyak lagi [2].
Salah satu program dari web server adalah NGINX.
NGINX adalah server HTTP yang gratis, opensource yang
memiliki performa sangat tinggi. Selain itu NGINX memiliki
fungsi lain seperti dapat berfungsi sebagai proxy server,
reverse proxy dan juga NGINX dikenal karena memiliki
performa yang snagat tinggi [8].
D. Database Server
Database server adalah aplikasi komputer yang
menyediakan layanan data ke komputer atau program
komputer dan memiliki fungsi sebagai tempat penyimpanan
data, seperti yang ditetapkan oleh model klien-server. Istilah
ini juga merujuk kepada sebuah komputer yang
didedikasikan untuk menjalankan program server database
[2]. Pada sistem database terdapat teknik untuk
menduplikast sebuah kumpulan data yang terdapat pada
suatu server dan data tersebut disistribusikan ke server yang
lain didalam database cluster, sehingga dengan
memanfaatkan metode replikasi ini akan dapat membuat
suatu sistem basis data yang high availability dan fault
tolerant seperti tujuan awal dari pembangunan arsitektur
sistem terdistribusi [10].
III. METODE PENELITIAN
Metode yang digunakan dalam penelitian ini terdiri dari 4
tahap, sebagai berikut :
A. Analisis dan Pengumpulan data
Pada tahap ini dilakukan studi pustaka dari beberapa
sumber terkait informasi load balancing dengan nginx serta
replikasi database mongoDB dan penerapan mekanisme
cache dengan teknologi redis. Informasi didapat dari jurnal
maupun artikel media online dan juga terdapat pada
dokumentasi resmi dari penyedia teknologi terkait
B. Perancangan Sistem
Para tahap ini dilakukan perancangan arsitektur sistem
sesuai dengan hasil informasi dan pengetahuan yang didapat
dari tahap sebelumnya. Rancangan arsitektur yang dibuat
meliputi permodelan arsitektur sistem secara keseluruhan.
C. Implementasi
Rancangan arsitektur sistem yang telah dibuat
sebelunya, pada tahap ini akan diimplementasikan ke dalam
aplikasi dengan memanfaatkan teknologi informasi.
Implementasi bermulai pada konfigurasi load balancing
nginx, dilanjutkan dengan replikasi mongodb dan penerapan
redis cache, kemudian pembuatan endpoint untuk request
data dari client ke server.
D. Pengujian dan Analisis
Pada tahap ini dilakukan pengujian terhadap hasil
implementasi dari arsitektur sistem yang telah dibangun.
Pengujian yang dilakukan adalah performance testing
menggunakan Jmeter, pengujian dibentuk menjadi 2 case,
yaitu : perbandingan sebelum dan sesudah
pengimplementasian load balancing , kemudian case yang
kedua adalah perbandingan antara database cluster yang
menggunakan redis cache dan tanpa mekanisme cache.
IV. HASIL DAN PEMBAHASAN
A. Perancangan arsitektur sistem
Perancangan arsitektur siste yang akan dibangun untuk
server load balancing denagan nginx dan replikasi database
mongodb serta penerapan mekanisme redis cache
menggunakan tujuh server dimana dua server berperan
sebagai webserver, tiga server sebagai database server dan
terhubung menjadi sebuah database cluster, satu buah untuk
cache server dan satu sisanya sebagai load balancer atau
pembagi beban. Perancangan arsitektur sistem dapat dilihat
pada Gambar 1.
Gambar 1. Perancangan arsitektur sistem terdistribusi
Gambar 1 merupakan desain arsitektur sistem
terdistribusi yang akan dibangun menggunakan load balancer
nginx dengan nodejs web server, mongodb untuk database
server dan redis untuk caching. Seperti yang terkandung
pada gambar load balancer terhubung dengan 2 webserver
yang bertanggung jawab sebagai pembagi beban request
yang masuk dari user. Kemudian kedua webserver terhubung
ke redis cache dan mongodb primary. Fungsi hubungan
webserver dengan cache adalah ketika melakukan request
data yang pertama kali dilakukan pengecekan adalah pada
redis cache apakah ada cache dari request sebelumnya atau
apakah dalam cache sedang tersimpan data yang sama
dengan request yang sedang dilakukan, jika dirasa tidak ada
maka request akan di teruskan ke database server atau
mongodb primary. Database cluster terdiri dari 3 buah
database server yang jika dilihat dari gambar terdiri dari 1
buah database server primary dan 2 buah database server
secondary yang fungsinya saling membackup dan
mendistribusikan data antar satu dengan lainnya. Ketika
database server primary down maka database secondary akan
menggantikan peran primary hingga database primary
kembali pulih.
Spesifikasi teknis kebutuhan hardware dan Software bisa
dilihat pada tabel 1.
Tabel 1. Spesifikasi kebutuhan hardware dan software
No
Deskripsi
Spesifikasi
Kebutuhan Hardware
1
Load balancer
Spesifikasi
- 2 Ghz dual core processor
- 2 GB RAM
- Minimum internal storage
1GB
2
Web Server
Spesifikasi
- 1,6 GHz CPU
- 1,75 GB RAM
- 1 x 40 GB of free space
3
Database Server
Spesifikasi
- 1,6 GHz CPU
- 1,75 GB RAM
- 1 x 40 GB of free space
Kebutuhan Software
4
NGINX
OS
Recomended Linux Ubuntu
16.04 LTS++
5
Node.Js
OS
Recomended Window 10
6
MongoDB
OS
Recomended Window 10
7
Redis
OS
Recomended Linux Ubuntu
16.04 LTS++
B. Konfigurasi web server
Konfigurasi webserver dapat dilihat pada gambar dibawah
ini :
Gambar 2. Konfigurasi Webserver
Gambar 2 merupakan desain konfigurasi dari webserver
dimana terdapat 2 buah webserver dan keduanya
menggunakan webserver nodejs, spesifikasi konfigurasi
sebagai berikut :
Server 1
Ip : 192.168.43.109
Port : 80
OS : Windows
W.server: Nodejs
Server 2
Ip : 192.168.43.116
Port : 80
OS : Windows
W.server: Nodejs
Load Balancing (NGINX)
Ip : 192.168.43.141
Port : 80
OS : Windows Subsystem Linux (Ubuntu)
C. Konfigurasi Load balancing
Load balancing menggunakan sistem operasi Ubuntu
dan berjalan pada windows subsystem linux. Tahapa
pertama untuk konfigurai load balancing aitu pembaruan
repositori pada server dengan perintah apt get update.
Setelah proses update selesai lanjut ke proses peinginstallan
paket nginx dengan perintah apt-get install nginx kemudian
dilanjutkan dengan konfigurasi nginx yang terletak pada file
/etc/nginx/sites-available/default file konfigurasi terdapat
pada gambar berikut :
Gambar 3. Konfigurasi Load Balancing
Gambar 3 merupakan konfigurasi loadbalancing nginx.
Pada gambar diatas terdapat upstream dengan ip diisi
dengan ip web server cluster yaitu web server 1 dan web
server 2. Kemudian terdapat server section yang diisi oleh
port server load balancing dan ip dari server load balancing.
Pemilihan algoritma load balancing terdapat pada upstream
section dimana jika tidak di inputkan algoritma maka akan
menggunakan algoritma default yaitu round robbin.
D. Konfigurasi Replikasi Database Mongodb
Berikut adalah rancangan konfigurasi replikasi database :
Gambar 4. Konfigurasi replikasi database
Gambar 4 merupakan rancangan konfigurasi replikasi
database mongodb. Konfigurasi replikasi pada mongodb
direkomendasikan memiliki 3 member/node, satu node akan
menjadi primary dan lainnya akan menjadi secondary,
ketika primary node down, salah satu node secondary akan
otomatis menggantikannnya. Proses ini dinamakan election,
proses yang menentukan node mana yang akan di jadikan
primary. Rancangan arsitektur diatas merupakan
representasi dari arsitektur mongodb cluster seperti berikut :
Gambar 5. Arsitektur mongodb Cluster
Gambar 5. Merupakan arsitektur yang di rekomendasikan
oleh mongodb atau arsitektur simple mongodb cluster
dimana ketiga node akan saling berkomunikasi melalui
jaringan lokal, berikut konfigurasi masing-masing node :
Node1 primary
Ip address : 192.168.43.141
Port : 1111
Node2 secondary
IP address : 192.168.43.109
Port : 2222
Node 3 secondary
Ip address : 192.168.43.116
Port : 4444
Selanjutnya start mongodb server dengan masing masing
konfigurasi diatas seperti pada gambar 6.
Gambar 6. Memulai server sesuai konfigurasi
Pada gambar 6 dijelaskan konfigurasi database
dilakuakan dengan menjalankan masing masing database
server sesuai dengan konfigurasi masing masing dengan
sintaks mongod bind_ip %ipadress% --port %port% --
dbpath %path% --logpath %logpath%. bind_ip untuk ip
database server, --port untuk alokasi port database server, -
dbpath adalah lokasi dari database, --logpath adalah untuk
lokasi dari logfile database.
E. Konfigurasi Redis Cache
konfigurasi database server redis dilakukan ketika
mengidentifikasikan koneksi yang dilakukan pada server
side yaitu di dalam sintaks Node.js , denagn mendefinisikan
fungsi modul redis serta membuat redisClient yang
menggunakan ip server terkait serta portnya. Maka
redisClient siap digunakan untuk melakukan request get
data.
Redis bekerja pada memori RAM karena kinerja ram
dalam pengolahan data sangat cepat dibanding hardisk,
meskipun ukuran dari RAM tidak sebesar hardisk namun
pada studi kasus mekanisme cache tidak perlu dibutuhkan
resource data yang besar karena cache dari Redis bersifat
sementara. Berikut permodelan mekanisme cache server :
Gambar 7. Mekanisme kerja redis cache
Gambar 7 merepresentasikan mekanisme cara kerja cache
yang berjalan dalam aplikasi. Aplikasi akan melakukan
pengecekan cache redis terlebih dahulu ketika hendak
melakukan request data pada basis data, jika terdapat data
yang sesuai dengan request pada basis data utama maka
yang digunakan data yang ada pada redis cache. Namun
ketika tidak menemukan data yang sesuai dengan request
pada database , request akan dilakukan ke database utama
kemudian hasil request tersebut akan di simpan sementara di
dalam redis cache karena mengantisipasi akan adanya
request terhadap data yang sama di masa mendatang.
F. Pengujian
Pengujian ini dilakukan untuk mengetahui apakah balancer
melakukan tugasnya dalam pemagian traffic atau beban
dengan proper/baik. Pengujian dilakukan dengan
pengaksesan ke IP load balancer secara manual dengan
menggunakan 2 browser yaitu chrome dan chrome dengan
mode incognito secara bergantian untuk melihat alokasi
traffic dari load balancer. Pengujian akan dianggap berhasil
ketika IP load balancer di akses akan bergantian
mengalokasikan beban ke dua server namun dengan
endpoint yang mengembalikan data status server.
First Attempt
Hasil dari percobaan pertama adalah sebagaimana di
tunjukan pada gambar 8.
Gambar 8. Hasil percobaan pertama
Gambar 8 menunjukan hasil dari percobaan pertama
mengakses Ip load balancer dan hasilnya adalah endpoint
dengan status yang menunjukan bahwa yang sedang di akses
adalah server 1.
Second Attempt
Hasil dari percobaan Kedua adalah sebagaimana di tunjukan
pada gambar 9.
Gambar 9. Hasil percobaan Kedua
Gambar 9 menunjukan hasil dari percobaan kedua
mengakses Ip load balancer dan hasilnya adalah endpoint
dengan status yang menunjukan bahwa yang sedang di akses
adalah server 2.
Third Attempt
Hasil dari percobaan ketiga adalah sebagaimana di tunjukan
pada gambar 10.
Gambar 10. Hasil percobaan ketiga
Gambar 10 menunjukan hasil dari percobaan ketiga
mengakses Ip load balancer dan hasilnya adalah endpoint
dengan status yang menunjukan bahwa yang sedang di akses
adalah server 2.
Fourth Attempt
Hasil dari percobaan keempat adalah sebagaimana di
tunjukan pada gambar 11.
Gambar 11. Hasil percobaan keempat
Gambar 11 menunjukan hasil dari percobaan keempat
mengakses Ip load balancer dan hasilnya adalah endpoint
dengan status yang menunjukan bahwa yang sedang di akses
adalah server 1.
Pada hasil yang ditunjukan pada gambar 8, 9, 10, dan 11
bisa di tarik kesimpulan bahwa load balancing berjalan
dengan semestinya yaitu dengan algoritma default atau
RR(Round Robin) membagi beban secara merata dan
bergantian tidak dengan memperhitungkan jumlah beban
masing masing server. Itu terbukti dari keempat gambar
tersebut bahwasanya pengalokasian beban saling bergantian
dari server 1 kemudian berpindah ke server 2 selanjutnya
kembali server 2 dan terakhir di alokasikan ke server 1.
Pengujiain selanjutnya adalah pengujian failover load
balancer yaitu pada kasus yang dibangun dalam percobaan
kali ini , penulis akan mematikan salah satu server kemudian
kembali mengakses ke loadbalancer apakah akan
dialokasikan ke server yang tersedia. Pertama tama matikan
salah satu server, disini yang di matikan adalah server 1
dengan perintah service nginx stop. Hasil dari pengujian fail
over seperti pada gambar 12.
Gambar 12. Hasil Uji Failover
Gambar 12 menunjukan hasil dari pengujian failover
bahwasanya ketika mengakses ip dari load balancing akan
langsung di alokasikan ke server 2 dikarenakan server 1
sedang down atau dimatikan. Ini menunjukan bahwa
loadbalancing bekerja dengan semestinya yaitu menjaga
availability walaupun salah satu web server sedang down.
Kemudian akan dilakukan pengujian Load balancer
dengan replikasi database tanpa redis cache. Pengujian ini
dilakukan dengan bantuan tools Jmeter dengan ip tujuaun
yaitu ip load balancer dan endpoint /mongodb/10000
(berisikan 10000 data), thread 10 user ,interval 50 detik dan
iterasi sebanyak 10 kali. Hasil dari pengujian bisa dilihat
pada gambar 13.
Gambar 13. Hasil pengujian tanpa redis cache
Gambar 13 menunjukan hasil dari 3 parameter yaitu sample
time, latency, dan connect time pada request get sebanyak
total 100 request dan dapat diambil informasi berupa rata
rata nilai tiap parameter, nilai terendah dan tertinggi yang
direpresentasikan dalam tabel 2.
Tabel 2. Hasil pengujian tanpa redis cache
No
Deskripsi
Hasil
Max
Min
Avg
1
Sample Time (ms)
56712
1617
11692.1
2
Latency
36132
589
6674.26
3
Connect Time(ms)
1992
0
137.78
Kemudian akan dilakukan pengujian untuk sistem yang
menerapkan mekanisme redis cache untuk menarik
kesimpulan dan untuk komparasi antara 2 hasil. Pengujian
menggunakan tools yang sama dengan thread, iterasi, dan
interval yang sama namun yang membedakan adalah
endpoint tujuanya. Endpoint kali ini adalah /redis/10000
(menggunakan mekanisme redis cache dan request 10 ribu
data). Hasil pengujian bisa dilihat pada gambar 14.
Gambar 14. Hasil pengujian penerapan redis cache
Gambar 14 menunjukan hasil uji 3 parameter yatu sample
time dalam satuan milisecond(ms), latency, dan connectime
dalam satuan milisecond(ms) pada request get sebanyak
total 100 request dan dapat diambil informasi yang
direpresentasikakan kedalam table sebagai berikut :
Tabel 3 hasil pengujian penerapan redis cache
No
Deskripsi
Hasil
Max
Min
Avg
1
Sample Time (ms)
25070
1449
8986.91
2
Latency
12118
104
3064.22
3
Connect Time(ms)
3263
0
234.27
Dilihat dari data yang dimuat pada tabel 2 dan 3 maka dapat
disimpulkan sistem yang menerapkan mekanisme cache
redis cenderung memiliki nilai nilai yang lebih rendah
ketimbang sistem yang tidak menggunakan redis. Ini
menunjukan bahwa penggunaan atau penerapan mekanisme
redis cache sangat efektive untuk meningkatkan performa
suatu sistem. Perbedaan nilai yang terdapat pada kedua
sistem terpaut lumayan jauh hampir berselisih di 2 3
second untuk sample time, untuk latency penggunaan redis
cache nyaris menurunkan nilai setengah dari nilai sistem
yang tidak menerapkan mekanisme ini, kemudian pada
connect time untuk sistem yang tidak menerapkan
mekanisme redis cache lebih unggul. Namun dari
performansi yang cenderung di pertimbangkan adalah
reponse time dan dari data yang diperoleh sistem yang
menerapkan mekanisme cache lebih unggul atau lebih cepat
memberikan respon ketimbang sistem yang tidak
menerapkan redis cache.
V. KESIMPULAN DAN SARAN
A. Kesimpulan
1) Penerapan load balancing terhadap sistem terdstribusi
dapat bekerja dengan baik ketika request yang datang
berhasil di distribusikan secara merata ke setiap web
server yang tergabung dalam cluster secara merata
sehingga server tidak mengalami overload karena saling
membagi beban satu sama lain. Selain itu dengan
penerapan load balancing sistem menjadi bersifat fault
0
10000
20000
30000
40000
50000
60000
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
Request
Sample Time (ms) Latency Connect Time (ms)
0
5000
10000
15000
20000
25000
30000
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
request
Sample Time (ms) Latency Connect Time (ms)
tolerant atau saling membackup satu sama lain ketika
salah satunya down.
2) Penerapan cluster mongodb database membuat sistem
basis data menjadi high availability, dikarenakan
mongodb cluster memiliki metode election dimana
ketika primary database down maka secondary database
akan menggantikan posisi primary database sehingga
proses fungsional yang melibatkan komunikasi dengan
database tidak akan terganggu.
3) Penerapan mekanisme redis cache bekerja dengan baik
dimana dari hasil pengujian terjadi penurunan response
time dari server yang berarti penerapan mekanisme ini
sangat meningkatkan efektifitas dan performansi sistem
terdistribusi.
VI. DAFTAR PUSTAKA
[1] R. Dani and F. Suryawan, “Perancangan dan Pengujian Load
Balancing dan Failover Menggunakan NginX,” Khazanah
Inform. J. Ilmu Komput. dan Inform., vol. 3, no. 1, p. 43,
2017.
[2] A. Rahmatulloh and F. MSN, “Implementasi Load Balancing
Web Server menggunakan Haproxy dan Sinkronisasi File
pada Sistem Informasi Akademik Universitas Siliwangi,”
J. Nas. Teknol. dan Sist. Inf., vol. 3, no. 2, pp. 241248,
2017.
[3] G. Singh and K. Kaur, “An Improved Weighted Least
Connection Scheduling Algorithm for Load Balancing in
Web Cluster Systems,” pp. 1950–1955, 2018.
[4] E. Purwanto and S. Kom, “Perbandingan Strategi Replikasi
Pada Sistem Basis Data Terdistribusi,” J. Inform., pp. 18,
2012.
[5] A. W. Services, “Database Caching Strategies Using Redis,”
no. May, 2017.
[6] R. J. Suhatril, “Sistem Terdistribusi,” pp. 14–18, 2004.
[7] P. D. P. Silitonga, Replikasi Basis Data Pada Sistem
Pengolahan Data Akademik Univeristas Katolik Santo
Thomas,” J. TIME, vol. III, no. 1, pp. 3236, 2014.
[8] W. Chen, A. Noertjahyana, and J. Andjarwirawan, Analisis
Perbandingan Kinerja Algoritma Load Balancer NGINX
pada Studi Kasus PRS.”
[9] R. Julianto, W. Yahya, and S. R. Akbar, Implementasi Load
Balancing Di Web Server Menggunakan Metode Berbasis
Sumber Daya CPU Pada Software Defined Networking,
J. Pengemb. Teknol. Inf. dan Ilmu Komput. Univ.
Brawijaya, vol. 1, no. 9, pp. 904914, 2017.
[10] M. T. Nunit Prihatoni Siregar, Kemas Rahmat S. W., S.T.,
M.Eng , Alfian Akbar G., S.T., Analisis dan
Implementasi Basis Data Terdistribusi Horizontal pada
MongoDB untuk ClikKB BKKBN Regional Jawa Barat
Analysis,” in Cybrarians Journal, 2015, vol. 2, no. 37, pp.
131.
... Terdapat [13]. Penelitian selanjutnya adalah dari Faisal Al Isfahani dan Fuji Nugraha yang berjudul Implementasi Load Balancing NGINX dan MongoDB Cluster serta Mekanisme Redis Caching yang bertujuan untuk membangun arsitektur sistem terdistribusi dengan menggabungkan penyeimbangan beban server web, kluster basis data, dan teknologi caching yang memanfaatkan redis [14]. Yang ketiga adalah penelitian yang dilakukan oleh Anggi Putri Meriani, Dwi Ramti Asih dan Siti Annisa, berjudul Pengujian Distributed Cached Database Dengan Menggunakan Redis Pada Aplikasi MaBaUS. ...
... Beberapa penelitian telah dilakukan terkait system terdistribusi. Penelitian yang dilakukan oleh Isfahani et al. [13] ...
Article
Full-text available
Dalam dunia teknologi informasi, sistem yang terdistribusi dan berskala besar sering mengalami masalah performa akibat tingginya beban traffic dan volume data. Kebutuhan akan akses internet yang semakin meningkat mengakibatkan peningkatan beban traffic pada server, dan jika jumlah traffic ke server terlalu tinggi, dapat menyebabkan kegagalan fungsi server (overload). Oleh karena itu, diperlukan upaya untuk meningkatkan performa sistem web server agar dapat menangani jumlah koneksi yang lebih besar. Salah satu metode yang dapat digunakan adalah load balancing. Dengan menggunakan teknik load balancing, beban kerja dibagi secara merata ke sejumlah server yang tergabung dalam satu cluster. Namun, masalah kelebihan beban juga dapat terjadi pada basis data akibat peningkatan volume data dan pengelolaan yang terpusat, mengakibatkan waktu respons yang lambat. Salah satu solusi yang dapat diterapkan adalah database clustering. Clustering merupakan teknik yang menggunakan beberapa server untuk mengelola data dalam jumlah besar dan membagi data di antara server-server tersebut. Hal ini dapat membantu meningkatkan kecepatan akses data dan mengurangi kemungkinan terjadinya waktu tidak tersedia (downtime) pada sistem. Untuk mengoptimalkan hal ini, caching juga dapat dilakukan. Caching merupakan teknik penyimpanan data yang sering diakses dalam memori untuk mengurangi waktu akses data yang lambat. Dengan menerapkan teknik-teknik ini, diharapkan performa sistem dapat ditingkatkan secara signifikan.
... Bahkan beberapa peneliti mencoba membandingkan [11] beberapa metode untuk mendapatakan metode optimasi yang terbaik. Metode optimasi yang cukup banyak digunakan oleh peneliti salah satunya adalah Nginx [12], [13], [22]- [26], [14]- [21]. ...
Article
Full-text available
PT. Beon Intermedia merupakan perusahaan yang bergerak di bidang jasa hosting dan domain. Dalam kurun waktu 1 bulan, tim Customer Support telah menerima 90 tiket terkait kendala akses website yang lambat, yang setiap bulannya diperkirakan ada 15 tiket terkait kendala tersebut. Penelitian ini bertujuan untuk meningkatkan kinerja akses website pelanggan yang lambat pada PT. Beon Intermedia. Dengan judul Optimasi Nginx Web Server Menggunakan Metode Reverse Proxy di PT. Beon Intermedia diambil sebagai solusi untuk mengatasi permasalahan tersebut. Penelitian ini menggunakan metode reverse proxy yang terintegrasi dengan sistem Cache oleh Nginx, Pagespeed, dan Gzip. Website yang digunakan berbasis CMS WordPress dengan total 4 nama domain yang diuji. Hasil pengujian berupa perbandingan 3 tipe konfigurasi terbaik dan perbandingan sebelum dan sesudah. Alat pengujiannya menggunakan 2 situs monitoring website yaitu Gtmetrix dan Pingdom. Untuk indikator pengujian menggunakan Pagespeed Grade, Yslow Grade, Load Time, Total Page Size, dan Number of Requests. Hasil penelitian ini mampu meningkatkan kecepatan akses website secara efektif. Pengujian menggunakan 3 jenis konfigurasi menggunakan pondasi berupa akses website akan lebih cepat jika nilai load time lebih kecil. Hasil pengujian pada situs Gtmetrix, konfigurasi pertama (1) merupakan yang terbaik dengan waktu loading lebih cepat yaitu 8,8 detik dibandingkan dua konfigurasi lainnya dengan selisih nilai 0,5 detik (9,3 detik) dan 0,4 detik (9,2 detik). Sedangkan di situs Pingdom, konfigurasi terbaik berasal dari konfigurasi kedua (kedua). Konfigurasi kedua mencatat waktu muat 7,14 detik lebih cepat dibandingkan dua konfigurasi lainnya dengan selisih 1,1 detik (8,23 detik) dan 1,2 detik (8,37 detik)
... Redis adalah untuk membangun basis pengetahuan tentang makna mendalam dari konteks redis dan teori teknologi [11]. Redis bekerja pada RAM karena waktu manajemen data lebih cepat [12]. ...
Article
Full-text available
Perkembangan saat ini, seiring dengan perkembangan teknologi dan komunikasi, saat ini menggunakan data untuk melihat informasi yang harus mengakses data tersebut. Saat mengakses data akan membutuhkan kecepatan untuk membuka data. Data ini dapat dilakukan melalui metode redis cache. Redis adalah dalam memori, cache memori adalah tindakan menyimpan data yang dibutuhkan aplikasi dalam memori yang dapat diambil dengan cepat. Caching dalam keadaan tertentu dapat meningkatkan pekerjaan aplikasi secara dramatis. Cache data dalam memori sangat efektif bila aplikasi berulang kali mengakses data.
... Kadang redis juga disebut sebagai "leather man of database" [7], itu masih sederhana filosofi desain yang fleksibel menjadikan pilhan yang efektif utuk memnyelesaikan saat banyak permintaan saat tugas pemroresan data.Redis merupakan untuk membangun dasar pengetahuan tentang makna yang dalam dari konteks redis dan teori tenatang teknologi [8]. Redis berkerja pada RAM karena saat pengelolaan data lebih cepat [9]. ...
Article
Full-text available
Perkembangan zaman sekarang seiringnya berkembangnya teknologi dan komunikasi saat ini banyak penggunaan yang menggunakan data untuk melihat suatu informasi yang harus mengakses data tersebut. Saat mengakses data akan membutuhkan kecepatan untuk membuka data. Data tersebut bisa melakukan performa memlaui metode cache redis.Redis merupakan in-memory, Memory caching adalah tindankan menyimpan suatu data yang dibutuhkan aplikasi dalam memori yang di dapat dengan cepat diambil.caching dalam keadaan tertentu yang secara dramatis dapat meningkat kerja aplikasi. Caching data dalam memory sangat efektif ketika aplikasi berulang kali untuk mengakses data.
Article
Full-text available
Sistem Pengelola Informasi Ambalan Ashabul Kahfi Berbasis Web merupakan aplikasi yang menyajikan informasi mengenai Ambalan Ashabul Kahfi SMA Negeri 23 Bone. Aplikasi ini merupakan sumber informasi Ambalan Ashabul Kahfi yang meliputi profil, materi, berita, pendaftaran anggota, serta dilengkapi dengan fitur chat sebagai media komunikasi. Tidak hanya sebagai pengelola informasi Ambalan, aplikasi ini juga memanfaatkan teknik caching system menggunakan Redis dalam pengaksesan data berita untuk mempercepat proses pengaksesan data dan membantu mengurangi beban kerja server utama. Berdasarkan hasil pengujian yang telah dilakukan dengan menggunakan teknik blackbox pada pengujian beta menghasilkan persentase tertinggi dari kuesioner yaitu sebanyak 87% menyatakan sangat setuju dengan adanya sistem pengelola informasi Ambalan Ashabul Kahfi berbasis web dengan pemanfaatan caching system menggunakan Redis. Implikasi dari aplikasi ini baik untuk diterapkan sesuai dengan kinerja dan kebutuhan ambalan Ashabul Kahfi sehingga berguna dan mengefisienkan pekerjaan, aplikasi ini juga mempermudah masyarakat memperoleh informasi mengenai ambalan secara cepat dan menarik.
Article
Full-text available
Abstrak-Hari ini dimana perkembangan teknologi semakin tidak dapat dibendung memberikan kemudahan untuk memperoleh data bahkan menyajikan informasi, sehingga perolehan dan penyajiannya pun dapat dilakukan dimana saja dengan waktu yang singkat. Diwaktu yang sama banyak Instansi yang berlomba lomba men digitalisasi kebutuhannya telah menghasilkan masalah baru, menjadikan keragaman program, bahasa pemrograman, dan arsitektur yang menimbulkan ancaman terhadap integrasi sistem dan juga keamanan integritas data [1] [2]. RESTful Web Service menjadi solusi masalah hari ini, dimana dapat memberikan layanan komputasi terdistribusi mempermudah proses pelayanan dan mengatasi ancaman terjadinya duplikasi data karena belum terintegrasi [unper], serta menjaga data pelayanan dengan disertai penerapan JSON Web Token (JWT) dan dioptimasi keamanannya memakai algoritma SHA-512 dapat menjadi jaminan akan terjaganya data yang ada. [3]
Article
Full-text available
Saat ini Universitas Siliwangi memiliki populasi pengguna Sistem Informasi Akademik sebesar 12829 orang yang terdiri dari mahasiswa, karyawan dan dosen. Dengan arsitektur server tunggal saat ini, sering terjadi overload jika banyak request user secara bersamaan seperti pada kegiatan pengisian kartu rencana studi mahasiswa. Hal ini menimbulkan kondisi server down karena matinya aplikasi web server dan database server sehingga banyak user yang tidak dapat dilayani dengan kondisi server tunggal. Arsitektur multi server dengan memanfaatkan load balancing web server merupakan salah satu solusi yang dianggap efektif dan efisien untuk mengatasi permasalahan tersebut. Konsep load balancing web server dengan high availability memungkinkan proses request pada Sistem Informasi Akademik dibagi secara merata ke beberapa server. Hasil penelitian yang didapatkan yaitu load balancing dapat bekerja dengan baik ketika request datang dari client telah berhasil didistribusikan balancer secara merata kepada setiap node cluster. Sehingga server tidak mengalami overload dan kemampuan web server bisa melayani 10.000 request dengan tidak mengalami error request. Selain itu, penerapan sinkronisasi file bekerja dengan baik dimana file yang diupload pada node 1 akan disinkron ke setiap node 2 dan node 3 pada cluster, begitu juga sebaliknya karena sinkronisasi file ini bersifat dua arah.
Article
Full-text available
Situs web dengan traffic yang tinggi dapat menyebabkan beban kerja yang berat di sisi server, yang pada gilirannya akan mengakibatkan turunnya kinerja server, bahkan kegagalan sistem secara keseluruhan. Salah satu solusi untuk mengatasi masalah tersebut adalah dengan menerapkan teknik load balancing dan failover. Load balancing merupakan teknologi untuk melakukan pembagian beban kepada beberapa server, memastikan tidak terjadi kelebihan beban pada salah satu server. Sementara itu, failover merupakan kemampuan suatu sistem untuk berpindah ke sistem cadangan jika sistem utama mengalami kegagalan. Dalam penelitian ini load balancing dengan teknik failover akan diimplementasikan pada sistem operasi Ubuntu. Software inti yang digunakan dalam penelitian ini adalah Nginx dan KeepAlived. Nginx akan berfungsi sebagai load balancer, sedangkan KeepAlived untuk mengimplementasikan teknik failover. Beberapa skenario telah disiapkan untuk menguji sistem load balancing yang telah dirancang. Pengujian dilakukan dengan menggunakan perangkat lunak JMeter. Berdasarkan pengujian yang telah dilakukan, sistem yang dirancang berhasil 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. Mengacu pada hasil penelitian ini, sistem load balancing dan failover menggunakan Nginx dapat dijadikan salah satu solusi pada sistem web server dengan situs web yang memiliki traffic tinggi.
An Improved Weighted Least Connection Scheduling Algorithm for Load Balancing in Web Cluster Systems
  • G Singh
  • K Kaur
G. Singh and K. Kaur, "An Improved Weighted Least Connection Scheduling Algorithm for Load Balancing in Web Cluster Systems," pp. 1950-1955, 2018.
Perbandingan Strategi Replikasi Pada Sistem Basis Data Terdistribusi
  • E Purwanto
  • S Kom
E. Purwanto and S. Kom, "Perbandingan Strategi Replikasi Pada Sistem Basis Data Terdistribusi," J. Inform., pp. 1-8, 2012.
Database Caching Strategies Using Redis
  • A W Services
A. W. Services, "Database Caching Strategies Using Redis," no. May, 2017.
Sistem Terdistribusi
  • R J Suhatril
R. J. Suhatril, "Sistem Terdistribusi," pp. 14-18, 2004.
Replikasi Basis Data Pada Sistem Pengolahan Data Akademik Univeristas Katolik Santo Thomas
  • P D P Silitonga
P. D. P. Silitonga, "Replikasi Basis Data Pada Sistem Pengolahan Data Akademik Univeristas Katolik Santo Thomas," J. TIME, vol. III, no. 1, pp. 32-36, 2014.
Analisis Perbandingan Kinerja Algoritma Load Balancer NGINX pada Studi Kasus PRS
  • W Chen
  • A Noertjahyana
  • J Andjarwirawan
W. Chen, A. Noertjahyana, and J. Andjarwirawan, "Analisis Perbandingan Kinerja Algoritma Load Balancer NGINX pada Studi Kasus PRS."
Implementasi Load Balancing Di Web Server Menggunakan Metode Berbasis Sumber Daya CPU Pada Software Defined Networking
  • R Julianto
  • W Yahya
  • S R Akbar
R. Julianto, W. Yahya, and S. R. Akbar, "Implementasi Load Balancing Di Web Server Menggunakan Metode Berbasis Sumber Daya CPU Pada Software Defined Networking," J. Pengemb. Teknol. Inf. dan Ilmu Komput. Univ. Brawijaya, vol. 1, no. 9, pp. 904-914, 2017.
Implementasi Basis Data Terdistribusi Horizontal pada MongoDB untuk ClikKB BKKBN Regional Jawa Barat Analysis
Implementasi Basis Data Terdistribusi Horizontal pada MongoDB untuk ClikKB BKKBN Regional Jawa Barat Analysis," in Cybrarians Journal, 2015, vol. 2, no. 37, pp. 1-31.