이 글은 다음의 AWS 구성으로 정적 웹사이트 호스팅 구축하는 법을 최소한으로 안내합니다.
전체 구성 (실제 구현은 역순으로 진행합니다)
사용자 요청 → Route 53 → CloudFront → S3
S3 자체로도 정적 웹사이트 호스팅이 가능하지만, CloudFront는 성능과 보안을 강화하는 부가적인 역할을 합니다.
- S3 자체 기능
- 정적 웹사이트 호스팅 기능 내장
- HTML, CSS, JS 파일 제공 가능
- 기본 도메인 제공 (http://bucket-name.s3-website.region.amazonaws.com)
- 제한사항
- HTTPS 지원 안함 (HTTP만 가능)
- 느린 로딩 (지역 제한)
- 도메인 커스터마이징 제한
- 보안 강화
- HTTPS 지원
- SSL/TLS 인증서 무료 제공
- DDoS 보호
- 성능 향상
- 전세계 엣지 로케이션 활용
- 캐싱으로 빠른 로딩
- 압축 전송
- 고급 기능
- 커스텀 도메인 사용
- 에러 페이지 커스터마이징
- 접근 제어
1. S3만 사용
사용자 → S3 버킷 (특정 리전) → 웹사이트 컨텐츠 제한사항: - 해당 리전과 멀수록 느림 - HTTPS 사용 불가2. S3 + CloudFront 사용
사용자 → 가까운 엣지 로케이션 → 캐시된 컨텐츠 즉시 전송 └→ 캐시 미스 시 → S3 버킷 접근 장점: - 빠른 전송 속도 - HTTPS 보안 - 고급 기능 사용 가능
- ACM 콘솔 접속 (반드시 us-east-1 리전에서 생성)
- 인증서 요청 → 퍼블릭 인증서 요청
- 도메인 이름 입력
- 단일 도메인: example.com
- 와일드카드: *.example.com
- DNS 검증 선택
- 태그 추가 (선택사항)
- 검증 대기 상태에서 [Route 53에서 레코드 생성] 클릭하면 자동으로 검증 레코드(CNAME) 생성 → 잠시 후 성공 상태 확인
- 배포 → 설정 → 편집
- Alternate domain name (CNAME) 추가
- 사용할 도메인 입력 (example.com)
- Custom SSL certificate 선택
- 앞서 발급한 ACM 인증서 선택
- 변경 사항 저장
- 레코드 생성 선택
- 레코드 설정:
- 레코드 이름: 공백 (루트 도메인이므로)
- 레코드 유형: A
- 별칭: 활성화
- 트래픽 라우팅 대상
- 엔드포인트: CloudFront 배포에 대한 별칭
- 배포: 해당 CloudFront 배포 도메인 선택
- 레코드 생성