Mengenal LocalStack: Solusi Praktis untuk Mengembangkan Aplikasi AWS Secara Lokal

Akmal 6 menit membaca - -
aws cloud localstack docker development devops software-engineering

Di era cloud computing, banyak developer membangun aplikasi yang mengandalkan layanan Amazon Web Services (AWS). Entah itu S3 untuk penyimpanan, Lambda untuk fungsi serverless, atau DynamoDB untuk database—integrasi dengan AWS sudah menjadi hal yang lumrah.

Namun, mengembangkan dan menguji aplikasi langsung di cloud sering kali memakan biaya, membutuhkan koneksi internet yang stabil, dan proses deploy yang tidak sebentar.

Setiap kali ingin cek satu perubahan kecil, kita harus push ke AWS, menunggu, lalu cek lagi. Belum lagi risiko salah konfigurasi atau tagihan yang membengkak karena resource yang lupa dimatikan.

Di sinilah LocalStack hadir sebagai solusi yang layak kamu pertimbangkan.

Logo Localstack

Logo Localstack


Apa Itu LocalStack?

LocalStack adalah platform open-source yang memungkinkan developer menjalankan dan mensimulasikan layanan Amazon Web Services secara lokal di komputer mereka—bukan di akun AWS sungguhan.

Dengan kata lain, kamu bisa “memalsukan” lingkungan AWS di mesin lokal. Endpoint yang biasa kamu panggil (misalnya untuk S3 atau Lambda) dialihkan ke proses yang berjalan di laptop, sehingga aplikasi kamu “mengira” sedang berbicara dengan AWS, padahal semuanya berjalan di lokal. Ini sangat berguna untuk:

  • Development — mengembangkan fitur baru tanpa harus deploy ke cloud setiap saat.
  • Testing — menjalankan unit test dan integration test yang membutuhkan S3, SQS, atau layanan lain, tanpa membuka koneksi ke AWS.
  • CI/CD pipeline — pipeline di GitHub Actions, GitLab CI, atau Jenkins bisa memakai LocalStack sebagai lingkungan uji yang konsisten dan tidak memakai akun production.
  • Proof of Concept (POC) — mencoba arsitektur atau layanan baru tanpa mengeluarkan biaya atau mengotak-atik akun AWS yang dipakai tim.

Dengan LocalStack, kamu tidak perlu khawatir salah konfigurasi di akun sungguhan, dan kamu bisa bekerja bahkan saat koneksi internet sedang bermasalah.

Localstack berjalan diatas Docker

Localstack berjalan diatas Docker


Layanan AWS yang Didukung

LocalStack mendukung banyak layanan populer AWS. Beberapa yang sering dipakai dalam development antara lain:

  • Amazon S3 — penyimpanan objek (bucket, upload/download file).
  • AWS Lambda — fungsi serverless (menjalankan kode tanpa mengelola server).
  • Amazon DynamoDB — database NoSQL (tabel, item, query).
  • Amazon SQS — antrean pesan (queue).
  • Amazon SNS — layanan notifikasi (pub/sub).
  • Amazon API Gateway — manajemen API (endpoint, integrasi dengan Lambda atau backend lain).

Selain itu, masih ada puluhan layanan lain yang bisa diaktifkan sesuai kebutuhan (misalnya Kinesis, Step Functions, atau CloudFormation). Daftar lengkap dan level dukungannya bisa dicek di dokumentasi resmi LocalStack.

Perlu diingat: tidak semua fitur AWS tersedia 100% identik dengan yang di cloud. Beberapa edge case atau fitur sangat baru mungkin belum disimulasikan. Namun untuk kebutuhan development dan testing sehari-hari, fitur yang ada sudah sangat mencukupi dan kompatibel dengan SDK serta AWS CLI yang kamu pakai.


Kenapa Menggunakan LocalStack?

1. Hemat Biaya

Kamu tidak perlu membayar resource AWS selama tahap development atau testing. Tidak ada tagihan untuk Lambda invocation, S3 request, atau DynamoDB read/write yang terjadi di lokal. Ini terutama berguna untuk tim kecil atau proyek dengan budget terbatas.

2. Cepat dan Efisien

Perubahan kode bisa langsung diuji terhadap “AWS” lokal tanpa deploy ke cloud. Feedback loop jadi jauh lebih singkat: ubah kode → jalankan test atau aplikasi → lihat hasil. Tidak perlu menunggu upload, deploy, atau provisioning di AWS.

3. Offline Development

Bisa bekerja tanpa koneksi internet. Berguna saat kamu di pesawat, di lokasi dengan jaringan tidak stabil, atau sekadar ingin mengurangi ketergantungan pada layanan eksternal saat coding.

4. Aman dan Terisolasi

Kamu tidak perlu memakai akun AWS production (atau bahkan akun development yang dipakai bersama) untuk testing. Semua eksperimen tetap di mesin lokal, sehingga risiko salah menghapus data atau mengubah konfigurasi di cloud bisa diminimalkan.


