자습서: Route 53에 등록된 사용자 지정 도메인을 사용하여 정적 웹 사이트 구성
Amazon S3에서 정적 웹 사이트를 호스팅하는 경우를 가정합니다. 예를 들어 example.com
과 같은 도메인을 Amazon Route 53에 등록하고 Amazon S3 콘텐츠에서 http://www.example.com
및 http://
에 대한 요청을 수행하게 합니다. 이 연습을 사용하여 정적 웹 사이트를 호스팅하고 사용자 지정 도메인 이름이 Route 53에 등록된 웹 사이트에 대한 리디렉션을 Amazon S3에 만드는 방법을 학습할 수 있습니다. Amazon S3에서 호스팅할 기존 웹 사이트로 작업하거나 이 연습을 사용하여 처음부터 시작할 수 있습니다.example.com
이 연습을 완료한 후에는 필요에 따라 Amazon CloudFront를 사용하여 웹 사이트의 성능을 향상시킬 수 있습니다. 자세한 내용은 Amazon CloudFront로 웹사이트 속도 향상 섹션을 참조하세요.
참고
Amazon S3 웹 사이트 엔드포인트는 HTTPS 또는 액세스 포인트를 지원하지 않습니다. HTTPS를 사용하려는 경우 Amazon CloudFront를 사용하여 Amazon S3에서 호스팅되는 정적 웹 사이트를 제공할 수 있습니다.
CloudFront 및 Amazon S3를 사용하여 콘텐츠를 안전하게 호스팅하는 방법에 대한 자세한 내용은 자습서: Amazon S3, Amazon CloudFront 및 Amazon Route 53로 온디맨드 스트리밍 비디오 호스팅 섹션을 참조하세요. 자세한 내용은 CloudFront를 사용하여 Amazon S3에 호스팅된 정적 웹 사이트를 제공하려면 어떻게 해야 하나요?
AWS CloudFormation 템플릿으로 정적 웹 사이트 설정 자동화
AWS CloudFormation 템플릿을 사용하여 정적 웹 사이트 설정을 자동화할 수 있습니다. AWS CloudFormation 템플릿은 안전한 정적 웹 사이트를 호스팅하는 데 필요한 구성 요소를 설정하므로 구성 요소의 구성에 대한 비중은 낮추고 웹 사이트의 콘텐츠에 더 중점을 둘 수 있습니다.
AWS CloudFormation 템플릿에는 다음 구성 요소가 포함됩니다.
Amazon S3 ‐ 정적 웹 사이트를 호스팅할 Amazon S3 버킷을 생성합니다.
CloudFront - 정적 웹 사이트의 속도를 높이기 위해 CloudFront 배포를 생성합니다.
Lambda@Edge - Lambda@Edge를 사용하여 모든 서버 응답에 보안 헤더를 추가합니다. 보안 헤더는 웹 서버 응답에서 웹 브라우저에 추가 보안 예방 조치를 취하도록 알려주는 헤더 그룹입니다. 자세한 내용은 Lambda@Edge 및 Amazon CloudFront를 사용하여 HTTP 보안 헤더 추가
블로그 게시물을 참조하십시오.
이 AWS CloudFormation 템플릿은 다운로드하여 사용할 수 있습니다. 자세한 내용과 지침은 Amazon CloudFront 개발자 안내서의 안전한 정적 웹 사이트 시작하기를 참조하십시오.
주제
- 시작하기 전에
- 1단계: Route 53에 사용자 지정 도메인 등록
- 2단계: 두 개의 버킷 생성
- 3단계: 웹 사이트 호스팅용 루트 도메인 버킷 구성
- 4단계: 웹 사이트 리디렉션용 하위 도메인 버킷 구성
- 5단계: 웹 사이트 트래픽용 로깅 구성
- 6단계: 인덱스 및 웹 사이트 콘텐츠 업로드
- 7단계: 오류 문서 업로드
- 8단계: S3 퍼블릭 액세스 차단 설정 편집
- 9단계: 버킷 정책 연결
- 10단계: 도메인 엔드포인트 테스트
- 11단계: 도메인 및 하위 도메인에 대한 별칭 레코드 추가
- 12단계: 웹 사이트 테스트
- Amazon CloudFront로 웹사이트 속도 향상
- 예제 리소스 정리
시작하기 전에
이 예제의 단계에 따르려면 다음과 같이 작업을 합니다.
Amazon Route 53 – Route 53을 사용하여 도메인을 등록하고 도메인의 인터넷 트래픽을 라우팅할 위치를 정의합니다. 이 예제는 도메인(example.com
) 및 하위 도메인(www.example.com
)의 트래픽을 HTML 파일이 포함된 Amazon S3 버킷으로 라우팅하는 Route 53 별칭 레코드의 생성 방법을 보여줍니다.
Amazon S3 – Amazon S3을 사용하여 버킷을 생성하고 샘플 웹 사이트 페이지를 업로드해 모든 사용자가 콘텐츠를 볼 수 있도록 권한을 구성한 뒤, 웹 사이트 호스팅용 버킷을 구성합니다.
1단계: Route 53에 사용자 지정 도메인 등록
등록된 도메인 이름(예: example.com
)이 아직 없으면 Route 53에 등록합니다. 자세한 내용은 Amazon Route 53 개발자 안내서의 새 도메인 등록을 참조하십시오. 도메인 이름을 등록한 후 웹 사이트 호스팅용 Amazon S3 버킷을 생성하고 구성할 수 있습니다.
2단계: 두 개의 버킷 생성
루트 도메인 및 하위 도메인의 요청을 모두 지원하려면 두 개의 버킷을 생성합니다.
-
도메인 버킷 -
example.com
-
하위 도메인 버킷 -
www.example.com
이러한 버킷 이름은 도메인 이름과 정확히 일치해야 합니다. 이 예제에서 도메인 이름은 example.com
입니다. 루트 도메인 버킷(example.com
)에서 콘텐츠를 호스팅합니다. 하위 도메인 버킷(www.example.com
)에 대한 리디렉션 요청을 만듭니다. 누군가가 브라우저에 www.example.com
을 입력하면 example.com
으로 리디렉션되고 해당 이름을 가진 Amazon S3 버킷에서 호스팅되는 콘텐츠가 표시됩니다.
웹 사이트 호스팅용 버킷 생성
아래 지침에서는 웹 사이트 호스팅용 버킷을 생성하는 방법에 대한 개요를 제공합니다. 버킷 생성에 대한 자세한 단계별 지침은 버킷 생성 섹션을 참조하십시오.
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
루트 도메인 버킷을 생성합니다.
버킷 만들기를 선택합니다.
버킷 이름(예:
example.com
)을 입력합니다.버킷을 생성하려는 리전을 선택합니다.
지리적으로 가까운 리전을 선택하면 지연 시간과 요금을 최소화하고, 규제 요건을 해결할 수 있습니다. 선택한 리전에 따라 Amazon S3 웹 사이트 엔드포인트가 결정됩니다. 자세한 내용은 웹 사이트 엔드포인트 섹션을 참조하세요.
기본 설정을 적용하고 버킷을 생성하려면 [Create]를 선택합니다.
-
하위 도메인 버킷을 생성합니다.
버킷 만들기를 선택합니다.
버킷 이름(예:
www.example.com
)을 입력합니다.버킷을 생성하려는 리전을 선택합니다.
지리적으로 가까운 리전을 선택하면 지연 시간과 요금을 최소화하고, 규제 요건을 해결할 수 있습니다. 선택한 리전에 따라 Amazon S3 웹 사이트 엔드포인트가 결정됩니다. 자세한 내용은 웹 사이트 엔드포인트 섹션을 참조하세요.
기본 설정을 적용하고 버킷을 생성하려면 [Create]를 선택합니다.
다음 단계에서는 웹 사이트 호스팅을 위한 example.com
을 구성합니다.
3단계: 웹 사이트 호스팅용 루트 도메인 버킷 구성
이 단계에서는 루트 도메인 버킷(example.com
)을 웹 사이트로 구성합니다. 이 버킷은 사용자의 웹 사이트 콘텐츠를 포함합니다. 웹 사이트 호스팅용 버킷을 구성할 때 웹 사이트 엔드포인트를 사용하여 웹 사이트에 액세스할 수 있습니다.
정적 웹 사이트 호스팅 사용 설정
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
버킷 목록에서 정적 웹 사이트 호스팅을 사용 설정하려는 버킷의 이름을 선택합니다.
-
[속성(Properties)]을 선택합니다.
-
정적 웹 사이트 호스팅(Static website hosting)에서 편집(Edit)을 선택합니다.
-
이 버킷을 사용하여 웹 사이트를 호스팅합니다.를 선택합니다.
-
정적 웹 사이트 호스팅에서 사용을 선택합니다.
-
인덱스 문서(Index document)에 인덱스 문서 이름을 입력합니다(일반적으로
index.html
).인덱스 문서 이름은 대소문자를 구분하며 S3 버킷에 업로드하려는 HTML 인덱스 문서의 파일 이름과 정확히 일치해야 합니다. 웹 사이트 호스팅용 버킷을 구성하는 경우 인덱스 문서를 지정해야 합니다. 루트 도메인이나 임의의 하위 폴더로 요청이 전송되면 Amazon S3가 이 인덱스 문서를 반환합니다. 자세한 내용은 인덱스 문서 구성 섹션을 참조하세요.
-
4XX 클래스 오류에 대한 사용자 지정 오류 문서를 제공하려면 [오류 문서(Error document)]에 사용자 지정 오류 문서 파일 이름을 입력합니다.
오류 문서 이름은 대소문자를 구분하며 S3 버킷에 업로드하려는 HTML 오류 문서의 파일 이름과 정확히 일치해야 합니다. 사용자 지정 오류 문서를 지정하지 않았는데 오류가 발생하면 Amazon S3에서 기본 HTML 오류 문서를 반환합니다. 자세한 내용은 사용자 지정 오류 문서 구성 단원을 참조하십시오.
-
(선택 사항) 고급 리디렉션 규칙을 지정하려면 리디렉션 규칙(Redirection rules)에 JSON을 입력하여 규칙을 설명합니다.
예를 들어, 요청의 특정 객체 키 이름 또는 접두사에 따라 조건부로 요청을 라우팅할 수 있습니다. 자세한 내용은 고급 조건부 리디렉션을 사용하도록 리디렉션 규칙 구성 섹션을 참조하세요.
-
[변경 사항 저장(Save changes)]을 선택합니다.
Amazon S3는 버킷에 대한 정적 웹 사이트 호스팅을 지원합니다. 페이지 하단의 정적 웹 사이트 호스팅(Static website hosting)에 버킷의 웹 사이트 엔드포인트가 표시됩니다.
-
정적 웹 사이트 호스팅에서 엔드포인트를 기록합니다.
엔드포인트는 버킷의 Amazon S3 웹 사이트 엔드포인트입니다. 버킷을 정적 웹 사이트로 구성한 후 이 엔드포인트를 사용하여 웹 사이트를 테스트할 수 있습니다.
퍼블릭 액세스 차단 설정을 편집하고 퍼블릭 읽기 액세스를 허용하는 버킷 정책을 추가한 후 웹 사이트 엔드포인트를 사용하여 웹 사이트에 액세스할 수 있습니다.
다음 단계에서는 하위 도메인(www.example.com
)을 구성하여 요청을 도메인(example.com
)으로 리디렉션합니다.
4단계: 웹 사이트 리디렉션용 하위 도메인 버킷 구성
웹 사이트 호스팅용 루트 도메인 버킷을 구성하면 도메인에 대한 모든 요청을 리디렉션하도록 하위 도메인 버킷을 구성할 수 있습니다. 이 예제에서 www.example.com
에 대한 모든 요청은 example.com
으로 리디렉션됩니다.
리디렉션 요청 구성
-
Amazon S3 콘솔의 버킷(Buckets) 목록에서 하위 도메인 버킷 이름(이 예제에서는
www.example.com
)을 선택합니다. -
[속성(Properties)]을 선택합니다.
-
정적 웹 사이트 호스팅(Static website hosting)에서 편집(Edit)을 선택합니다.
-
객체에 대한 요청 리디렉션(Redirect requests for an object)을 선택합니다.
-
대상 버킷(Target bucket) 상자에 루트 도메인(예:
example.com
)을 입력합니다. -
프로토콜(Protocol)에서 http를 선택합니다.
-
[변경 사항 저장(Save changes)]을 선택합니다.
5단계: 웹 사이트 트래픽용 로깅 구성
웹 사이트에 접속하는 방문자들의 수를 추적하려는 경우 필요에 따라 루트 도메인 버킷에 대한 로깅을 사용 설정할 수 있습니다. 자세한 내용은 서버 액세스 로깅을 사용한 요청 로깅 섹션을 참조하세요. Amazon CloudFront를 사용하여 웹 사이트 속도를 높이려는 경우 CloudFront 로깅을 사용할 수도 있습니다.
루트 도메인 버킷에 대한 서버 액세스 로깅 사용 설정
https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
정적 웹 사이트로 구성된 버킷을 생성한 리전에서 로깅용 버킷을 생성합니다(예:
logs.example.com
). -
서버 액세스 로깅 로그 파일에 대한 폴더를 생성합니다(예:
logs
). -
(선택 사항) CloudFront를 사용하여 웹 사이트 성능을 개선하려면 CloudFront 로그 파일에 대한 폴더(예:
cdn
)를 생성합니다.중요
배포를 생성 또는 업데이트하고 CloudFront 로깅을 사용 설정하면 CloudFront는 버킷 액세스 제어 목록(ACL)을 업데이트하여 버킷에 로그를 쓸 수 있는
FULL_CONTROL
권한을awslogsdelivery
계정에 부여합니다. 자세한 내용은 Amazon CloudFront 개발자 안내서의 표준 로깅 구성 및 로그 파일 액세스에 필요한 권한을 참조하세요. 로그를 저장하는 버킷이 S3 객체 소유권에 대해 버킷 소유자 적용 설정을 사용하여 ACL을 비활성화하면 CloudFront에서 버킷에 로그를 쓸 수 없습니다. 자세한 내용은 객체 소유권 제어 및 버킷에 대해 ACL 사용 중지 단원을 참조하십시오. -
버킷(Buckets) 목록에서 루트 도메인 버킷을 선택합니다.
-
[속성(Properties)]을 선택합니다.
-
서버 액세스 로깅(Server access logging)에서 편집(Edit)을 선택합니다.
-
사용을 선택합니다.
-
대상 버킷(Target bucket)에서 서버 액세스 로그의 버킷과 폴더 대상을 선택합니다.
-
폴더 및 버킷 위치를 찾습니다.
-
S3 찾아보기(Browse S3)를 선택합니다.
-
버킷 이름을 선택한 다음 로그 폴더를 선택합니다.
-
경로 선택(Choose path)을 선택합니다.
-
-
S3 버킷 경로(예:
s3://logs.example.com/logs/
)를 입력합니다.
-
-
[변경 사항 저장(Save changes)]을 선택합니다.
이제 로그 버킷에서 로그에 액세스할 수 있습니다. Amazon S3은 2시간마다 웹 사이트 액세스 로그를 로그 버킷에 기록합니다.
6단계: 인덱스 및 웹 사이트 콘텐츠 업로드
이 단계에서 인덱스 문서와 선택적 웹 사이트 콘텐츠를 루트 도메인 버킷에 업로드합니다.
버킷용 정적 웹 사이트 호스팅을 사용 설정할 때 인덱스 문서의 이름(예: index.html
)을 입력합니다. 버킷용 정적 웹 사이트 호스팅을 사용 설정한 후 인덱스 문서 이름이 있는 HTML 파일을 버킷에 업로드합니다.
인덱스 문서 구성
-
index.html
파일을 생성합니다.index.html
파일이 없으면 다음 HTML을 사용하여 파일을 생성할 수 있습니다.<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>My Website Home Page</title> </head> <body> <h1>Welcome to my website</h1> <p>Now hosted on Amazon S3!</p> </body> </html>
-
인덱스 파일을 로컬에 저장합니다.
인덱스 문서 파일 이름은 정적 웹 사이트 호스팅 대화 상자에 입력한 인덱스 문서 이름과 정확히 일치해야 합니다. 인덱스 문서 이름은 대/소문자를 구분합니다. 예를 들어 정적 웹 사이트 호스팅 대화 상자에서 인덱스 문서 이름에
index.html
을 입력하는 경우, 인덱스 문서 파일은index.html
이 아니라Index.html
이어야 합니다. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. 버킷 목록에서 정적 웹 사이트를 호스팅하는 데 사용할 버킷의 이름을 선택합니다.
-
버킷에 정적 웹 사이트 호스팅을 사용 설정하고 인덱스 문서의 정확한 이름(예:
index.html
)을 입력합니다. 자세한 내용은 웹 사이트 호스팅 사용 설정 섹션을 참조하세요.정적 웹 사이트 호스팅을 사용 설정한 후 6단계로 이동합니다.
-
버킷에 인덱스 문서를 업로드하려면 다음 중 하나를 수행합니다.
인덱스 파일을 콘솔 버킷 목록으로 끌어다 놓습니다.
업로드를 선택하고 프롬프트의 메시지에 따라 인덱스 파일을 선택하고 업로드합니다.
단계별 지침은 객체 업로드 섹션을 참조하세요.
-
(선택 사항) 버킷에 다른 웹 사이트 콘텐츠를 업로드합니다.
7단계: 오류 문서 업로드
버킷용 정적 웹 사이트 호스팅을 사용 설정할 때 오류 문서의 이름(예: 404.html
)을 입력합니다. 버킷용 정적 웹 사이트 호스팅을 사용 설정한 후 오류 문서 이름이 있는 HTML 파일을 버킷에 업로드합니다.
오류 문서 구성
-
오류 문서를 생성합니다(예:
404.html
). -
오류 문서 파일을 로컬에 저장합니다.
오류 문서 이름은 대/소문자를 구분하며 정적 웹 사이트 호스팅을 사용하도록 설정할 때 입력한 이름과 정확히 일치해야 합니다. 예를 들어 정적 웹 사이트 호스팅 대화 상자에서 오류 문서 이름에
404.html
을 입력하는 경우, 오류 문서 파일은404.html
이어야 합니다. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. 버킷 목록에서 정적 웹 사이트를 호스팅하는 데 사용할 버킷의 이름을 선택합니다.
-
버킷에 정적 웹 사이트 호스팅을 사용 설정하고 오류 문서의 정확한 이름(예:
404.html
)을 입력합니다. 자세한 내용은 웹 사이트 호스팅 사용 설정 및 사용자 지정 오류 문서 구성 단원을 참조하세요.정적 웹 사이트 호스팅을 사용 설정한 후 6단계로 이동합니다.
-
버킷에 오류 문서를 업로드하려면 다음 중 하나를 수행합니다.
오류 문서 파일을 콘솔 버킷 목록으로 끌어다 놓습니다.
업로드를 선택하고 프롬프트의 메시지에 따라 인덱스 파일을 선택하고 업로드합니다.
단계별 지침은 객체 업로드 섹션을 참조하세요.
8단계: S3 퍼블릭 액세스 차단 설정 편집
이 예제에서는 퍼블릭 액세스를 허용하도록 도메인 버킷(example.com
)에 대한 퍼블릭 액세스 차단 설정을 편집합니다.
기본적으로 Amazon S3은 계정 및 버킷에 대한 퍼블릭 액세스를 차단합니다. 버킷을 사용하여 정적 웹 사이트를 호스팅하려는 경우 이러한 단계를 사용하여 퍼블릭 액세스 차단 설정을 편집할 수 있습니다.
주의
이러한 단계를 완료하기 전에 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단을 검토하여 퍼블릭 액세스 허용과 관련된 위험을 이해하고 이에 동의하는지 확인합니다. 퍼블릭 액세스 차단 설정을 해제하여 버킷을 퍼블릭으로 만들면 인터넷상의 모든 사용자가 버킷에 액세스할 수 있습니다. 버킷에 대한 모든 퍼블릭 액세스를 차단하는 것이 좋습니다.
-
https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
정적 웹 사이트로 구성한 버킷의 이름을 선택합니다.
-
Permissions를 선택합니다.
-
퍼블릭 액세스 차단(버킷 설정)(Block public access (bucket settings))에서 편집(Edit)을 선택합니다.
-
모든 퍼블릭 액세스 차단(Block all public access)을 선택 취소하고 변경 사항 저장(Save changes)을 선택합니다.
Amazon S3은 버킷에 대한 퍼블릭 액세스 차단 설정을 끕니다. 정적 퍼블릭 웹 사이트를 생성하려면 버킷 정책을 추가하기 전에 계정에 대한 퍼블릭 액세스 차단 설정을 편집해야 할 수도 있습니다. 계정에 대한 퍼블릭 액세스 차단 설정이 현재 켜져 있는 경우 퍼블릭 액세스 차단(버킷 설정) 아래에 메모가 표시됩니다.
9단계: 버킷 정책 연결
이 예제에서는 버킷 정책을 도메인 버킷(example.com
)에 연결하여 퍼블릭 읽기 액세스를 허용합니다. 버킷 정책의 Bucket-Name
을 도메인 버킷의 이름으로 바꿉니다(예: example.com
).
S3 퍼블릭 액세스 차단 설정을 편집한 후에는 버킷 정책을 추가하여 버킷에 퍼블릭 읽기 액세스 권한을 부여할 수 있습니다. 퍼블릭 읽기 액세스 권한을 부여하면 인터넷의 모든 사용자가 버킷에 액세스할 수 있습니다.
중요
다음 정책은 하나의 예일 뿐이며 버킷의 콘텐츠에 대한 전체 액세스를 허용합니다. 이 단계를 진행하기 전에 Amazon S3 버킷에 있는 파일을 보호하려면 어떻게 해야 하나요?
-
버킷에서 버킷의 이름을 선택합니다.
-
Permissions를 선택합니다.
-
버킷 정책(Bucket Policy)에서 편집(Edit)을 선택합니다.
-
웹 사이트에 대한 퍼블릭 읽기 액세스 권한을 부여하려면 다음 버킷 정책을 복사한 후 버킷 정책 편집기에 붙여 넣습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
Bucket-Name
/*" ] } ] } -
Resource
를 버킷 이름으로 업데이트합니다.앞의 버킷 정책 예제에서
Bucket-Name
은 버킷 이름의 자리 표시자입니다. 자체 버킷에 이 버킷 정책을 사용하려면 자체 버킷 이름과 일치하도록 이 이름을 업데이트해야 합니다. -
[변경 사항 저장(Save changes)]을 선택합니다.
버킷 정책이 성공적으로 추가되었음을 나타내는 메시지가 나타납니다.
Policy has invalid resource
라는 오류가 표시되면 버킷 정책의 버킷 이름이 사용자의 버킷 이름과 일치하는지 확인합니다. 버킷 정책 추가에 대한 자세한 내용은 S3 버킷 정책을 추가하려면 어떻게 해야 하나요?를 참조하십시오.오류 메시지가 나타나고 버킷 정책을 저장할 수 없는 경우 계정 및 버킷의 퍼블릭 액세스 차단 설정에서 버킷에 대한 퍼블릭 액세스를 허용하는지 확인합니다.
다음 단계에서는 웹 사이트 엔드포인트를 파악하고 도메인 엔드포인트를 테스트할 수 있습니다.
10단계: 도메인 엔드포인트 테스트
퍼블릭 웹 사이트를 호스팅하도록 도메인 버킷을 구성한 후 엔드포인트를 테스트할 수 있습니다. 자세한 내용은 웹 사이트 엔드포인트 섹션을 참조하세요. 하위 도메인 버킷은 정적 웹 사이트 호스팅이 아닌 웹 사이트 리디렉션에 대해 설정되어 있으므로 도메인 버킷의 엔드포인트만 테스트할 수 있습니다.
참고
Amazon S3에서는 웹 사이트에 대한 HTTPS 액세스를 지원하지 않습니다. HTTPS를 사용하려는 경우 Amazon CloudFront를 사용하여 Amazon S3에서 호스팅되는 정적 웹 사이트를 제공할 수 있습니다.
자세한 내용은 CloudFront를 사용하여 Amazon S3에 호스팅된 정적 웹 사이트를 제공하려면 어떻게 해야 하나요?
-
버킷에서 버킷의 이름을 선택합니다.
-
[속성(Properties)]을 선택합니다.
-
페이지 하단의 정적 웹 사이트 호스팅(Static website hosting)에서 버킷 웹 사이트 엔드포인트(Bucket website endpoint)를 선택합니다.
인덱스 문서가 별도의 브라우저 창에서 열립니다.
다음 단계에서는 Amazon Route 53을 이용해 고객이 사용자 지정 URL을 모두 사용하여 해당 사이트를 탐색할 수 있도록 합니다.
11단계: 도메인 및 하위 도메인에 대한 별칭 레코드 추가
이 단계에서 도메인 맵 example.com
및 www.example.com
에 따른 호스팅 영역에 추가하는 별칭 레코드를 생성합니다. 별칭 레코드는 IP 주소 대신 Amazon S3 웹 사이트 엔드포인트를 사용합니다. Amazon Route 53은 별칭 레코드와 Amazon S3 버킷이 존재하는 IP 주소 간 매핑을 유지합니다. 별칭 레코드를 두 개(루트 도메인용 및 하위 도메인용) 만듭니다.
루트 도메인(example.com
)에 대한 별칭 레코드 추가
https://console.aws.amazon.com/route53/
에서 Route 53 콘솔을 엽니다. 참고
Route 53을 아직 사용하지 않은 경우 Amazon Route 53 개발자 안내서의 1단계: 도메인 등록을 참조하십시오. 설정을 완료했으면 지시 사항을 다시 시작할 수 있습니다.
Hosted Zones(호스팅 영역)를 선택합니다.
-
호스팅 영역의 목록에서 사용자의 도메인 이름과 일치하는 호스팅 영역의 이름을 선택합니다.
-
Create Record Set(레코드 세트 생성)를 선택합니다.
-
마법사로 전환을 선택합니다.
참고
빠른 생성을 사용하여 별칭 레코드를 생성하려면 트래픽을 S3 버킷으로 라우팅하도록 Route 53 구성을 참조하십시오.
-
Simple routing(단순 라우팅)을 선택하고 다음을 선택합니다.
-
Define simple record(단순 레코드 정의)를 선택합니다.
-
[레코드 이름(Record name)]에서 기본값(호스팅 영역과 도메인의 이름)을 그대로 사용합니다.
-
값/트래픽 라우팅 대상에서 Alias to S3 website endpoint(S3 웹 사이트 엔드포인트에 대한 별칭)를 선택합니다.
-
리전을 선택합니다.
-
S3 버킷을 선택합니다.
버킷 이름은 이름 상자에 나타나는 이름과 일치해야 합니다. S3 버킷 선택 목록에서 버킷 이름은 버킷이 생성된 리전의 Amazon S3 웹 사이트 엔드포인트와 함께 나타납니다(예:
s3-website-us-west-1.amazonaws.com (example.com)
).다음과 같은 경우 S3 버킷 선택이 버킷을 나열합니다.
버킷을 정적 웹 사이트로 구성한 경우
버킷 이름이 생성 중인 레코드의 이름과 동일한 경우
현재 AWS 계정에서 버킷을 생성한 경우.
버킷이 S3 버킷 선택 목록에 나타나지 않으면 버킷이 생성된 리전의 Amazon S3 웹 사이트 엔드포인트를 입력합니다(예:
s3-website-us-west-2.amazonaws.com
). Amazon S3 웹 사이트 엔드포인트의 전체 목록은 Amazon S3 웹 사이트 엔드포인트를 참조하세요. 별칭 대상에 대한 자세한 내용은 Amazon Route 53 개발자 안내서의 값/트래픽 라우팅 대상을 참조하세요. -
레코드 유형(Record type)에서 A ‐ IPv4 주소 및 일부 AWS 리소스로 트래픽 라우팅(A ‐ Routes traffic to an IPv4 address and some AWS resources)을 선택합니다.
-
대상 상태 평가에서 아니요를 선택합니다.
-
Define simple record(단순 레코드 정의)를 선택합니다.
하위 도메인(www.example.com
)에 별칭 레코드 추가
-
레코드 구성에서 단순 레코드 정의를 선택합니다.
-
하위 도메인의 레코드 이름에
www
를 입력합니다. -
값/트래픽 라우팅 대상에서 Alias to S3 website endpoint(S3 웹 사이트 엔드포인트에 대한 별칭)를 선택합니다.
-
리전을 선택합니다.
-
S3 버킷을 선택합니다(예:
s3-website-us-west-2.amazonaws.com (www.example.com)
).버킷이 S3 버킷 선택 목록에 나타나지 않으면 버킷이 생성된 리전의 Amazon S3 웹 사이트 엔드포인트를 입력합니다(예:
s3-website-us-west-2.amazonaws.com
). Amazon S3 웹 사이트 엔드포인트의 전체 목록은 Amazon S3 웹 사이트 엔드포인트를 참조하세요. 별칭 대상에 대한 자세한 내용은 Amazon Route 53 개발자 안내서의 값/트래픽 라우팅 대상을 참조하세요. -
레코드 유형(Record type)에서 A ‐ IPv4 주소 및 일부 AWS 리소스로 트래픽 라우팅(A ‐ Routes traffic to an IPv4 address and some AWS resources)을 선택합니다.
-
대상 상태 평가에서 아니요를 선택합니다.
-
Define simple record(단순 레코드 정의)를 선택합니다.
-
레코드 구성 페이지에서 레코드 생성을 선택합니다.
참고
변경 사항은 일반적으로 60초 이내에 모든 Route 53 서버로 전파됩니다. 전파가 완료되면 이 절차에서 생성한 별칭 레코드의 이름을 사용하여 트래픽을 Amazon S3 버킷으로 라우팅할 수 있습니다.
루트 도메인(example.com
)에 대한 별칭 레코드 추가
Route 53 콘솔이 새롭게 디자인되었습니다. Route 53 콘솔에서 일시적으로 이전 콘솔을 사용할 수 있습니다. 이전 Route 53 콘솔로 작업하도록 선택한 경우 아래 절차를 따릅니다.
https://console.aws.amazon.com/route53/
에서 Route 53 콘솔을 엽니다. 참고
Route 53을 아직 사용하지 않은 경우 Amazon Route 53 개발자 안내서의 1단계: 도메인 등록을 참조하십시오. 설정을 완료했으면 지시 사항을 다시 시작할 수 있습니다.
Hosted Zones(호스팅 영역)를 선택합니다.
-
호스팅 영역의 목록에서 사용자의 도메인 이름과 일치하는 호스팅 영역의 이름을 선택합니다.
-
[Create Record Set]를 선택합니다.
-
다음 값을 지정합니다.
- 이름
-
기본값(호스팅 영역과 도메인의 이름)을 그대로 사용합니다.
루트 도메인의 경우 이름 필드에 추가 정보를 입력할 필요는 없습니다.
- 유형
-
A - IPv4 주소(A – IPv4 address)를 선택합니다.
- 별칭
-
예를 선택합니다.
- 별칭 대상
-
목록의 S3 website endpoints(S3 웹 사이트 엔드포인트) 섹션에서 버킷 이름을 선택합니다.
버킷 이름은 이름 상자에 나타나는 이름과 일치해야 합니다. 별칭 대상(Alias Target) 목록에서 버킷 이름 뒤에는 버킷이 생성된 리전의 Amazon S3 웹 사이트 엔드포인트가 옵니다(예:
example.com (s3-website-us-west-2.amazonaws.com)
). 다음과 같은 경우 Alias Target(별칭 대상)에 하나의 버킷이 나타납니다.버킷을 정적 웹 사이트로 구성한 경우
버킷 이름이 생성 중인 레코드의 이름과 동일한 경우
현재 AWS 계정에서 버킷을 생성한 경우.
버킷이 [별칭 대상(Alias Target)] 목록에 나타나지 않으면 버킷이 생성된 리전의 Amazon S3 웹 사이트 엔드포인트를 입력합니다(예:
s3-website-us-west-2
). Amazon S3 웹 사이트 엔드포인트의 전체 목록은 Amazon S3 웹 사이트 엔드포인트를 참조하십시오. 별칭 대상에 대한 자세한 내용은 Amazon Route 53 개발자 안내서의 값/트래픽 라우팅 대상을 참조하십시오. - 라우팅 정책
-
기본값인 [Simple]을 수락합니다.
- 대상 상태 평가
-
기본값인 [No]를 수락합니다.
-
Create를 선택합니다.
하위 도메인(www.example.com
)에 별칭 레코드 추가
-
루트 도메인(
example.com
)에 대한 호스팅 영역에서 레코드 세트 생성을 선택합니다. -
다음 값을 지정합니다.
- 이름
-
하위 도메인에 대해
www
를 상자에 입력합니다. - 유형
-
A - IPv4 주소(A – IPv4 address)를 선택합니다.
- 별칭
-
예를 선택합니다.
- 별칭 대상
-
목록의 S3 웹 사이트 엔드포인트(S3 website endpoints) 섹션에서 이름(Name) 필드에 표시되는 동일한 버킷 이름을 선택합니다(예:
www.example.com (s3-website-us-west-2.amazonaws.com)
). - 라우팅 정책
-
기본값인 [Simple]을 수락합니다.
- 대상 상태 평가
-
기본값인 [No]를 수락합니다.
-
Create를 선택합니다.
참고
변경 사항은 일반적으로 60초 이내에 모든 Route 53 서버로 전파됩니다. 전파가 완료되면 이 절차에서 생성한 별칭 레코드의 이름을 사용하여 트래픽을 Amazon S3 버킷으로 라우팅할 수 있습니다.
12단계: 웹 사이트 테스트
웹 사이트 및 리디렉션 작업이 올바르게 작동하는지 확인합니다. 브라우저에 해당 URL을 입력합니다. 이 예제에서는 다음 URL을 이용할 수 있습니다.
-
도메인(
http://example.com
) -example.com
버킷의 인덱스 문서를 표시합니다. -
하위 도메인(
http://www.example.com
) - 요청을http://example.com
으로 리디렉션합니다.example.com
버킷의 인덱스 문서가 표시됩니다.
웹 사이트 또는 리디렉션 링크가 작동하지 않으면 다음 방법을 시도할 수 있습니다.
-
캐시 지우기 - 웹 브라우저의 캐시를 지웁니다.
-
이름 서버 확인 - 캐시를 지운 후에도 웹 페이지 및 리디렉션 링크가 작동하지 않으면 도메인의 이름 서버와 호스팅 영역의 이름 서버를 비교합니다. 이름 서버가 일치하지 않는 경우 호스팅 영역 아래에 나열된 이름과 일치하도록 도메인 이름 서버를 업데이트해야 할 수 있습니다. 자세한 내용은 도메인의 글루 레코드 및 이름 서버 추가 또는 변경을 참조하십시오.
루트 도메인과 하위 도메인을 성공적으로 테스트한 후에는 Amazon CloudFront