2021년 1월, Fastly CDN의 대규모 장애가 발생했다. 원인은 소프트웨어 배포 중 설정 변경이 예상치 못한 방식으로 상호작용해 CDN 서비스가 전체적으로 응답을 멈췄기 때문이다. GitHub, Twitch, Amazon, The Guardian, Financial Times 등 수만 개의 사이트가 약 49분간 다운됐다. Fastly의 CEO는 사후 보고서에서 "배포 전 변경 사항을 충분히 검증하지 않았다"고 밝혔다.
CloudFormation에서 이런 사고를 방지하는 3가지 도구가 있다. Change Set은 배포 전 변경 사항을 dry-run으로 확인하고, Drift Detection은 수동 변경으로 생긴 현실과 코드의 괴리를 감지하며, Rollback Trigger는 배포 후 서비스 이상이 감지되면 자동으로 이전 상태로 되돌린다. 세 도구는 각각 배포 전(Change Set), 상시 운영(Drift Detection), 배포 후(Rollback Trigger)라는 시간대를 담당한다.
Terraform을 써본 운영자라면 terraform plan에 익숙할 것이다. Change Set은 CloudFormation의 terraform plan이다. update-stack은 즉시 변경을 시작하지만, Change Set은 "어떤 리소스가 어떻게 바뀔지"를 미리 보여준다.