API Gateway vs Load Balancer

Beng Chen

March 3, 2023

Technology

Dengan perkembangan teknologi Internet, jumlah permintaan untuk data jaringan telah meningkat secara dramatis, yang memberikan tekanan lebih besar pada server. Dalam arsitektur sistem pada masa awal, biasanya digunakan load balancer untuk mendistribusikan lalu lintas jaringan ke beberapa server, sehingga mengurangi beban pada satu server.

Namun, saat ini, banyak jenis layanan backend yang berbeda mengekspos API ke dunia luar, mengakibatkan jumlah API yang semakin meningkat. Akibatnya, keterbatasan arsitektur sistem yang terutama bergantung pada load balancer menjadi semakin terlihat, karena mereka terutama beroperasi di layer 4 dan memiliki fungsi yang terbatas di layer 7. Hal ini menyebabkan munculnya infrastruktur yang disebut API Gateway, yang terutama beroperasi di layer 7 dan menawarkan kemampuan ekstensi yang luas.

Dalam artikel ini, kami akan memperkenalkan fitur-fitur khas dari load balancer dan API gateway, serta mengeksplorasi perbedaan mereka untuk membantu pembaca memahami hubungan mereka dengan lebih baik.

Apa Itu Load Balancer?

apa itu load balancer

Peran utama load balancer adalah menyediakan fungsi load-balancing untuk beberapa layanan backend, memungkinkan mereka mendistribusikan lalu lintas berdasarkan algoritma load-balancing yang berbeda. Sejarah load balancer cukup panjang dan dapat dikategorikan secara kasar ke dalam beberapa tahap berikut:

  • Tahap pertama: Load balancer pada tahap ini biasanya terdiri dari perangkat keras, yang memiliki kinerja dan keandalan tinggi tetapi kurang fleksibel dan mahal.

  • Tahap kedua: Load balancer mulai diimplementasikan dalam perangkat lunak, lebih fleksibel dan dapat diskalakan, sering muncul dalam distribusi perangkat lunak dan karenanya lebih murah. LVS (Linux Virtual Server) adalah contoh dari jenis ini.

  • Tahap ketiga: Dengan munculnya teknologi komputasi awan, load balancer juga mulai memiliki versi cloud. Salah satu keuntungan signifikan dari load balancer semacam ini adalah dapat membantu perusahaan mendapatkan layanan load-balancing berkinerja tinggi dengan biaya yang lebih rendah. Keuntungan lainnya adalah dapat memanfaatkan skalabilitas dan elastisitas komputasi awan untuk meningkatkan ketersediaan secara keseluruhan. Contoh load balancer cloud termasuk Classic Load Balancer, Application Load Balancer, dan Network Load Balancer dari AWS.

Selain mendistribusikan lalu lintas dan meningkatkan skalabilitas jaringan, load balancer juga dapat digunakan untuk meningkatkan keamanan jaringan. Misalnya, mereka dapat digunakan untuk mengisolasi server internal dari internet publik, mencegah serangan berbahaya dan akses yang tidak sah. Contoh penggunaan sederhana adalah server internal yang berisi informasi sensitif, yang dapat diisolasi oleh load balancer dalam jaringan internal untuk melindungi keamanannya secara efektif.

Apa Itu API Gateway?

apa itu api gateway

