1
PERANCANGAN SERVER DENGAN
MENGGUNAKAN LOAD BALANCER,
FAILOVER, DAN DATABASE REPLICATION
PADA PT. INDONESIA NEWS CENTER
Silvia Gerrits
Binus University, Jakarta, DKI Jakarta, Indonesia, silviagee90@gmail.com
Viko Aldiano Anggoro Pamungkas
Binus University, Jakarta, DKI Jakarta, Indonesia, vico.aldiano@gmail.comAde Destrianto
Binus University, Jakarta, DKI Jakarta, Indonesia, triant@live.com
ABSTRAK
Tujuan penelitian ialah untuk merancang web server dan database server dengan menggunakan load balancer, failover, dan database replication. Hal ini dibuat untuk dapat memberikan layanan yang dapat berjalan secara kontinu untuk PT. Indonesia News Center yang berjalan dalam bidang berita online. Adapun metode penelitian yang digunakan adalah dengan melakukan survei ke perusahaan, studi pustaka dengan mencari artikel maupun jurnal yang berkaitan dengan perancangan, wawancara dengan manager IT, dan melakukan perancangan berdasarkan hasil survei dan studi pustaka yang dilakukan, lalu melakukan uji coba guna mengetahui apakah perancangan yang dilakukan dapat berjalan dengan baik. Hasil yang dicapai adalah dengan menggunakan load balancer beban permintaan dari klien merata ke semua server, dengan teknik failover maka bila load balancer utama mengalami masalah maka tugas failover untuk mengalihkannya ke load balancer cadangan, dan dengan teknik database replication dimana setiap perubahan isi pada salah satu database akan berpengaruh pada semua database. Simpulan yang diperoleh dari perancangan ini adalah dapat meningkatkan nilai ketersediaan dari server yang akan dibangun.
Kata Kunci: Web Server, Database Server, Load Balancer, Failover, Database Replication.
ABSTRACT
The research purpose is to design web server and database server by using load balancer, failover and database replication. It is made to be able to provide service that can run continuously for PT. Indonesia News Center that runs in the field of online news. The research method used is do a survey to the company, the literature by search for articles and journals related to design, interviews with IT manager, and do design based on the survey results and literature were done, and then test to see if the design can run well. Results achieved by using load balancer is the load of client requests distributed to all servers, failover techniques if the main load balancer having problems then the failover task is to divert to backup load balancer, and database replication technique where each of one database content is changed will affect all databases. The conclusions derived from this design is that it can increase the value of the availability of the server to be built.
Keywords: Web Server, Database Server, Load Balancer, Failover, Database Replication.
1.
Pendahuluan
1.1 Latar Belakang
Dalam beberapa dekade terakhir ini, teknologi informasi berkembang sangat pesat, semua informasi tersebar dengan mudah dan cepat melalui teknologi informasi. Bahkan hampir tidak ada orang yang tidak mengenal komputer. Komputer dirasa dapat meringankan dan menjadikan pekerjaan lebih mudah. Seiring dengan kebutuhan manusia akan komputer maka perlu adanya suatu jaringan yang dapat menghubungkan satu komputer dengan komputer yang lain, yang dapat
2
membantu dalam berbagi data dan sumber daya dengan orang lain. Salah satu teknologi informasi itu ialah internet.
Internet adalah suatu jaringan komputer global yang menghubungkan komputer di seluruh
dunia, pengguna internet pun tidak terbatas, dari kalangan pelajar sampai pada perusahaan-perusahaan besar. Kebanyakan perusahaan-perusahaan menggunakan internet sebagai media informasi untuk hal-hal keperluan perusahaan, dan salah satunya adalah penggunaan situs web (website).
PT. Indonesia News Center sebagai salah satu perusahaan yang bergerak di bidang media massa online bermaksud untuk merancang server baru pada salah satu sub-layanan mereka yaitu
inilahkoran dengan menggunakan Load balancer, Failover, dan Database replication.
Dengan adanya load balancer beban permintaan dari klien merata ke semua server yang ada, sementara failover yang dapat mengalihkan ke load balancer cadangan ketika load balancer utama tidak dapat beroperasi, dan database replication yang mana ketika melakukan read dan
write pada salah satu database maka pembaharuan pada database yang lain akan secara langsung
disesuaikan dengan perubahan yang terjadi. Dengan adanya komponen-komponen tersebut diharapkan dapat menjamin ketersediaan dan menghindari kegagalan dari server seperti situs web yang tidak dapat diakses, sehingga penyampaian berita dan informasi dapat berjalan dengan lancar. Ketersediaan situs web menjadi salah satu prioritas utama PT. Indonesia News Center pada
sub-layanan mereka yaitu inilahkoran, dengan dibangunnya server beserta komponen-komponen
tambahannya dimaksudkan agar situs web inilahkoran dapat siap setiap saat dalam menyajikan berita-berita dan informasi terbaru.
1.2 Ruang Lingkup Masalah
Untuk menghindari pembahasan masalah menjadi terlalu luas, maka pada penulisan ini ruang lingkupnya dibatasi pada:
1. Merancang server dengan menggunakan load balancer, failover dan database
replication yang mendukung terjaminnya ketersediaan situs web.
2. Penggunaan Linux Debian Squeeze sebagai sistem operasi pada server.
3. Menggunakan Nginx sebagai web server, HAProxy sebagai Load balancer, Keepalived sebagai Failover, dan MySQL Cluster sebagai Database replication pada server baru inilahkoran yang berada dalam jaringan server PT. Indonesia News Center.
4. Perancangan dilakukan secara simulasi dengan menggunakan aplikasi Oracle VM VirtualBox versi 4.2.4.
1.3 Tujuan dan Manfaat
Adapun tujuan dari penulisan skripsi ini adalah :
1. Merancang web server dan database server baru untuk salah satu sub-layanan perusahaan.
2. Menggunakan load balancer, failover, dan database replication pada server yang akan dirancang.
3. Memberikan layanan yang dapat berjalan secara kontinu. Sedangkan manfaat dari penulisan skripsi ini adalah :
1. Beban permintaan dari klien merata ke semua server.
2. Menjamin ketersedian situs web, dimana apabila load balancer utama tidak dapat beroperasi maka load balancer cadangan akan langsung menggantikannya tanpa adanya intervensi seorang Administrator.
3. Setiap terjadi perubahan isi pada salah satu database, maka akan berpengaruh pada semua database.
4. Dapat melakukan maintenance pada salah satu server tanpa harus menutup sementara layanan situs web.
2.
Metode Penelitian
Metode penelitian yang dipakai meliputi tiga bagian pokok, yaitu sebagai berikut: a. Metode Studi Kepustakaan
Pada Tahap ini dilakukan penelusuran dan pembelajaran terhadap berbagai macam literatur seperti buku, jurnal, tugas akhir, referensi-referensi lain baik melalui perpustakaan maupun internet yang terkait dengan judul penulisan skripsi ini.
3 b. Metode Analisis
Survei lapangan, yaitu melakukan survei ke perusahaan serta melakukan wawancara dengan manager IT. Disamping itu juga dikumpulkan kebutuhan- kebutuhan perusahaan mengenai server.
c. Perancangan dan Uji Coba
Dalam perancangan dibagi menjadi beberapa tahap yang terdiri dari instalasi sistem operasi pada server, instalasi aplikasi yang dibutuhkan, dan konfigurasi terhadap
server. Kemudian untuk mengetahui sistem dapat berjalan dengan baik dilakukan uji
coba dengan percobaan pengaksesan terhadap server yang dirancang.
3.
Hasil dan Bahasan
3.1 Permasalahan
PT. Indonesia News Center memerlukan server baru yaitu web server dan database server yang dapat memberikan layanan secara kontinu meskipun sedang dilakukan perbaikan ataupun terjadi kerusakan pada salah satu server-nya. Server yang akan digunakan untuk kaitannya dengan layanan yang diberikan oleh perusahaan yaitu sebuah portal berita yang dijalankan secara online yang dapat diakses oleh pengunjung melalui internet. Selain itu pada bagian load balancer dikarenakan perusahaan menggunakan tipe load balancing perangkat keras yang dimana pemakaian harus membayar lisensi kepada pihak vendor setiap periode tertentu, perusahaan menginginkan sebuah load balancer yang bertipe load balancing perangkat lunak yang bebas dari biaya lisensi.
Permasalahan juga perlu diperhatikan pada database server, karena hal ini berkaitan dengan penyimpanan konten dari berita yang akan dimuat. Perusahaan memerlukan sebuah database
server yang ketika dilakukan action (insert, update, delete) pada salah satu database maka
pembaharuan pada database yang lain akan secara langsung disesuaikan dengan perubahan yang terjadi. Karena akan terdapat lebih dari satu database server pada server yang akan dirancang. 3.2 Usulan Pemecahan Masalah
Dari permasalahan terlihat bahwa PT. Indonesia News Center memerlukan sebuah web
server dan database server yang dapat memenuhi kriteria dari permasalahan yang ada. Maka
usulan untuk pemecahan dari masalah tersebut, adalah dengan penggunaan load balancer, failover, dan database replication pada web server dan database server yang akan dirancang.
3.2.1 Load Balancer
Menggunakan load balancer untuk proses pendistribusian beban terhadap sebuah layanan yang ada pada sekumpulan server atau perangkat jaringan ketika ada permintaan dari pemakai. Penyeimbangan beban sangat penting bila traffic data yang ada makin lama makin tinggi. Layanan load balancer dimungkinkan pengaksesan sumber daya dalam jaringan didistribusikan ke beberapa host lainnya agar tidak terpusat sehingga kerja server secara keseluruhan bisa stabil. Ketika sebuah server sedang diakses oleh para pengguna, maka sebenarnya server tersebut sebenarnya sedang terbebani karena harus melakukan proses permintaan kepada para penggunanya. Manfaat terbesar adalah untuk meningkatkan kecepatan akses website saat dibuka, dengan dua atau lebih server yang saling berbagi beban lalu lintas web, masing-masing akan berjalan lebih cepat karena beban tidak berada pada 1 server saja.
Load balancing (Membrey, Plugge dan Hows, 2012:109) merupakan kemampuan
untuk mentransfer setiap bagian dari proses untuk permintaan sistem ke sistem independen lain yang akan menanganinya secara bersamaan. Load balancing membagi beban yang masuk ke satu server diantara sejumlah perangkat lain. Load balancing memiliki keuntungan mengurangi jumlah proses yang dilakukan oleh server penerima primer—memungkinkan untuk menangani permintaan lebih banyak dan meningkatkan kinerja—karena ada sedikit kompetisi untuk sumber daya dan ada lebih banyak perangkat memproses seluruh beban.
4
Gambar 3.1 Load Balancing
3.2.1.1 Algoritma Load Balancing
Terdapat beberapa macam algoritma untuk load balancing diantaranya: 1. Random Allocation
Dalam Random allocation (Deshpande dan Kamalapur, 2008:B-4) permintaan HTTP ditugaskan ke server dengan memilih secara acak diantara sekelompok server. Dalam kasus seperti ini, salah satu server mungkin dapat ditugaskan permintaan yang banyak, sedangkan server lainnya menganggur atau diam.
2. Round Robin
Sebuah load balancer (Dix, 2010:149) beroperasi menggunakan algoritma round-robin membuat internal counter dari backend yang terakhir digunakan, dan menggunakan pilihan berikutnya dari daftar berurutan dari semua backend yang diketahui. Ketika setiap permintaan tiba, backend berikutnya dipilih, dan counter bertambah, perulangan kembali ke awal dari daftar apabila diperlukan.
3. Least Connection
Dengan algoritma least connection (Dix, 2010:150), load
balancer mencoba untuk menyalurkan permintaan berdasarkan
pada jumlah beban saat ini. Counter sebuah koneksi backend akan bertambah sebagai permintaan yang dikirim dan berkurang setelah mereka menyelesaikannya.
4. URI-Based Load Balancing
URI-based load balancer (Dix, 2010:151) dimana semua
permintaan untuk setiap data dapat diteruskan ke backend (server) yang sama selagi masih tersedia, jika backend menjadi kelebihan beban, load balancer menyesuaikan dengan menyalurkan permintaan untuk backend yang masih tersedia. 3.2.1.2 Tipe Load Balancing
Terdapat dua pilihan untuk digunakan ketika merancang load balancer. Pilihannya adalah:
1. Software Load Balancing
Load balancer yang biasanya paling sering digunakan adalah
yang berbasis perangkat lunak (Deshpande dan Kamalapur, 2008:B-5). Sering kali terintegrasi dengan perangkat lunak web
5
server dan paket aplikasi perangkat lunak. Proses load balancing
dipengaruhi oleh perangkat komputer yang digunakan. Perangkat keras yang dapat mempengaruhi performa metode ini adalah kartu jaringan (Network Interface Card) yang digunakan, besarnya RAM (Random Access Memory) pada perangkat, dan juga media penyimpanan.
2. Hardware Load Balancing
Load balancer perangkat keras (Deshpande dan Kamalapur,
2008:B-5) dapat menyalurkan paket TCP/IP untuk berbagai
server di dalam cluster. Jenis load balancer ini menyediakan
topologi yang solid dan didukung dengan ketersediaan tinggi, tetapi tentu datang dengan harga yang jauh lebih mahal.
3.2.2 Failover
Menggunakan teknik failover dimana bila salah satu server mengalami masalah, maka tugas server tersebut akan dilempar ke server lainnya. Kelangsungan koneksi server mutlak diperlukan, oleh karena itu untuk meminimalisir terputusnya koneksi antar node salah satu cara yang digunakan untuk mempertahankan kelangsungan koneksi tersebut adalah dengan membuat failover. Prinsip dasar mekanisme failover ini adalah dimana jika kondisi link pada suatu server terputus, maka link akan diarahkan ke jalur lain secara otomatis.
Failover (McBee, 2008:456) sebenarnya adalah sebuah proses multi langkah. Jika
salah satu node mengalami kegagalan hardware, sinyal heartbeat dari node gagal berhenti. Node yang masih bekerja mendeteksi ini karena tidak adanya heartbeat node lain
Heartbeat (Simmons dan Carstarphen, 2012:34) adalah pemeriksaan kesehatan
dikirim antara node untuk menjamin ketersediaan setiap node.
Gambar 3.2 – Failover
Failback (McBee, 2008:457) adalah ketika layanan mendeteksi heartbeat dari node gagal sebelumnya telah pulih, failback dapat dimulai. Proses ini melalui step yang
sama dengan failover, perbedaanya hanya kembalinya node gagal yang telah di failover menjadi sedia kala.
6
Gambar 3.3 – Failback 3.2.3 Database Replication
Menggunakan teknik database replication dimana pelayanannya tidak menggunakan server database tunggal, tetapi dilayani oleh sekelompok server database yang dihubungkan menjadi satu pada lingkungan jaringan. Prinsip kerja database
replication adalah ketika dilakukan perubahan maupun pembaharuan pada salah satu database, maka akan berpengaruh pada semua database.
Replication (Bell, Kindahl dan Thalmann, 2010:5) digunakan untuk mereplikasi
semua perubahan yang dibuat pada server—disebut master server atau hanya master—ke
server lain, yang disebut slave server atau hanya slave. Hal ini biasanya digunakan untuk
membuat salinan tepat dari server master, tetapi replikasi dapat digunakan untuk keperluan lain juga. Berikut adalah jenis dari replication:
1. Synchronous Replication
Synchronous, (Greenwald, Stackowiak dan Stern, 2008:287) atau real-time, replikasi yang dapat digunakan bila tidak ada toleransi untuk
perbedaan data atau data yang hilang. Data di site sekunder harus sesuai dengan site utama setiap saat dan mencerminkan semua transaksi yang dilakukan. Setiap transaksi di site utama akan memicu pemanggilan prosedur di site sekunder untuk mereproduksi transaksi.
2. Asynchronous Replication
Dengan asynchronous replication, (Greenwald, Stackowiak dan Stern, 2008:287) transaksi yang dilakukan di site utama dan beberapa waktu kemudian direplikasi ke site sekunder. Sampai antrian transaksi yang ditangguhkan "pushed" ke site sekunder, mereplikasi perubahan, data di sekunder akan berbeda dari data site utama. Jika database utama hilang tidak dapat ditarik kembali, transaksi unpushed yang ditangguhkan dalam antrian juga akan hilang.
7
Gambar 3.4 – Synchronous dan asynchronous replication 3.3 Perancangan Jaringan
8
Dari rancangan jaringan diatas dapat dijelaskan bahwa pengaksesan situs web inilahkoran dimulai dari mengakses Virtual Router Redundancy Protocol atau VRRP (192.168.1.2) yang dibuat oleh software failover yang ter-install pada masing – masing load balancer. Failover akan memprioritaskan load balancer master (192.168.1.3) untuk menjadi load balancer, akan tetapi jika
load balancer master mendapatkan masalah sehingga tidak dapat beroperasi maka failover akan
bertugas untuk mengalihkan ke load balancer backup (192.168.1.4) untuk menjadi load balancer. Setelah itu load balancer tersebut akan membagi beban kepada ketiga web server (192.168.1.5, 192.168.1.6, dan 192.168.1.7) dengan menggunakan algoritma round-robin.
Setiap web server yang akan mengakses database server harus mengakses VRRP (192.168.1.8) terlebih dahulu yang dibuat oleh software failover yang ter-install pada masing – masing load balancer (192.168.1.9 dan 192.168.1.10), dan fungsi dari failover dan load balancer tersebut sama dengan yang sebelumnya hanya saja beban yang dibagi adalah untuk database
server. Terdapat 5 database server yaitu 3 Data dan SQL node (192.168.1.11, 192.168.1.12, dan
192.168.1.13) serta 2 Management node (192.168.1.14 dan 192.168.1.15). Ketiga database server (Data dan SQL node) tersebut terbagi bebannya oleh load balancer, serta masing – masing
database server satu sama lain saling sinkron. Dimana jika salah satu database server melakukan insert atau update atau delete maka database server yang lain juga melakukan hal yang sama, ini
disebut dengan sync replication. Sync replication bisa terwujud karena adanya peran dari database
server (Management node). Terdapat 2 Management node yang menangani dan memantau database server (Data dan SQL node). Ketika Management node 1 mengalami kegagalan, maka
ada Management node 2 yang kemudian menangani dan memantau database server (Data dan SQL node) serta dapat menghindari potensi split-brain, dimana terjadinya ketidaksamaan isi dalam masing – masing database server (Data dan SQL node) yang kemungkinan terjadi karena tidak adanya Management node.
4.
Simpulan dan Saran
4.1 Simpulan
Berdasarkan dari hasil perancangan dan uji coba secara simulasi pada rancangan jaringan situs web yang telah dilakukan, maka dapat disimpulkan bahwa:
1. Sistem yang telah dirancang berdasarkan rancangan jaringan situs web yang telah dibuat dapat berjalan dengan baik dari simulasi yang dilakukan.
2. Dengan adanya teknik load balancer dan failover dapat meningkatkan nilai ketersediaan situs web, sehingga tidak perlu adanya turun tangan secara langsung jika load balancer master tidak dapat beroperasi karena adanya failover yang langsung secara otomatis akan mengalihkan kepada load balancer backup dan dapat menghindari beban berlebihan pada web maupun database server karena adanya
load balancer yang telah membagi – bagi beban kepada beberapa server yang lain.
3. Dengan adanya database replication teknik sync replication dapat menghindari
split-brain pada database yang menyebabkan ketidaksamaan data yang dipunyai
setiap database server. 4.2 Saran
Saran – saran yang dapat dilakukan untuk pengembangan lebih lanjut adalah menambah satu lagi database server sebagai hal keperluan backup untuk database. Sehingga dapat
menghindari kehilangan database secara keseluruhan, dan melakukan backup dari database server yang digunakan ke database server backup secara berkala.
5.
Referensi
Bell C., Kindahl M., & Thalmann L. (2010). MySQL High Availability: Tools for Building Robust
Data Centers. (1st edition). Sebastopol: O'Reilly Media, Inc.
Cato, C. (2012). HAProxy and Keepalived on Debian Squeeze for failover and load balancing. Diperoleh 14 Oktober 2012 dari http://christophercato.blogspot. com/2012/09/haproxy-and-keepalived-on-debian.html.
Dix, P. (2010). Service-Oriented Design with Ruby and Rails. (1st edition). Indianapolis: Addison-Wesley Professional.
Gibson, D. (2010). MCITP Guide to Microsoft Windows Server 2008 Enterprise Administration. (1st edition). Boston: Cengage Learning.
9
Greenwald R., Stackowiak R., & Stern J. (2008). Oracle Essentials: Oracle Database 11g. (4th edition). Sebastopol: O'Reilly Media, Inc.
ITL Education Solutions Limited. (2010). Introduction To Database Systems. (1st edition). Dehli: Pearson Education India.
JR. (2012). Nginx and PHP-FPM Configuration and Optimizing Tips and Tricks. Diperoleh 18 Oktober 2012 dari http://www.if-not-true-then-false.com /2011/nginx-and-php-fpm-configuration-and-optimizing-tips-and-tricks/.
Kamalapur S., & Deshpande N. (2008). Distributed Systems. (2nd edition). Pune: Technical Publications.
McBee, J. (2008). Microsoft Exchange Server 2003 Advanced Administration. (1st edition). Indianapolis: John Wiley & Sons.
Membrey P., Plugge E., & Hows D. (2012). Practical Load Balancing: Ride the Performance
Tiger. (1st edition). New York: Apress.
Prochazka, J. (2011). How to install nginx, PHP-FPM and MySQL on Ubuntu. Diperoleh 18 Oktober 2012 dari http://blog.swiftbyte.com/linux/how-to-install-nginx-php-fpm-and-mysql-on-ubuntu/.
Ricardo, K. (2011). Databases Illuminated. (2nd edition). Sudbury: Jones & Bartlett Publishers. Rodriguez, U. (2008). Having HAProxy check mysql status through a xinetd script. Diperoleh 9
Desember 2012 dari http://sysbible.org/2008/12/04/having-haproxy-check-mysql-status-through-a-xinetd-script/.
Sarah. (2009). Redundant management nodes in MySQL Cluster. Diperoleh 3 Januari 2013 dari http://sarahdba.blogspot.com/2009/08/redundant-management-nodes-in-mysql.html. Simmons K., & Carstarphen S. (2012). Pro SQL Server 2012 Administration. (1st edition). New
York: Apress.
Sosinsky, B. (2009). Networking Bible. (1st edition). Indianapolis: John Wiley & Sons.
Wargandi, B. (2012). Disabling IP Filtering in Ubuntu Server. Diperoleh 20 Oktober 2012 dari http://bromokun.wordpress.com/2012/07/07/disabling-ip-filtering-in-ubuntu-server/. Wargandi, B. (2012). MySQL Cluster part 1: Installing Cluster Management Node in Ubuntu
Server v.12.04. Diperoleh 20 Oktober 2012 dari http://bromokun. wordpress.com/2012/07/07/installing-mysql-cluster-management-node-in-ubuntu-server-v-12-04/.
Wargandi, B. (2012). MySQL Cluster part 2: Installing NDB Node in Ubuntu Server v.12.04. Diperoleh 20 Oktober 2012 dari http://bromokun.wordpress. com/2012/07/07/mysql-cluster-part-3-installing-ndbd-node-in-ubuntu-server-v-12-04/.
Wargandi, B. (2012). MySQL Cluster part 3: Installing SQL Node in Ubuntu Server v.12.04. Diperoleh 20 Oktober 2012 dari http://bromokun.wordpress.com /2012/07/08/mysql-cluster-part-4-installing-sql-node-in-ubuntu-server-v-12-04/.
Wargandi, B. (2012). MySQL Cluster part 4: Testing Our Cluster Environment. Diperoleh 20 Oktober 2012 dari http://bromokun.wordpress.com/2012/07/10/ mysql-cluster-part-5-testing-our-cluster-environment/.
Yadav, S. (2009). Introduction To Client Server Computing. (1st edition). New Delhi: New Age International.
6.
Riwayat Penulis
Silvia Gerrits lahir di kota Ambon pada 26 Oktober 1990. Penulis menamatkan pendidikan S1 di Universitas Bina Nusantara dalam bidang Teknik Informatika pada tahun 2013.
Viko Aldiano Anggoro Pamungkas lahir di kota Tangerang pada 09 juli 1991. Penulis menamatkan pendidikan S1 di Universitas Bina Nusantara dalam bidang Teknik Informatika pada tahun 2013.
Ade Destrianto lahir di D.K.I. Jakarta pada 30 desember 1991. Penulis menamatkan pendidikan S1 di Universitas Bina Nusantara dalam bidang Teknik Informatika pada tahun 2013.