Skip to main content

CloudFormation Advanced Features

Rollbacks

  • Failed Create — ทุกอย่างถูกลบ (หรือเก็บไว้ด้วย DisableRollback)
  • Failed Update — rollback ไป state ก่อนหน้า

ChangeSets

  • Preview การเปลี่ยนแปลงก่อน apply
  • ไม่สามารถบอกได้ว่า update จะสำเร็จหรือไม่

Nested Stacks

  • Reusable components (เช่น shared ALB config)
  • อัปเดตผ่าน parent stack

Cross-Stack References

  • Outputs + Export — export values จาก stack หนึ่ง
  • Fn::ImportValue — import ใน stack อื่น

StackSets

  • Deploy stacks ข้าม multiple accounts/regions
  • Admin account vs Target accounts
  • รองรับ AWS Organizations — auto-deploy เมื่อเพิ่ม account ใหม่

Drift Detection

  • ตรวจจับ manual changes ที่ทำนอก CloudFormation

Stack Policies

  • ป้องกัน resources เฉพาะจากการถูก update (JSON policy)

Deletion Policies

  • Delete (default) — ลบ resource เมื่อลบ stack
  • Retain — เก็บ resource ไว้
  • Snapshot — สร้าง snapshot ก่อนลบ (EBS, RDS, etc.)

Custom Resources (Lambda-backed)

  • AWS::CloudFormation::CustomResource
  • สำหรับ resources ที่ CloudFormation ไม่รองรับ
  • Use cases: empty S3 bucket ก่อนลบ, fetch AMI ID

Dynamic References

  • Resolve SSM Parameter Store และ Secrets Manager values ตอน deploy

cfn-guard

  • Open-source policy-as-code tool สำหรับ validate templates

สิ่งที่ควรจำ

  • InsufficientCapabilitiesException — ต้อง acknowledge CAPABILITY_IAM/CAPABILITY_NAMED_IAM
  • Termination Protection — ป้องกันการลบ stack โดยไม่ตั้งใจ