AWS S3와 Route 53을 활용하면 누구나 쉽고 빠르게 커스텀 도메인을 통해 정적 웹사이트를 호스팅할 수 있습니다. 기본적으로 S3는 정적 웹사이트를 배포하는 데 강력한 기능을 제공하지만, 제공되는 URL이 직관적이지 않아 사용자가 기억하기 어렵고, 브랜드 아이덴티티를 강조하는 데 한계가 있을 수 있습니다. 이를 해결하기 위해 AWS Route 53과 연동하여 S3에 커스텀 도메인을 연결하면 더 전문적이고 신뢰할 수 있는 웹사이트를 구축할 수 있습니다.
S3와 Route 53의 조합은 개인 프로젝트부터 대규모 상업용 웹사이트까지 모두 활용 가능한 안정적이고 유연한 인프라를 제공합니다. 이 글에서는 S3와 Route 53을 이용해 커스텀 도메인을 설정하는 방법과 HTTPS 보안 적용, 성능 최적화를 위한 CloudFront 연동까지의 과정을 단계별로 설명합니다.
커스텀 도메인 설정을 위해 필요한 준비사항
도메인 등록
먼저, AWS Route 53 또는 다른 도메인 등록 서비스를 통해 사용할 도메인을 구매해야 합니다. Route 53은 AWS 생태계와의 강력한 통합 기능을 제공하여 관리가 간편한 것이 장점입니다. 도메인 이름은 사용자가 기억하기 쉬운 이름으로 선택하는 것이 중요하며, 웹사이트의 목적이나 브랜드를 잘 반영하도록 설계해야 합니다.
S3 버킷 생성
도메인과 동일한 이름으로 S3 버킷을 생성해야 합니다. 예를 들어 example.com
이라는 도메인을 사용하려면 동일한 이름의 S3 버킷을 생성해야 합니다. S3 버킷 이름은 AWS 전역에서 고유해야 하며, AWS의 네이밍 규칙을 준수해야 합니다. 버킷을 생성한 후 기본 설정으로는 정적 웹사이트 호스팅이 활성화되어 있지 않으므로 별도의 설정이 필요합니다.
정적 웹사이트 호스팅 활성화
S3에서 정적 웹사이트 호스팅을 활성화하려면 S3 버킷 속성에서 관련 옵션을 설정해야 합니다. 여기에서 기본 문서 파일(예: index.html
)과 오류 처리 페이지(예: error.html
)를 지정할 수 있습니다. 이 설정은 웹사이트의 트래픽을 올바르게 처리하는 데 필수적이며, 퍼블릭 액세스를 위한 정책 추가도 필요합니다.
Route 53 호스팅 존 생성
Route 53의 호스팅 존은 DNS 설정을 관리하는 핵심 요소입니다. 여기에서 도메인 이름을 입력하고 퍼블릭 호스팅 존을 생성해야 합니다. 생성된 호스팅 존에는 네임서버(NS) 레코드가 포함되어 있으며, 이를 도메인 등록 서비스에 업데이트하여 사용합니다.
S3와 Route 53으로 커스텀 도메인 설정하는 방법
1. S3에서 정적 웹사이트 호스팅 활성화하기
- AWS Management Console에서 S3 서비스를 선택합니다.
- 새로운 S3 버킷을 생성하고 이름을 도메인 이름과 동일하게 설정합니다. (예:
example.com
) - 생성된 버킷의 속성 탭에서 “정적 웹사이트 호스팅”을 활성화합니다.
- 인덱스 문서(예:
index.html
)와 오류 문서(예:error.html
)를 설정합니다. - 퍼블릭 액세스를 허용하기 위해 필요한 버킷 정책을 추가합니다.
2. Route 53에서 호스팅 존 생성하기
- AWS Route 53에 접속하여 “호스팅 존 생성”을 선택합니다.
- 사용할 도메인 이름(예:
example.com
)을 입력하고, 퍼블릭 호스팅 존을 선택합니다. - 생성된 호스팅 존의 네임서버(NS) 정보를 확인하고 기록합니다.
- 외부 도메인 등록 기관을 사용하는 경우, 해당 네임서버 정보를 등록 기관에서 업데이트합니다.
3. DNS 설정하기
- Route 53의 호스팅 존에서 A 레코드를 생성합니다.
- Alias 옵션을 활성화하고 Alias 대상으로 S3의 정적 웹사이트 엔드포인트를 입력합니다.
(예:example.com.s3-website-us-east-1.amazonaws.com
)
HTTPS 보안을 위한 CloudFront 연동
CloudFront는 콘텐츠 배포 네트워크(CDN)로, 전 세계 사용자에게 빠른 속도로 콘텐츠를 제공하며 HTTPS를 통해 보안을 강화할 수 있습니다. 아래는 CloudFront를 사용하여 HTTPS를 설정하는 방법입니다.
- AWS CloudFront에서 새 배포를 생성합니다.
- Origin Domain Name에 S3 버킷 엔드포인트를 입력합니다.
- Viewer Protocol Policy를 “Redirect HTTP to HTTPS”로 설정하여 HTTPS를 강제합니다.
- Route 53에서 A 레코드에 CloudFront 배포의 도메인 이름을 Alias로 추가합니다.
예상 문제와 해결 방법
1. S3 버킷 이름과 도메인 불일치
도메인 이름과 버킷 이름이 다를 경우, CloudFront를 사용하여 S3 버킷과 도메인 간의 매핑 문제를 해결할 수 있습니다. CloudFront 배포를 생성하여 S3의 콘텐츠를 프록시하면 도메인과의 연결이 가능합니다.
2. DNS 변경 반영 지연
네임서버(NS) 변경 사항은 글로벌 DNS 전파에 시간이 걸리며, 최대 48시간까지 소요될 수 있습니다. 도메인이 바로 연결되지 않을 경우 일정 시간을 기다리세요.
3. HTTPS 인증서 문제
AWS Certificate Manager(ACM)를 사용하여 무료 인증서를 발급받아 CloudFront 배포에 연결하면 HTTPS 보안 문제를 쉽게 해결할 수 있습니다.
SEO 최적화를 위한 추가 팁
1. HTTPS 활성화
HTTPS는 사용자 신뢰도를 높이고 검색 엔진 최적화(SEO) 점수를 높이는 데 필수적입니다. AWS Certificate Manager를 통해 HTTPS를 활성화하세요.
2. 리다이렉션 설정
www.example.com
과 example.com
트래픽을 통합하려면 추가 S3 버킷을 생성하고 리다이렉션 규칙을 설정하세요.
3. 빠른 로딩 속도
CloudFront를 통해 콘텐츠를 캐싱하고, 정적 콘텐츠를 전 세계에 빠르게 배포하여 사용자 경험을 향상시키세요.
4. 메타 데이터 설정
HTML 문서에 제목, 설명, 키워드 등의 메타 태그를 추가하고 XML 사이트맵을 생성하여 검색 엔진이 사이트를 더 잘 인식할 수 있도록 돕습니다.
5. robots.txt 설정
검색 엔진 크롤러가 접근할 수 있는 페이지와 접근 불가능한 페이지를 명확히 구분하여 robots.txt 파일을 설정하세요.
FAQ
1. S3와 Route 53 외에 다른 DNS 서비스를 사용할 수 있나요?
네, 가능합니다. 외부 DNS 서비스에서 S3 엔드포인트로 NS 레코드를 설정하면 됩니다.
2. CloudFront는 필수인가요?
CloudFront는 필수가 아니지만, 성능 최적화와 HTTPS 지원을 위해 권장됩니다.
3. 도메인 비용은 얼마나 되나요?
도메인의 가격은 다양하지만, 일반적으로 연간 $12~15 정도입니다.
4. AWS Certificate Manager는 무료인가요?
네, AWS Certificate Manager를 통해 발급받은 SSL/TLS 인증서는 무료로 사용할 수 있습니다.
5. 정적 웹사이트에서 동적 콘텐츠를 제공할 수 있나요?
가능합니다. AWS Lambda와 API Gateway 또는 DynamoDB를 결합하여 동적 기능을 구현할 수 있습니다.