← Semua pembelajaran / AWS untuk AI Engineer
Fase 2 · IaC & CI/CD

CDK — bootstrapping

Bootstrap menyiapkan bucket, repository, dan role yang dipakai CDK untuk menyimpan artefak dan melakukan deploy. Sekali per pasangan akun+region.

Intisari

  • Bootstrap membuat satu stack bernama CDKToolkit berisi bucket S3, repo ECR, dan beberapa IAM role.
  • Dibutuhkan sekali per akun per region — bukan sekali per proyek.
  • Aset (kode Lambda, image Docker) diunggah ke bucket/repo itu, lalu template menunjuk ke sana.
  • Deploy dari CI/CD memakai role hasil bootstrap — sehingga pipeline tidak perlu izin admin.
  • Gejala lupa bootstrap: "This stack uses assets, so the toolkit stack must be deployed".

Apa yang dibuat

cdk bootstrap aws://123456789012/us-east-1
Yang dibuatGunanya
Bucket S3 (staging)Menampung berkas template besar dan aset kode Lambda
Repository ECRMenampung image Docker untuk Lambda container
Role deployYang benar-benar memanggil CloudFormation
Role file-publishing / image-publishingMengunggah aset
Role cfn-execDipakai CloudFormation untuk membuat resource-mu

Kenapa perlu bucket sama sekali

Template CloudFormation punya batas ukuran, dan ia tidak bisa membawa kode Lambda di dalam dirinya. Jadi CDK mengunggah kodemu sebagai aset, lalu template hanya menunjuk lokasi S3-nya. Itu juga alasan cdk deploy terasa mengunggah sesuatu setiap kali kodemu berubah — karena memang begitu.

Nama aset diturunkan dari hash isi. Kalau kodemu tidak berubah, hash-nya sama, dan tidak ada pengunggahan baru. Ini pola yang sama dengan aset ber-hash di situs statis mana pun.

Model kepercayaan untuk CI/CD

Ini bagian yang penting untuk Domain 2 ujian. Karena bootstrap membuat role tersendiri, pipeline CI/CD-mu tidak perlu izin administrator. Yang dibutuhkan hanya izin untuk mengambil role deploy hasil bootstrap; role itulah yang punya izin membuat resource.

# Membatasi siapa yang boleh memakai role hasil bootstrap
cdk bootstrap aws://123456789012/us-east-1 \
  --trust 999999999999 \
  --cloudformation-execution-policies arn:aws:iam::aws:policy/PowerUserAccess

Jangan asal --trust. Akun yang kamu percayai bisa men-deploy apa pun ke akun ini, dengan izin yang kamu berikan lewat --cloudformation-execution-policies. Untuk akun production, sempitkan policy itu dari AdministratorAccess ke sesuatu yang benar-benar dibutuhkan.

Error yang berkaitan

PesanArtinya
"the toolkit stack must be deployed"Belum bootstrap di region ini
"bootstrap stack version 6 required"Bootstrap-nya usang — jalankan ulang cdk bootstrap
AccessDenied saat mengunggah asetIdentitasmu tidak boleh mengambil role publishing

Bootstrap perlu diperbarui sesekali saat kamu menaikkan versi CDK. Menjalankan ulang perintah yang sama aman — ia memperbarui stack CDKToolkit yang sudah ada.

Latihan: jalankan cdk bootstrap, lalu buka konsol CloudFormation dan telusuri isi stack CDKToolkit. Cari role cfn-exec dan baca permissions policy-nya — itulah izin yang sesungguhnya dipakai saat stack-mu dibuat.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.