Membangun sebuah aplikasi yang selalu tersedia untuk diakses oleh pengguna dalam skala apapun semakin mudah untuk dilakukan dengan adanya berbagai macam layanan serverless yang ditawarkan oleh colud providers. Penulis telah merasakan sendiri dan membuktikan manfaat yang didapatkan saat membangun aplikasi web menggunakan layanan-layanan serverless tersebut. Sebagai contoh, jangan jauh-jauh, e-book yang sedang dibaca ini dan seluruh aplikasi yang ada di domain/subdomain jagoreact.com merupakan aplikasi web yang penulis bangun menggunakan layanan-layanan serverless sepenuhnya atau biasa disebut sebagai full-stack serverless. Sebagai informasi, penulis hanya mengeluarkan biaya sebesar Rp11.000 per-bulan saja untuk seluruh web yang ada di JagoReact, bandingkan jika penulis harus menyewa vps atau shared hosting, tentu biayanya akan jauh lebih mahal tapi skalabilitas dan availabilitas "masih tanda tanya". Dengan sumber daya manusia terbatas yang ada di perusahaan atau organisasi kita, layanan serverless akan sangat banyak mengehemat banyak waktu dan biaya. Sama halnya dengan perusahaan tempat penulis bekerja, kami juga sudah mulai menggunakan layanan-layanan serverless dari berbagai macam cloud providers untuk beberapa aplikasi yang kami bangun untuk client dan hasilnya kami menghemat hingga 87% untuk biaya server. Contoh lainnya adalah Traveloka yang juga menggunakan layanan serverless disalah satu aplikasinya yang disebut dengan TERA (Traveloka Extranet Reservation Access) dan berhasil memangkas biaya sampai 90%, baca disini untuk lengkapnya.
Dalam e-book ini, penulis akan coba menunjukkan beberapa konsep dasar dan juga step-by-step tutorial bagaimana kita dapat membangun sebuah aplikasi full-stack serverless menggunakan layanan-layanan serverless yang disediakan oleh Amazon Web Services (AWS) untuk bagian backend dan React DOM untuk bagian frontend yang nantinya akan kita deploy di Netlify. Studi kasus aplikasi yang akan dibuat dalam e-book ini adalah sebuah situs daftar lowongan kerja khusus untuk React yang akan kita sebut sebagai JagoReact Job Board, demo aplikasi dapat dilihat di https://jobs.jagoreact.com. Adapun untuk bahasa pemrograman yang akan digunakan adalah JavaScript baik untuk backend (HTTP API) maupun frontend (React).
Pada bagian ini kita akan mengenal jenis-jenis layanan serverless dasar yang biasanya digunakan dalam aplikasi full-stack serverless seperti layanan komputasi, basis data, api gateway, authentication, dan object storage. Selain itu, kita juga akan membahas mengenai kuntungan dan kelemahan serverless.
Pada bagian ini kita akan mengenal salah satu cloud provider terbesar yaitu Amazon Web Services (AWS), kita akan mulai dengan membuat akun, mengenal AWS Management Console, AWS Regions dan Availability Zones, dan AWS IAM (Identity and Access Management).
Pada bagian ini kita akan mengenal AWS Lambda, apa saja runtimes yang didukung secara native, limitasi, harga, dan belajar membuat handler dengan Node.js.
Pada bagian ini kita akan mengenal konsep-konsep dasar yang ada pada Amazon DynamoDB, keuntungan dan kelemahan DynamoDB, harga DynamoDB, belajar CURD DynamoDB API dengan AWS SDK untuk Node.js.
Pada bagaian ini akan dijelaskan mengenai requirement dari aplikasi yang akan dikembangkan pada e-book ini dan juga arsitektur dari aplikasi tersebut.
Pada bagian ini kita akan belajar mendesain data model DynamoDB dengan pendekatan single-table design untuk studi kasus aplikasi.
Pada bagian ini kita akan mendesain HTTP API menggunakan OpenAPI sepecification (OAS 3.0) dan membuat dokumentasi API menggunakan RedDoc
Pada bagian ini kita akan menggunakan AWS Management Console untuk membuat Cognito User Pool yang akan digunakan untuk fitur autentikasi dari aplikasi yang akan dikembangkan.
Pada bagian ini kita akan menggunakan AWS Mangement Console untuk membuat sebuah bucket di Amazon S3 dan juga mengatur CORS untuk keperluan serverless upload.
Pada bagian ini kita akan belajar menggunakan Serverless Framework CLI untuk membuat HTTP API dengan API Gateway dan AWS Lambda (Node.js 12 runtime).
Pada bagian ini kita akan menginisiasi git repository baik lokal maupun remote (GitLab) untuk proyek HTTP API.
Pada bagian ini kita akan membuat module dan juga menginstall third-party libray yang dibutuhkan untuk mengembangkan HTTP API.
Implementasi ini terdiri dari 3 bagian, yaitu implementasi HTTP API untuk Employer, Admin, dan Visitor sesuai dengan desain OAS 3.0 yang telah dibuat.
Pada bagian ini kita akan belajar mendeploy HTTP API ke AWS menggunakan Serverless Framework CLI dana juga melakukan optimasi bundle size untuk handler-handler yang telah dibuat.
Pada bagian ini kita akan belajar melakukan HTTP API Testing menggunakan Insomnia Core.
Pada bagian ini kita akan mulai dengan mendesain halaman-halaman dari aplikasi lengkap dengan path untuk mengakses dan juga tipe aksesnya.
Pada bagian ini kita akan menginisiasi proyek SPA baru menggunakan Create React App.
Setelah menginisiasi proyek, pada bagian ini akan membuat git remote repository di GitLab dan menghubungkannya dengan repository lokal untuk proyek React yang telah dibuat sebelumnya.
Pada bagian ini, kita akan menambahkan berbagai library yang dibutuhkan untuk mengembangkan bagian frontend dari aplikasi.
Pada bagian ini, kita akan mendesain struktur direktori dan file yang akan dibuat untuk mengembangkan bagian frontend dengan React (CRA).
Pada bagian ini, kita akan mengimplementasikan client-side routing dengan menggunakan React Router DOM.
Implementasi halaman ini terdiri dari 10 bagian, kita akan mengimplementasikan desain halaman yang terlah dibuat satu persatu.
Pada bagian ini kita akan mendeploy proyek CRA yang telah dibuat ke Netlify, mengatur redirect, menambahkan custom domain, dan mengaktifkan fitur prerendering untuk kebutuhan SEO dan social media share dari sebuah SIngle Page Application.
Buku ini ditujukan untuk siapa saja yang ingin mempelajari bagaimana membangun sebuah aplikasi full-stack serverless dengan syarat harus sudah terbiasa menggunakan:
- HTML & CSS
- JavaScript (ES2015+)
- Node.JS
- Dasar React (Bisa belajar dulu di JagoReact)
- Menggunakan Aplikasi Terminal
Untuk dapat mengikuti materi yang ada didalam e-book ini, pembaca harus mempersiapkan:
- PC/Laptop dengan koneksi Internet yang baik
- Aplikasi Code Editor (Rekomendasi: Visual Studio Code)
- Web Browser
- Node.js 12 (LTS) dan npm 6+
- Kartu Debit/Kredit (Bisa pakai Jenius) untuk membuat akun AWS
Jika mengalami kendala atau masalah saat mempelajari materi di e-book ini silahkan manfaatkan private Telegram group (untuk link invitation nya bisa diakses dari halaman akses di member.jagoreact.com/download.
Copyright © JagoReact.com 2025.