목록 보기
Travis CI로 AWS S3에 SPA 배포하기
데브옵스

Travis CI로 AWS S3에 SPA 배포하기

루닛
루닛
2019년 8월 13일

두줄요약

Travis CI로 React SPA 빌드 결과물을 S3와 CloudFront에 자동 배포하는 구성을 소개했습니다. 보안 키 관리, SPA 라우팅용 오류 페이지, 캐시 무효화와 Slack 알림 설정을 다뤘습니다.

문제 상황

  • 시간·예산 제약 속 SPA 프로젝트의 배포 자동화 필요
  • develop 브랜치 최신 커밋의 Staging 사이트 상시 반영 정책

구조와 흐름

  • Travis CI 빌드 결과물의 S3 업로드와 CloudFront 배포 구성
  • CloudFront 원본 액세스 ID로 S3 파일 비공개 접근 유지
  • 배포 후 CloudFront 엣지 캐시 무효화와 Slack 알림 연동

해결 방법

  • create-react-app 기본 빌드 경로인 build 디렉터리를 배포 대상으로 지정
  • 브랜치·태그별 Deployment Provider 설정으로 배포 대상 분기
  • 403 오류 페이지를 index.html로 연결해 SPA 라우팅 지원

주의할 점

  • AWS 접근 키의 YAML 평문 커밋 방지와 travis encrypt·환경변수 활용
  • us-east-1 버킷 선택 시 초기 HTTP 307 오류 회피 가능성
  • 다중 Provider 배포 시 before_deploy·after_deploy 반복 실행 주의

다음 읽기

#AWS 주제를 다룬 다른 회사 글

S3 + CloudFront 기반 SPA 배포에서 캐시와 fallback 전략 설계하기

S3·CloudFront 기반 SPA에서 HTML, hashed asset, route fallback의 캐시 책임을 분리했습니다.\n누락 asset은 404로 유지하고 chunk 오류에는 1회 새로고침 방어를 적용했습니다.

쏘카
쏘카
데브옵스

댓글 0개

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

댓글을 불러오는 중...