PERANCANGAN SERVER DENGAN MENGGUNAKAN LOAD BALANCER, FAILOVER, DAN DATABASE REPLICATION PADA PT. INDONESIA NEWS CENTER Silvia Gerrits Binus University, Jakarta, DKI Jakarta, Indonesia,
[email protected]
Viko Aldiano Anggoro Pamungkas Binus University, Jakarta, DKI Jakarta, Indonesia,
[email protected]
Ade Destrianto Binus University, Jakarta, DKI Jakarta, Indonesia,
[email protected]
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
1
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 perusahaanperusahaan besar. Kebanyakan 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.
2
b.
c.
Metode Analisis Survei lapangan, yaitu melakukan survei ke perusahaan serta melakukan wawancara dengan manager IT. Disamping itu juga dikumpulkan kebutuhan- kebutuhan perusahaan mengenai server. 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.
3
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:B4) 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
4
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.
3.2.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.
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.
5
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 realtime, 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.
6
Gambar 3.4 – Synchronous dan asynchronous replication
3.3
Perancangan Jaringan
Gambar 3.5 - Topologi Jaringan
7
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-andkeepalived-on-debian.html. Dix, P. (2010). Service-Oriented Design with Ruby and Rails. (1st edition). Indianapolis: AddisonWesley Professional. Gibson, D. (2010). MCITP Guide to Microsoft Windows Server 2008 Enterprise Administration. (1st edition). Boston: Cengage Learning.
8
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-fpmconfiguration-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-andmysql-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-statusthrough-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-v12-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/mysqlcluster-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/mysqlcluster-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-5testing-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.
9