새벽 배포가 긴박한 상황에서 빌드가 8분 걸린다는 것은 8분의 긴장을 의미한다. 이 8분 중 "npm install 4분"이 차지한다면, 그 4분은 매번 인터넷에서 같은 패키지를 다시 받는 데 쓰이는 낭비다. 이론상 캐시가 있으면 40초로 줄일 수 있다. 하지만 실제로 CodeBuild의 캐시는 "어디에 저장하느냐"에 따라 동작 방식이 완전히 다르고, 잘못 설정하면 오히려 느려지는 역설도 있다.
CodeBuild의 빌드 시간 최적화는 다섯 층의 레이어로 이루어진다: (1) 컴퓨트 리소스 선택, (2) 캐시 전략, (3) 소스 클론 최적화, (4) Docker 레이어 캐시, (5) Build Batch 병렬화. 이 중 하나만 잘못 선택해도 전체 효과가 반감된다.
| 모드 | 저장 위치 | 빌드 간 공유 | 호스트 의존 | 비용 |
|---|---|---|---|---|
| No Cache | 없음 | - | - | 없음 |
| S3 Cache | S3 버킷 | ✅ (모든 빌드) | ❌ | S3 비용 |
| Local Source Cache | 빌드 호스트 | ❌ (같은 호스트만) | ✅ | 없음 |
| Local Docker Layer Cache | 빌드 호스트 | ❌ (같은 호스트만) | ✅ | 없음 |
| Local Custom Cache | 빌드 호스트 | ❌ (같은 호스트만) | ✅ | 없음 |