Secara singkat, API Gateway adalah infrastruktur yang mengelola dan meneruskan lalu lintas API, terutama bekerja di layer 7. Ini menyediakan skalabilitas yang kuat yang tidak dimiliki oleh load balancer, termasuk autentikasi, observabilitas, dan plugin kustom. Beberapa fitur utamanya adalah:

  • Strategi routing yang kaya: Karena API Gateway beroperasi di layer 7, ia dapat mengurai data di lapisan HTTP/HTTPS. Oleh karena itu, ia dapat mengarahkan permintaan ke berbagai server upstream berdasarkan kondisi seperti jalur permintaan, domain, atau header.

  • Autentikasi: API Gateway mendukung berbagai metode autentikasi di tingkat API untuk mencegah permintaan yang tidak sah, seperti OAuth2 dan JWT. Autentikasi dapat dipisahkan dari logika bisnis dan dijaga independen agar tidak mengganggu atau minimal mengganggu kode bisnis.

  • Pembatasan laju: Pembatasan laju yang halus dapat diterapkan pada berbagai tingkat routing untuk mencegah serangan berbahaya dan menghindari kelebihan beban layanan backend.

  • Observabilitas: Observabilitas mengacu pada kemampuan untuk mengamati status berjalan dan pemanfaatan sumber daya dari program internal dari luar sistem. API Gateway mendukung penghubungan log ke Kafka, Google Cloud Logging Service, Elasticsearch, dll., dan menghubungkan metrik terkait ke prometheus, datadog, dll.

  • Ekstensi: Karena API Gateway itu sendiri adalah gateway, ia dirancang untuk dapat beradaptasi dengan berbagai skenario aplikasi dari perusahaan yang berbeda, seperti autentikasi identitas yang berbeda, canary release, kebijakan keamanan, dan pengumpulan log. Selain itu, API Gateway harus memungkinkan pengguna untuk memilih ekstensi atau melakukan pengembangan kustom; oleh karena itu, skalabilitasnya kuat, dan pilihan ekstensi yang tersedia cukup beragam. Misalnya, Apache APISIX memiliki 13 ekstensi autentikasi yang berbeda, hampir mencakup semua kebutuhan autentikasi umum di pasar.

Saat ini, ada banyak API gateway yang tersedia di pasar, seperti Apache APISIX, Kong, Tyk, Zuul, dll. Pengembang dapat memilih API Gateway yang paling sesuai sesuai dengan kebutuhan spesifik mereka.

Perbedaan Utama Antara API Gateway dan Load Balancer

Fokus Area yang Berbeda

api gateway berbeda dengan load balancer img 1

Meskipun baik API Gateway maupun load balancer mendukung proxy layer 4 dan layer 7, API Gateway terutama fokus pada layer 7 sementara load balancer terutama fokus pada layer 4.

Oleh karena itu, load balancer yang beroperasi di layer 4 memiliki banyak fitur yang menguntungkan. Pertama, ia mengurangi overhead penguraian protokol dibandingkan dengan API Gateway, menghasilkan kapasitas throughput yang lebih tinggi. Kedua, ia mendukung penerusan alamat IP klien yang transparan, sedangkan API Gateway biasanya meneruskan alamat IP klien melalui header HTTP.

Kekayaan Fitur

api gateway berbeda dengan load balancer img 2

Misalnya, load balancer memiliki kemampuan pemrosesan HTTP layer 7 yang lebih lemah dan seringkali kekurangan fitur seperti autentikasi, otorisasi, logika routing yang kompleks, dan pengumpulan log. Sementara API gateway memiliki kemampuan pemrosesan protokol layer 7 yang lebih kuat dan dapat melampirkan berbagai ekstensi fitur seperti kontrol akses, pencatatan log, manajemen API, dan komputasi serverless.

Pengembangan Kustom

Dalam pasar teknologi yang berkembang pesat saat ini, banyak perusahaan membutuhkan kemampuan untuk mendukung pengembangan kustom. API gateway menawarkan berbagai opsi pengembangan kustom, seperti dukungan untuk bahasa pemrograman yang berbeda dan kemampuan untuk menyuntikkan logika pemrosesan kustom pada berbagai tahap penerusan lalu lintas. Di sisi lain, load balancer tidak menawarkan opsi pengembangan kustom apa pun.

Cara Distribusi Lalu Lintas

Load balancer biasanya menggunakan distribusi lalu lintas langsung untuk mencapai load balancing. Melalui algoritma, data lalu lintas dikirim langsung ke node server backend tertentu, yang berarti setiap instance layanan yang menunggu untuk menerima lalu lintas harus berperilaku konsisten, mengurangi fleksibilitas tertentu. Sebaliknya, API gateway mendistribusikan lalu lintas berdasarkan dimensi yang berbeda seperti URL Path, Domain, dan Header. Akibatnya, instance layanan yang menunggu untuk menerima lalu lintas dapat bervariasi, seperti API pribadi atau API GRPC, membuat distribusi lalu lintas sangat fleksibel.

Kasus Penggunaan

Kasus Penggunaan Microservices

di layar microservice

