S3 + CloudFront + OAC로 안전한 정적 사이트 배포하기
- #AWS
- #S3
- #CloudFront
- #OAC
왜 S3를 직접 공개하지 않을까
S3 버킷을 퍼블릭으로 열어 정적 웹사이트 호스팅을 켜는 방식은 간단하지만, 버킷이 인터넷에 직접 노출됩니다. 대신 CloudFront(CDN)를 앞에 두고, S3는 비공개로 유지하면 다음 이점이 있습니다.
- HTTPS(TLS)를 CloudFront에서 종단 처리
- 엣지 캐싱으로 빠른 응답과 낮은 오리진 부하
- WAF, 지역 제한 등 엣지 보안 정책 적용 가능
OAC란
OAC(Origin Access Control)는 CloudFront만 S3 오리진에 접근할 수 있도록 서명된 요청을 보내는 최신 방식입니다. 과거의 OAI(Origin Access Identity)를 대체합니다. 버킷 정책에서 “이 CloudFront 배포에서 온 요청만 허용”하도록 제한하면, S3를 완전히 비공개로 두면서도 사이트는 정상 동작합니다.
큰 그림
astro build→dist/정적 파일 생성dist/를 비공개 S3 버킷에 업로드- CloudFront 배포 + OAC로 S3에 연결
- ACM 인증서로 커스텀 도메인에 HTTPS 적용
- Route 53에서 도메인을 CloudFront로 연결
이 글은 예시(sample) 포스트입니다. 실제 배포 명령은 README와 배포 단계에서 다룹니다.