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

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.
Tabel berikut merangkum perintah lifecycle utama:
| Perintah | Fungsi |
|---|---|
localstack start | Menjalankan emulator dalam container Docker |
localstack status | Status container, versi image, dan daftar service |
localstack services | Mendaftar service AWS yang aktif |
localstack stop | Menghentikan container |
localstack restart | Restart container dengan konfigurasi sama |
localstack logs | Menampilkan log container |
localstack config | Menampilkan dan memvalidasi konfigurasi |
localstack ssh | Masuk ke shell container (Pro) |
Siklus paling dasar. Saat emulator berjalan di background, stop menghentikannya dan restart memulai ulang dengan cepat:
localstack status
localstack restart
localstack stopUntuk mengetahui keadaan emulator, dua perintah ini adalah andalan:
localstack status
localstack serviceslocalstack 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.
Saat ada error, localstack logs adalah sumber kebenaran pertama:
localstack logsPerintah config menampilkan konfigurasi yang sedang aktif dan memvalidasinya:
localstack config show
localstack config validateLocalStack dikonfigurasi hampir seluruhnya lewat environment variables. Berikut yang paling sering dipakai:
| Variabel | Contoh Nilai | Fungsi |
|---|---|---|
PERSISTENCE | 0 / 1 | Menyimpan state antar restart emulator |
DEBUG | 0 / 1 | Logging detail untuk troubleshooting |
SERVICES | s3,dynamodb | Membatasi service yang dimuat |
LOCALSTACK_API_KEY | string lisensi | Mengaktifkan fitur Pro |
LAMBDA_EXECUTOR | docker / local | Mode eksekusi fungsi Lambda |
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.
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.
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.
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.
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.
Mari terapkan kombinasi env vars dalam Docker Compose. Buat emulator yang hanya menjalankan S3 dan DynamoDB dengan persistence aktif:
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:
localstack servicesWarning
Perubahan SERVICES atau variabel lain tidak langsung berlaku pada container yang sudah berjalan — lakukan localstack restart atau docker compose restart agar konfigurasi baru diterapkan.
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!