Untuk sistem arsitektur microservice, API Gateway sangat penting. Pertama, ia dapat dengan mudah mengelola dan merutekan berbagai layanan backend. Kedua, API Gateway dapat menyediakan banyak fitur canggih seperti autentikasi, otorisasi, pembatasan laju, penerusan, dan pencatatan log. Oleh karena itu, berbagai microservices tidak perlu lagi mengimplementasikan fungsi seperti pembatasan laju dan autentikasi secara berulang, membuat implementasi fungsi setiap microservice lebih fokus dan mengurangi biaya pengembangan.

Arsitektur Microservices melibatkan banyak layanan, membuat load balancer layer 4 tidak cocok untuk load balancing beberapa layanan backend. Sebaliknya, mereka lebih cocok digunakan dengan layanan backend monolitik. Sementara itu, load balancer layer 7 biasanya tidak dapat menawarkan fitur canggih, yang membuat keunggulan mereka dibandingkan API gateway dalam microservices kurang signifikan.

Manajemen & Penyebaran API

API Gateway juga sangat cocok dalam skenario di mana ada kebutuhan untuk mengelola dan menyebarkan sejumlah besar API, karena memiliki kemampuan manajemen API yang kuat. Dalam kasus ini, Anda dapat dengan mudah mengaktifkan atau menonaktifkan API tertentu, dengan cepat mengubah konfigurasi penerusan API, dan menambahkan fitur seperti pembatasan laju, autentikasi, dan pencatatan log ke API tanpa perlu memulai ulang API Gateway.

Mengambil Apache APISIX sebagai contoh, ini adalah proyek open-source tingkat atas di bawah yayasan Apache dan saat ini merupakan proyek gateway open-source yang paling aktif. Sebagai API Gateway open-source yang dinamis, real-time, dan berkinerja tinggi, Apache APISIX menyediakan berbagai fungsi manajemen lalu lintas seperti load balancing, upstream dinamis, canary release, circuit breaker, autentikasi identitas, observabilitas, dll.

screenshot dashboard apisix gambar 1

screenshot dashboard apisix gambar 12

Di sisi lain, load balancer tradisional relatif lebih lemah dalam hal manajemen API dan membutuhkan fitur canggih yang kaya seperti itu.

Akses Jaringan Berkinerja Tinggi

Untuk skenario yang membutuhkan lalu lintas tinggi dan stabilitas yang sangat tinggi untuk akses jaringan, load balancer layer 4 jelas lebih cocok. Ia dapat langsung mendistribusikan lalu lintas layer 4 asli jaringan ke setiap layanan backend tanpa dampak dari penguraian berulang protokol lapisan aplikasi di lapisan tengah, membuatnya lebih mampu menangani throughput yang lebih tinggi.

Sebaliknya, API Gateway yang beroperasi di layer 7, sebagai titik masuk terpadu, akan memiliki batasan throughput tertentu karena perlu mengurai protokol. Meskipun menggunakan API Gateway layer 4 untuk akses jaringan tidak terlalu menguntungkan karena lapisan ini bukan fokus utama API Gateway. Dibandingkan dengan akumulasi teknis load balancer selama bertahun-tahun di lapisan ini, keunggulan API gateway jauh lebih sedikit.

Ringkasan

Secara umum, API Gateway dan load balancer adalah solusi infrastruktur yang digunakan untuk menyelesaikan masalah yang berbeda. API Gateway terutama digunakan sebagai proxy untuk antarmuka API backend, menyediakan titik masuk tunggal untuk mengakses berbagai jenis API dan fungsi independen seperti pembatasan laju, autentikasi, dan pemantauan. Di sisi lain, load balancer terutama digunakan untuk distribusi lalu lintas layer 4, menyebarkan permintaan ke beberapa server backend untuk menyeimbangkan beban permintaan dan meningkatkan ketersediaan dan toleransi kesalahan sistem secara keseluruhan.

Di bawah desain arsitektur yang wajar, API Gateway dan load balancer umumnya digunakan bersama. Load balancer adalah akses jaringan untuk seluruh sistem, mendistribusikan lalu lintas ke beberapa instance API Gateway. Setiap instance API Gateway kemudian merutekan, mengautentikasi, dan mengotorisasi permintaan secara terpisah untuk membuat seluruh jaringan lebih kuat, andal, dan dapat diskalakan.

Tags: