운영 중인 서비스에서 가장 위험한 순간은 언제일까. 트래픽 폭증? DB 장애? 통계상 그렇지 않다. Google의 SRE 책과 Microsoft Azure DevOps 회고에 일관되게 등장하는 답은 **"배포 직후"**다. 새 버전이 production에 들어간 후 몇 분~몇 시간 사이가 장애의 70% 이상을 차지한다. 이유는 단순하다 — 배포가 끝났다는 사실 자체가 "지금까지 안 보이던 변경이 한꺼번에 사용자에게 노출됐다"는 뜻이기 때문이다.
CodeDeploy는 그 위험한 순간을 안전하게 만드는 도구다. "한 번에 다 바꾸지 말고 조금씩, 검증하면서, 문제 발생 시 즉시 되돌릴 수 있도록" 배포를 진행한다. DVA-C02 시험에서 CodeDeploy는 거의 모든 회차에 3-5문항이 나오는 핵심 영역이고, 그 안에서도 **배포 대상별 차이(EC2 vs Lambda vs ECS)**와 블루/그린 vs Canary vs Linear의 구분, appspec.yml의 라이프사이클 훅 순서가 단골 출제 포인트다.
CodeDeploy가 풀려는 문제는 "파일을 서버에 복사한다"가 아니라 "여러 노드에서 일어나는 상태 전환을 안전하게 조율한다"이다. 이 차이가 중요하다