Cara Instalasi LocalStack

Cara paling praktis menjalankan LocalStack adalah dengan Docker, karena semua dependensi sudah terbungkus dalam satu image.

1. Pastikan Docker Terinstal

Pastikan Docker (dan bila perlu Docker Compose) sudah terpasang di mesin kamu. Jika belum, unduh dari docker.com sesuai sistem operasi kamu.

2. Menjalankan LocalStack dengan Docker Compose

Buat file docker-compose.yml di folder proyek (atau di folder khusus untuk tooling), misalnya:

version: '3.8'
services:
  localstack:
    image: localstack/localstack
    container_name: localstack
    ports:
      - '4566:4566'
    environment:
      - SERVICES=s3,lambda,dynamodb
      - DEBUG=1
    volumes:
      - './localstack:/var/lib/localstack'
      - '/var/run/docker.sock:/var/run/docker.sock'

Penjelasan singkat:

  • Port 4566 — semua layanan AWS di LocalStack (S3, Lambda, DynamoDB, dll.) diakses melalui satu endpoint: http://localhost:4566.
  • SERVICES — daftar layanan yang ingin diaktifkan. Kamu bisa menambah atau mengurangi (misalnya s3,lambda,dynamodb,sqs,sns).
  • Volume — data LocalStack bisa persisten di folder ./localstack; mount Docker socket diperlukan jika kamu ingin LocalStack menjalankan Lambda di dalam Docker.

Jalankan:

docker-compose up

Setelah container berjalan, LocalStack siap dipakai di http://localhost:4566. Untuk aplikasi atau AWS CLI, gunakan endpoint ini sebagai pengganti endpoint AWS default.


Contoh Penggunaan: Membuat Bucket S3

Setelah LocalStack aktif, kamu bisa menggunakan AWS CLI (atau SDK di kode) dengan mengarahkan ke endpoint LocalStack.

Contoh membuat bucket S3:

aws --endpoint-url=http://localhost:4566 s3 mb s3://test-bucket

Bucket akan dibuat secara lokal, bukan di akun AWS asli. Untuk aplikasi atau script, set environment variable atau konfigurasi endpoint ke http://localhost:4566 saat menjalankan di lingkungan development. Dengan begitu, kode yang sama bisa dipakai untuk production (dengan endpoint default AWS) dan untuk development (dengan endpoint LocalStack).


LocalStack Community vs Pro

LocalStack hadir dalam dua varian:

Community (Gratis)

  • Open-source, bisa dipakai tanpa biaya.
  • Cocok untuk development dasar dan testing di laptop atau CI.
  • Cakupan layanan dan fitur lebih terbatas dibanding Pro.

Pro (Berbayar)

  • Dukungan lebih banyak layanan dan fitur yang lebih mendekati AWS.
  • Web UI untuk melihat resource (bucket, tabel, queue, dll.) tanpa CLI.
  • Fitur advanced untuk testing dan skenario yang lebih kompleks.
  • Dukungan enterprise untuk tim atau organisasi.

Untuk memulai dan kebanyakan kebutuhan development, versi Community biasanya sudah cukup. Jika nanti kebutuhan tim bertambah (misalnya butuh layanan tertentu atau UI), opsi Pro bisa dipertimbangkan.


Kapan Sebaiknya Menggunakan LocalStack?

Gunakan LocalStack ketika:

  • Kamu sedang mengembangkan fitur baru yang berintegrasi dengan S3, Lambda, DynamoDB, SQS, dan sejenisnya, dan ingin iterasi cepat tanpa deploy ke cloud.
  • Kamu membuat integration test yang membutuhkan layanan AWS; dengan LocalStack, test bisa berjalan di CI tanpa akun AWS atau dengan akun yang minimal.
  • Kamu ingin mengurangi biaya AWS dengan memindahkan sebanyak mungkin development dan testing ke lokal.
  • Kamu membutuhkan environment lokal yang menyerupai AWS agar onboarding rekan tim atau reproduksi bug lebih mudah.

Tetap lakukan pengujian akhir (staging/pre-production) di AWS sungguhan sebelum production. Tujuannya agar kompatibilitas penuh dan perilaku di lingkungan nyata terjamin—LocalStack menyederhanakan workflow, bukan menggantikan validasi di cloud.


Kesimpulan

LocalStack adalah alat yang sangat berguna bagi developer yang sering bekerja dengan AWS. Dengan mensimulasikan layanan AWS secara lokal, kamu bisa menghemat biaya, mempercepat development, dan mengurangi risiko kesalahan di production. Bagi yang sehari-hari memakai S3, Lambda, DynamoDB, atau layanan AWS lainnya, LocalStack layak dicoba dan diintegrasikan ke workflow development serta CI/CD kamu.

Dokumentasi lengkap dan daftar layanan yang didukung bisa diakses di docs.localstack.cloud.

Komentar & Diskusi

Memuat komentar...