Pengantar - Arsitektur Multi-Tingkat Nirserver AWS menggunakan Amazon API Gateway dan AWS Lambda

Pengantar

Aplikasi multi-tingkat (tiga tingkat, n tingkat, dan seterusnya.) telah menjadi fondasi pola arsitektur selama beberapa dekade, dan tetap menjadi pola populer untuk aplikasi yang berorientasi pada pengguna. Meskipun bahasa yang digunakan untuk menggambarkan arsitektur multi-tingkat beragam, aplikasi multi-tingkat umumnya terdiri dari komponen-komponen berikut:

  • Tingkat presentasi: Komponen yang berinteraksi langsung dengan pengguna (misalnya, halaman web dan UI aplikasi seluler).

  • Tingkat logika: Kode yang diperlukan untuk menerjemahkan tindakan pengguna ke fungsionalitas aplikasi (misalnya, operasi basis data CRUD dan pemrosesan data).

  • Tingkat data: Media penyimpanan (misalnya, basis data, penyimpanan objek, cache, dan sistem file) yang menyimpan data yang relevan ke aplikasi tersebut.

Pola arsitektur multi-tingkat menyediakan kerangka kerja umum untuk memastikan komponen aplikasi dapat di-decouple dan dapat diskalakan secara independen, dapat dikembangkan, dikelola, serta dipelihara secara terpisah (sering kali oleh tim yang berbeda-beda).

Sebagai konsekuensi dari pola ini yang memerlukan jaringan (sebuah tingkat harus membuat panggilan jaringan untuk berinteraksi dengan tingkat lain) untuk bertindak sebagai batas di antara tingkatan, mengembangkan aplikasi multi-tingkat sering membutuhkan pembuatan banyak komponen aplikasi yang tidak terdiferensiasi. Beberapa komponen ini meliputi:

  • Kode yang mendefinisikan antrean pesan untuk komunikasi di antara tingkat

  • Kode yang mendefinisikan antarmuka pemrograman aplikasi (API) dan model data

  • Kode terkait keamanan yang memastikan akses yang tepat ke aplikasi tersebut

Semua contoh ini dapat dianggap komponen “boilerplate” yang, meskipun diperlukan dalam aplikasi multi-tingkat, tetapi tidak sangat bervariasi dalam penerapannya dari satu aplikasi ke aplikasi berikutnya.

AWS menawarkan sejumlah layanan yang memungkinkan pembuatan aplikasi multi-tingkat nirserver – yang sangat menyederhanakan proses deployment aplikasi tersebut ke produksi dan meniadakan overhead terkait manajemen server tradisional. Amazon API Gateway, layanan untuk membuat dan mengelola API, dan AWS Lambda, layanan untuk menjalankan fungsi kode arbitrer, dapat digunakan bersama untuk menyederhanakan pembuatan aplikasi multi-tingkat yang canggih.

Integrasi Amazon API Gateway dengan AWS Lambda memungkinkan fungsi kode yang ditetapkan pengguna diinisiasi secara langsung melalui permintaan HTTPS. Terlepas dari volume permintaan, baik API Gateway dan Lambda menskalakan secara otomatis untuk mendukung kebutuhan aplikasi Anda secara tepat (lihat kuota dan catatan penting Amazon API Gateway untuk informasi skalabilitas). Dengan menggabungkan kedua layanan ini, Anda dapat membuat tingkat yang memungkinkan Anda menulis hanya kode yang penting untuk aplikasi Anda dan tidak fokus pada berbagai aspek lain yang tidak terdiferensiasi dalam menerapkan arsitektur multi-tingkat seperti arsitek untuk ketersediaan tinggi, menulis SDK klien, manajemen server dan sistem operasi (OS), penskalaan, serta menerapkan mekanisme otorisasi klien.

API Gateway dan Lambda memungkinkan pembuatan tingkat logika nirserver. Tergantung pada persyaratan aplikasi Anda, AWS juga menyediakan opsi untuk membuat tingkat presentasi nirserver (misalnya, dengan Amazon CloudFront dan Amazon Simple Storage Service) dan tingkat data (misalnya, Amazon Aurora, Amazon DynamoDB).

Laporan resmi ini berfokus pada contoh arsitektur multi-tingkat, aplikasi web tiga tingkat. Namun, Anda dapat menerapkan pola multi-tingkat ini di luar aplikasi web tiga tingkat yang standar.