피드로 돌아가기
CI/CD en AWS: Lab práctico para automatizar el despliegue de sitios web estáticos S3, CloudFront, CodePipeline y CodeBuild
Dev.toDev.to
DevOps

AWS CodePipeline, CodeBuild, S3, CloudFront를 조합하여 GitHub 저장소의 변경사항을 자동으로 감지하고 정적 웹사이트를 배포하는 완전 자동화된 CI/CD 파이프라인 구축

CI/CD en AWS: Lab práctico para automatizar el despliegue de sitios web estáticos S3, CloudFront, CodePipeline y CodeBuild

Juan Manuel Hoyos2026년 3월 27일5intermediate

Context

개발팀이 정적 웹사이트 배포 시 수동 작업으로 인한 오류 위험과 배포 지연에 노출되어 있었다. 변경사항이 저장소에 반영되어도 프로덕션 환경에 즉시 적용되지 않아 배포 시간을 단축할 필요가 있었다.

Technical Solution

  • GitHub 저장소를 Source 단계로 연결: GitHub App 인증을 통해 main 브랜치 변경사항 자동 감지 활성화
  • AWS CodeBuild 프로젝트 구성: buildspec.yml 파일에 정의된 빌드 스크립트로 정적 사이트 컴파일 및 패키징
  • Amazon S3 버킷 설정: 정적 웹사이트 호스팅 활성화, index.html을 기본 문서로 지정, 공개 읽기 권한 정책 적용
  • AWS CodePipeline 오케스트레이션: Source → Build → Deploy 3단계로 구성된 파이프라인으로 전체 워크플로우 자동화
  • Amazon CloudFront 캐시 무효화: CodeBuild 환경변수로 CloudFront 배포 ID 저장, post_build 단계에서 "aws cloudfront create-invalidation" 명령어로 전체 경로(/*) 캐시 제거
  • IAM 역할 권한 설정: CodeBuild 서비스 역할에 cloudfront:CreateInvalidation 권한 추가

Impact

Key Takeaway

정적 웹사이트 배포에서 AWS 관리형 서비스들(CodePipeline, CodeBuild, S3, CloudFront)을 연계하면 저장소 변경사항 감지부터 글로벌 배포까지 전체 프로세스를 수작업 없이 자동화할 수 있다. 특히 CloudFront 캐시 무효화를 파이프라인에 포함시키면 배포 후 즉시 최신 콘텐츠가 사용자에게 전달되도록 보장할 수 있다.


정적 사이트를 AWS S3와 CloudFront로 호스팅하는 팀에서 CodePipeline과 CodeBuild를 도입할 때, 배포 후 build 섹션이 아닌 post_build 섹션에 CloudFront 캐시 무효화 명령어를 추가하면 배포 완료 후 사용자가 이전 버전을 캐시에서 받는 문제를 방지할 수 있다.

원문 읽기