1. Pengenalan CloudFormation
AWS CloudFormation adalah layanan AWS yang memungkinkan Anda mendefinisikan infrastruktur cloud sebagai kode (Infrastructure as Code / IaC). Dengan CloudFormation, Anda dapat mendeskripsikan seluruh sumber daya AWS β EC2, RDS, VPC, S3, dan lainnya β dalam file template yang version-controlled, reproducible, dan auditable.
Konsep utamanya sederhana: Anda menulis template (dalam format YAML atau JSON) yang mendefinisikan infrastruktur yang diinginkan, lalu CloudFormation akan membuat, memperbarui, atau menghapus resource tersebut secara otomatis sesuai template. Ini menghilangkan konfigurasi manual melalui console dan memastikan infrastruktur dapat direplikasi secara konsisten.
Mengapa CloudFormation?
| Keunggulan | Penjelasan |
|---|---|
| Infrastructure as Code | Infrastruktur didefinisikan dalam kode yang bisa di-review, version, dan audit |
| Reproducibility | Buat environment identik berkali-kali dengan template yang sama |
| Automation | Provisioning dan teardown infrastruktur sepenuhnya otomatis |
| Dependency Management | CloudFormation otomatis menentukan urutan pembuatan resource |
| Rollback | Jika deploy gagal, semua perubahan di-rollback secara otomatis |
| Change Tracking | Setiap perubahan infrastructure tercatat dan bisa di-audit |
| Drift Detection | Detect perubahan manual di luar CloudFormation |
Template (YAML/JSON) .yaml / .json
β CloudFormation Service
/"1. Parse template"/
/"2. Validate resources"/
/"3. Create change set"/
/"4. Execute changes"/
/"5. Track stack state"/
Resources
/"EC2"/
/"VPC"/
/"Security Grps"/
/"RDS"/
/"S3"/
/"ElastiCache"/
/"π¦ Stack Tracking semua resource yang dibuat sta..."/
/"Resource Physical IDs"/
/"Status (CREATE_COMPLETEβ¦)"/
/"Event History"/
Perbandingan CloudFormation dengan tools IaC lain:
| Fitur | CloudFormation | Terraform | Pulumi |
|---|---|---|---|
| Vendor | AWS only | Multi-cloud | Multi-cloud |
| Bahasa | YAML/JSON | HCL | Python/TypeScript/Go |
| State Management | Managed oleh AWS | Self-managed | Managed atau self |
| Cost | Gratis (bayar resource) | Open-source | Open-source |
| Custom Resources | Lambda-backed | Providers | Native code |
Jika infrastruktur Anda 100% AWS, CloudFormation adalah pilihan yang sangat baik karena terintegrasi penuh dengan seluruh layanan AWS dan tidak memerlukan state management eksternal. Jika multi-cloud, pertimbangkan Terraform atau Pulumi.
2. Konsep Dasar: Resources, Parameters, Outputs
CloudFormation template terdiri dari beberapa komponen utama yang masing-masing memiliki peran penting dalam mendefinisikan infrastruktur Anda.
Bagian Utama Template
Resources β Komponen Wajib
Resources adalah satu-satunya bagian wajib dalam template. Setiap resource merepresentasikan satu AWS service resource yang akan dibuat. Setiap resource memiliki tipe (misalnya AWS::EC2::Instance) dan properti spesifik.