본문 바로가기

개발노트

AWS CodeBuild 의 실행 속도가 느리다면 해야할 것

한 회사에서 오래 근무했거나 새로 합류했다면 저마다의 이유로 문제를 문제라고 인식하지 못하는 경우가 있다.

최근에 AWS CodeBuild 의 실행이 종료되기까지 아주 오래 걸리던 프로젝트가 있었는데, 최근에 원인을 파악하고 해결했던 적이 있어 기록을 남기고자 한다.

 

AWS CodeBuild 의 실행 속도가 느리다면 해야할 것

1. S3 cache 를 쓰도록 하기

- buildspec 에서 cache 할 파일들의 path 를 지정하고, CodeBuild project 에서 S3 cache 를 사용하도록 하면 지정한 bucket&path 에 cache 파일이 생기고, 그 이후 다음 build 를 할 때마다 cache 를 다운로드를 먼저 받는다. 이를 이용하여 bundle install, npm install, yarn, gradlew bootJar 등을 통해 설치되는 라이브러리, 패키지들을 캐싱해놓으면 매번 패키지들을 remote repositories 로부터 다운로드 받는 것보다 훨씬 더 빠르게 준비된 상태에서 BUILD 단계(phase)로 넘어갈 수가 있다.

2. S3 cache 가 이미 설정돼있다면? DOWNLOAD_SOURCE 단계와 POST_BUILD 단계에서 걸리는 시간을 측정하기

- S3 cache 사이즈가 생각한것보다 훨씬 클 경우(몇 GiB 이상), S3 에서 그냥 cache 파일을 삭제한 다음 다시 cache 를 만들도록 하기

- 옛날부터 그랬다는 이유로 문제라고 인식하지 못하는 케이슥 바로 이런 경우이다. "원래 예전부터 오래 걸렸어요" 라는 말을 하거나 들었을 때는 다시 처음부터 이 현상을 바라보는 태도가 필요하다. 그러면 최소 수명에서 수백명의 셀 수 없는 시간을 아껴줄 수도 있다.

 

3. 실행되는 빌드가 무겁다면(리소스를 많이 먹는다면) 

- 빌드를 최대한 가볍게 만들자.

- Environment 의 computing 사양을 높여주자. CPU, memory 리소스를 더 높은 것을 사용하면 조금 더 빨라질 수도 있다. 대신, 그만큼 비용이 늘어난다.

반응형