- Cho phép dựng infrastructure bằng code thay vì dùng console
- Tăng khả năng bảo trì, nâng cấp, tái sử dụng
Quy trình vận hành
- Templates sẽ được upload lên s3
- CloudFormation sẽ đọc thông tin từ s3
- KHÔNG thể edit được template cũ, chỉ có thể upload lên một version mới
- Có thể tạo template bằng console hoặc bằng code (file YAML)
Một số thông tin khác
- Cần hiểu rõ cách viết (sử dụng YAML file)
- Trong CloudFormation template có một số pseudo parameters

Có một số dạng cấu trúc như là parameters, refs, …… Một số dạng function như là Join, FindInMap, … Các dạng condition, import, export
Cơ chế rollback
- Thường sẽ là xoá toàn bộ (trong case tạo mới) hoặc rollback về trạng thái trước đó (trong case update)
- Có thể chọn option KHÔNG xoá những gì đã được tạo ra
- Có thể nhìn vào log để check lỗi
Cross Stacks và Nested Stacks
- Cross stacks: Các stack có cấu trúc khác nhau, kết quả của stack trước sẽ được đưa vào trong stack sau (sử dụng Import và Export)

- Nested stacks

Một số thông tin khác
- Sử dụng StackSets để update các stacks trong nhiều accounts, nhiều region khác nhau
- Sử dụng Drift để trace các thay đổi không phải do CloudFormation (thường là thay đổi bằng tay)
- Stack Policy: khai báo là các actions gắn với các resources (tránh trường hợp update nhầm)
Best Practices khi sử dụng CloudFormation
- Sử dụng version control (Git) để quản lý các template và theo dõi thay đổi.
- Chia nhỏ template bằng cách sử dụng Nested Stack để dễ bảo trì và tái sử dụng.
- Luôn kiểm tra template bằng công cụ cfn-lint hoặc validate của AWS trước khi deploy.
- Dùng Parameters hợp lý, hạn chế hardcode giá trị để tăng khả năng tái sử dụng.
- Kích hoạt Stack Policy để bảo vệ các resource quan trọng không bị update nhầm.
- Theo dõi Drift Detection thường xuyên để phát hiện thay đổi thủ công ngoài CloudFormation.
- Kết hợp với CI/CD pipeline (như CodePipeline, Jenkins hoặc GitHub Actions) để tự động triển khai hạ tầng.
Việc áp dụng các best practices này giúp hệ thống hạ tầng ổn định, an toàn và dễ dàng mở rộng hơn khi phát triển trên AWS.
Tài liệu tham khảo về AWS CloudFormation
- AWS Official Documentation – CloudFormation
🔗 https://docs.aws.amazon.com/cloudformation Tài liệu chính thức từ AWS, bao gồm hướng dẫn chi tiết về cú pháp YAML/JSON, ví dụ, và best practices. - AWS CloudFormation User Guide
🔗 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html Giải thích chi tiết từng phần trong template: Parameters, Resources, Outputs, Conditions, Functions,… - AWS Blogs – Infrastructure as Code with CloudFormation
🔗 https://aws.amazon.com/blogs/devops/tag/aws-cloudformation/ Bài viết thực tế từ AWS DevOps Team, chia sẻ về triển khai CI/CD và automation bằng CloudFormation. - AWS Samples on GitHub
🔗 https://github.com/aws-samples/aws-cloudformation-samples Kho ví dụ mẫu các template CloudFormation để học cách viết YAML thực tế.
