목록 보기
Github Actions의 의존성 캐싱을 통한 서버 배포속도 향상
데브옵스

Github Actions의 의존성 캐싱을 통한 서버 배포속도 향상

핏펫
핏펫
2022년 7월 28일

두줄요약

GitHub Actions의 Gradle 종속성과 Docker 레이어 캐싱으로 빌드·배포 대기 시간을 줄이는 방식을 소개했습니다. Terraform으로 AWS ECS 테스트 환경을 구성하고 아티팩트 기반 CI/CD 흐름을 구현했습니다.

문제 상황

  • 서버 규모와 배포 횟수 증가에 따른 느린 빌드 시간과 개발자 대기 시간 누적
  • 매번 새로 구성되는 GitHub Actions 실행 환경으로 인한 로컬 캐시 미활용

구조와 흐름

  • Terraform 기반 AWS ECS Fargate·ECR·ALB 테스트 환경 구성
  • Java 11·Gradle 빌드 결과물을 아티팩트로 전달하고 Docker 이미지 빌드 후 ECR 푸시
  • ECS 서비스에서 컨테이너 이미지 기반 배포

해결 방법

  • setup-java의 Gradle 캐시 설정으로 종속성 재다운로드 최소화
  • actions/cache와 Buildx 로컬 캐시로 Docker 레이어 재사용
  • 커밋 SHA 기반 캐시 키와 OS 단위 복원 키 구성

성능/운영 포인트

  • Build와 Deploy Job 분리 및 아티팩트 업로드·다운로드로 빌드 산출물 전달
  • 새 Docker 캐시 생성 후 기존 캐시 교체로 다음 워크플로 실행에 재활용

다음 읽기

#GitHub Actions 주제를 다룬 다른 회사 글

속도 개선을 위한 노력 2탄: Github Actions로 CI/CD 전환하기

Github Actions로 CI/CD를 전환해 배포 속도와 협업 효율을 높인 사례를 소개했습니다. Terraform 캐시와 Terragrunt 최적화로 배포 시간을 크게 줄였습니다.

삼쩜삼
삼쩜삼
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...