피드로 돌아가기
Hosting a Static Website on AWS with S3 and CloudFront using Terraform
Dev.toDev.to
Infrastructure

Terraform 기반 S3-CloudFront-OAC 결합을 통한 보안 정적 웹사이트 구축

Hosting a Static Website on AWS with S3 and CloudFront using Terraform

Atul Vishwakarma2026년 4월 11일3beginner

Context

S3 단독 호스팅 시 발생하는 Public Bucket 노출 위험과 글로벌 캐싱 부재로 인한 지연 시간 증가 문제를 해결하고자 함. 인프라 관리의 일관성을 위해 Terraform 기반의 Infrastructure as Code(IaC) 도입이 필요했던 상황임.

Technical Solution

  • Public Access를 완전히 차단한 Private S3 Bucket 설계를 통한 데이터 보안 강화
  • OAI의 대안인 Origin Access Control(OAC) 적용으로 CloudFront 전용 보안 액세스 경로 구축
  • Bucket Policy 최적화를 통한 CloudFront 외의 모든 직접 접근 차단 구현
  • fileset()for_each 조합을 이용한 정적 자산의 동적 업로드 자동화 로직 설계
  • lookup() 함수를 활용한 파일 확장자별 MIME Type 매핑으로 브라우저 렌더링 정확도 확보
  • aws_s3_object 최신 리소스 적용을 통한 Provider 버전 호환성 및 안정성 유지

1. S3 정적 호스팅 시 Public Access를 차단하고 CloudFront OAC를 적용했는지 확인

2. Terraform `for_each`와 `fileset`을 활용해 파일 업로드 프로세스를 자동화했는지 검토

3. `lookup` 함수를 통해 Content-Type이 올바르게 설정되어 MIME Type 오류가 없는지 검증

4. 최신 Terraform Provider 문서를 참조하여 Deprecated 된 리소스를 적시에 교체

원문 읽기