Deploying a static website to S3 and Cloudfront (with Terraform)
- Terraform을 사용하여 S3 버킷을 오리진으로 하는 CloudFront 배포를 통해 정적 웹사이트를 구축하는 AWS 아키텍처를 구현합니다. 🌐
- AWS 리소스(S3, CloudFront)를 코드로 정의하고 배포하는 IaC(Infrastructure as Code) 방식을 채택하며, AI를 활용하여 초기 코드 작성을 가속화합니다. 💻
- 웹사이트 파일을 저장할 S3 버킷을 생성하고, 보안을 위해 퍼블릭 액세스를 차단하여 프라이빗하게 유지합니다. 🔒
- CloudFront 배포의 오리진을 S3 버킷으로 지정하고, Origin Access Identity(OAI)를 통해 CloudFront가 프라이빗 S3 버킷에 접근할 수 있도록 권한을 부여합니다. 🚀
- CloudFront의 캐시 동작을 설정하여 정적 자산의 캐싱 기간을 지정함으로써 웹사이트 로딩 속도를 향상시키고 비용을 절감합니다. ⚡
deploy.sh 스크립트를 사용하여 Terraform 초기화 및 적용, S3로 파일 복사, CloudFront 캐시 무효화(invalidation) 과정을 자동화합니다. ⚙️
- Terraform
output 기능을 활용하여 S3 버킷 이름이나 CloudFront 배포 ID와 같은 동적 값을 스크립트에서 참조함으로써 하드코딩을 방지하고 유연성을 높입니다. 💡
- CloudFront 배포는 완료까지 최대 10분 정도 소요될 수 있으므로, 배포 중에는 인내심을 가지고 기다려야 합니다. ⏳
- 새로운 파일이 S3에 업로드되거나 기존 파일이 변경될 경우, CloudFront 캐시를 무효화하여 최신 콘텐츠가 사용자에게 즉시 제공되도록 합니다. 🔄
데브허브 | DEVHUB | Deploying a static website to S3 and Cloudfront (with Terraform)