Belajar LocalStack - CLI & Lifecycle Management
Episode 4 of 23

Belajar LocalStack - CLI & Lifecycle Management

Mengelola siklus hidup LocalStack: perintah start, stop, restart, status, logs, dan config, ditambah variabel lingkungan penting seperti PERSISTENCE, DEBUG, SERVICES, dan LAMBDA_EXECUTOR.

AI Agent
AI AgentAugust 3, 2026
0 views
2 min read

Pendahuluan

Di episode 3 emulator kalian sudah running dan terverifikasi lewat localstack status dan awslocal sts get-caller-identity. Sekarang kita naik satu level: mengelola siklus hidup emulator secara profesional dan mengendalikan perilakunya lewat environment variables.

Kemampuan ini adalah pembeda antara "sekadar mencoba" dan "mengoperasikan": kapan restart dibutuhkan, bagaimana membaca log saat error, bagaimana memastikan state tidak hilang, dan bagaimana membatasi emulator agar hanya menjalankan service yang dibutuhkan. Semuanya akan dipakai di hampir setiap episode berikutnya.

Perintah Dasar CLI

Tabel berikut merangkum perintah lifecycle utama:

PerintahFungsi
localstack startMenjalankan emulator dalam container Docker
localstack statusStatus container, versi image, dan daftar service
localstack servicesMendaftar service AWS yang aktif
localstack stopMenghentikan container
localstack restartRestart container dengan konfigurasi sama
localstack logsMenampilkan log container
localstack configMenampilkan dan memvalidasi konfigurasi
localstack sshMasuk ke shell container (Pro)

start, stop, dan restart

Siklus paling dasar. Saat emulator berjalan di background, stop menghentikannya dan restart memulai ulang dengan cepat:

Siklus hidup emulator
localstack status
localstack restart
localstack stop

status dan services

Untuk mengetahui keadaan emulator, dua perintah ini adalah andalan:

Status dan daftar service
localstack status
localstack services

localstack status memberi informasi container (running atau stopped, versi image, alamat endpoint). localstack services menampilkan service-service yang aktif — di sini kalian bisa memastikan misalnya s3 dan dynamodb siap dipakai.

logs

Saat ada error, localstack logs adalah sumber kebenaran pertama:

Membaca log emulator
localstack logs

config

Perintah config menampilkan konfigurasi yang sedang aktif dan memvalidasinya:

Menampilkan dan memvalidasi konfigurasi
localstack config show
localstack config validate

Konfigurasi Environment Variables

LocalStack dikonfigurasi hampir seluruhnya lewat environment variables. Berikut yang paling sering dipakai:

VariabelContoh NilaiFungsi
PERSISTENCE0 / 1Menyimpan state antar restart emulator
DEBUG0 / 1Logging detail untuk troubleshooting
SERVICESs3,dynamodbMembatasi service yang dimuat
LOCALSTACK_API_KEYstring lisensiMengaktifkan fitur Pro
LAMBDA_EXECUTORdocker / localMode eksekusi fungsi Lambda

PERSISTENCE

Secara default, state emulator (bucket, tabel, item) hilang saat container berhenti. Dengan PERSISTENCE=1, state disimpan ke volume dan pulih otomatis saat restart. Penting diingat: ini memudahkan development, tapi jangan mengandalkannya sebagai backup — materi lengkapnya ada di episode 12.

DEBUG

Aktifkan DEBUG=1 saat ada masalah. Output log menjadi jauh lebih detail, termasuk trace request tiap service. Di workload yang sudah stabil justru biarkan off agar log tidak membanjiri output.

SERVICES

Emulator default memuat banyak service. Dengan SERVICES=s3,dynamodb, hanya dua service yang dimuat — boot lebih cepat, container lebih ringan, dan tidak ada provider yang "berisik" di log.

LOCALSTACK_API_KEY (Pro)

Fitur Pro (Cloud Pods, AWS Replicator, Web Application) diaktifkan dengan menyuntikkan API key ke variabel ini. Karena image sudah tunggal sejak v2026.03.0, kalian tidak perlu mengganti image — cukup menambahkan key.

LAMBDA_EXECUTOR

Menentukan cara fungsi Lambda dieksekusi: docker (setiap fungsi dijalankan dalam container terpisah — paling mendekati produksi) atau local (lebih cepat, langsung di proses emulator). Materi Lambda ada di episode 7.

Praktik: Membatasi Service

Mari terapkan kombinasi env vars dalam Docker Compose. Buat emulator yang hanya menjalankan S3 dan DynamoDB dengan persistence aktif:

Emulator ramping untuk S3 dan DynamoDB
services:
  localstack:
    image: localstack/localstack:stable
    container_name: localstack-main
    ports:
      - "4566:4566"
    environment:
      - PERSISTENCE=1
      - SERVICES=s3,dynamodb
    volumes:
      - "./.localstack:/var/lib/localstack"

Setelah docker compose up -d, verifikasi bahwa hanya dua service yang aktif:

Verifikasi service aktif
localstack services

Warning

Perubahan SERVICES atau variabel lain tidak langsung berlaku pada container yang sudah berjalan — lakukan localstack restart atau docker compose restart agar konfigurasi baru diterapkan.

Penutup

  • Kuasai siklus hidup: localstack start, stop, restart, status, logs, dan config.
  • PERSISTENCE=1 menyimpan state antar restart; DEBUG=1 untuk troubleshooting.
  • SERVICES=s3,dynamodb membatasi emulator agar ringan dan cepat.
  • LOCALSTACK_API_KEY mengaktifkan Pro; LAMBDA_EXECUTOR mengatur mode eksekusi Lambda.

Emulator kalian kini sudah siap dan terkelola dengan baik. Di episode 5 berikutnya kita mulai memakai service sungguhan: menguasai S3 di LocalStack — membuat bucket dan object, versioning, presigned URL, lifecycle, hingga fitur parity lanjutan. Nyalakan emulator kalian dan ikuti praktiknya!

Belajar LocalStack - CLI & Lifecycle Management | Belajar LocalStack