Persiapan lengkap sebelum belajar Floci: skill dasar Docker compose, AWS CLI v2, dan konsep endpoint override pada SDK AWS — plus menyiapkan Docker Engine, SDK pilihan, dan folder lab series

Selamat datang di series Belajar Floci! Series ini akan membawa kalian menguasai Floci — emulator AWS lokal yang cepat, ringan, dan sepenuhnya gratis — dari instalasi pertama sampai integrasi IaC, testing, dan CI/CD production-grade.
Sebelum menyentuh Floci sedikit pun, ada episode persiapan ini. Pengalaman industri menunjukkan mayoritas kegagalan belajar tool cloud-emulation bukan terjadi saat tool-nya error, melainkan jauh sebelumnya: Docker yang tidak paham cara kerjanya, AWS CLI versi lama dengan flag berbeda, atau SDK yang dikonfigurasi asal-asalan. Episode ini memastikan fondasi kalian kokoh sehingga setiap episode berikutnya bisa diikuti mulus.
Floci didistribusikan sebagai image Docker (floci/floci) dan seluruh lab series ini berbasis container. Kalian harus nyaman dengan:
docker run — flag -p (port mapping), -v (volume), -e (environment), --rm.services:, ports:, volumes:, environment:; perintah docker compose up -d, logs, down./var/run/docker.sock) — apa itu dan kenapa Floci butuh aksesnya untuk layanan seperti ECS/RDS (episode 12).Seluruh interaksi di series ini memakai AWS CLI sebagai klien utama:
aws --version # wajib v2.x — flag endpoint berbeda dari v1Minimal kuasai: konfigurasi profile (~/.aws/credentials), perintah dasar S3 (s3 mb, s3 cp, s3 ls), dan DynamoDB (put-item, query). Kalian tidak perlu hafal semua service — polanya konsisten.
Ini kunci teknis seluruh series: SDK dan CLI AWS selalu bisa diarahkan ke server lain alih-alih ke AWS sungguhan. Mekanismenya:
1. Flag CLI : aws --endpoint-url=http://localhost:4566 s3 ls
2. Env var resmi : AWS_ENDPOINT_URL=http://localhost:4566
3. Parameter SDK : boto3.client("s3", endpoint_url="http://localhost:4566")Karena request tetap format API AWS sungguhan (signature, region header, payload JSON/XML standar), aplikasi tidak perlu diubah satu baris pun untuk bicara dengan emulator — cukup arahkan endpoint-nya. Paham konsep ini = paham separuh cara kerja Floci.
Pastikan terinstall dan berjalan:
docker info # harus merespons tanpa error
docker compose versionDocker Desktop (macOS/Windows) atau Engine native (Linux) sama-sama valid. Alokasikan minimal 2 GB RAM untuk Docker — Floci sendiri super ringan (~13 MiB idle), tapi nanti kita jalankan app + database bersamaan.
Jika masih v1, upgrade dulu — beberapa subcommand dan perilaku default berbeda:
aws --version # target: aws-cli/2.x.xSeries ini contohkannya bergantian antara Python (boto3) dan JavaScript (aws-sdk-js v3) — pilih salah satu sesuai stack tim kalian:
| SDK | Install | Cocok Untuk |
|---|---|---|
| boto3 | pip install boto3 | Backend Python, scripting ops |
| aws-sdk-js v3 | npm i @aws-sdk/client-s3 | Backend Node.js/TypeScript |
| aws-sdk-go-v2 | go get github.com/aws/aws-sdk-go-v2 | Backend Go |
Siapkan folder kerja yang akan dipakai konsisten sepanjang series:
mkdir -p ~/labs/floci && cd ~/labs/floci
git init # disarankan — setiap episode adalah commit yang layak dilacakTip
Bangun kebiasaan lab: satu folder per episode (ep04-s3/, ep05-dynamodb/, dst). Di akhir series kalian memiliki cookbook pribadi yang bisa langsung disalin ke project nyata.
Pastikan semua item ini lolos sebelum lanjut:
[x] docker info merespons (Engine running)
[x] docker compose version terdeteksi
[x] aws --version menunjukkan CLI 2.x
[x] SDK pilihan terinstall (boto3 / aws-sdk-js / aws-sdk-go)
[x] Folder ~/labs/floci siap
[x] (Bonus) Paham bedanya virtual-hosted vs path-style URL S3 — dibahas ulang di episode 4Note
Tidak perlu akun AWS untuk series ini! Justru itulah nilai Floci: semua latihan berjalan lokal sepenuhnya. Akun sandbox hanya relevan di pembahasan parity testing (episode 25) — dan bahkan itu opsional.
Rangkuman episode ini:
AWS_ENDPOINT_URL, atau parameter SDK — aplikasi tak perlu diubah untuk pakai emulator.~/labs/floci.Di episode 1 kita mulai dari pertanyaan besar: apa itu local cloud emulator, untuk apa saja ia dipakai di dunia kerja, dan cerita kelahiran Floci — kenapa LocalStack Community sunset di Maret 2026 dan bagaimana satu engineer memutuskan membangun alternatif "light, fluffy, and always free". Sampai jumpa!