Amazon Simple Storage Service
개발자 안내서 (API 버전 2006-03-01)

예: 사용자 지정 도메인으로 정적 웹 사이트 설정

Amazon S3에서 정적 웹 사이트를 호스팅하는 경우를 가정합니다. 예를 들어, example.com과 같은 도메인을 등록하고 Amazon S3 콘텐츠에서 http://www.example.comhttp://example.com에 대한 요청을 수행하게 합니다. Amazon S3에 호스팅하려는 기존 정적 웹 사이트가 있거나 처음부터 시작하는 경우 이 예를 사용하여 Amazon S3에 웹 사이트를 호스팅하는 방법을 알아보십시오.

시작하기 전

이 예제의 단계에 따르려면 다음과 같이 작업을 합니다.

Amazon Route 53 – Route 53을 사용하여 도메인을 등록하고 도메인의 인터넷 트래픽을 라우팅할 위치를 정의합니다. 도메인(example.com) 및 하위 도메인(www.example.com)의 트래픽을 HTML 파일이 포함된 Amazon S3 버킷으로 라우팅하는 Route 53 별칭 레코드의 생성 방법을 설명합니다.

Amazon S3 –Amazon S3를 사용하여 버킷을 만들고 샘플 웹 사이트 페이지를 업로드해 모든 사용자가 콘텐츠를 볼 수 있도록 권한을 구성한 뒤, 웹 사이트 호스팅용 버킷을 구성합니다.

1단계: 도메인 등록

등록된 도메인 이름(예: example.com)이 아직 없으면 Route 53에 등록합니다. 자세한 내용은 Amazon Route 53 개발자 안내서새 도메인 등록을 참조하십시오. 등록된 도메인 이름이 있으면 웹 사이트 호스팅을 위한 Amazon S3 버킷을 생성 및 구성하고 웹 사이트 콘텐츠를 업로드합니다.

2단계: 버킷의 생성과 구성, 데이터 업로드

example.com과 같은 루트 도메인, www.example.com과 같은 하위 도메인 양쪽의 요청을 모두 지원하려면 두 개의 버킷을 생성합니다. 하나의 버킷이 콘텐츠를 포함합니다. 요청으로 리디렉션하도록 다른 버킷을 구성합니다.

2.1단계: 두 개의 버킷 생성

버킷 이름을 사용자가 호스팅할 웹 사이트 이름과 일치시킵니다. 예를 들어, Amazon S3에 사용자의 example.com 웹 사이트를 호스팅하려면 이름이 example.com인 버킷을 만들어야 합니다. www.example.com에서 웹 사이트를 호스팅하려면 버킷 이름을 www.example.com로 해야 합니다. 이 예에서 사용자의 웹 사이트는 example.comwww.example.com의 요청을 모두 지원합니다.

이 단계에서는 AWS 계정 자격 증명으로 Amazon S3 콘솔에 로그인해 다음과 같이 두 개의 버킷을 만듭니다.

  • example.com

  • www.example.com

참고

도메인과 마찬가지로 하위 도메인에도 고유한 S3 버킷이 있어야 하며 버킷과 하위 도메인의 이름이 정확히 동일해야 합니다. 이 예에서는 www.example.com 하위 도메인을 생성하고 있으므로 www.example.com이라는 S3 버킷도 생성해야 합니다.

버킷을 생성하고 호스팅용 웹 사이트 콘텐츠를 업로드하는 방법

  1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 사용자의 도메인 이름 및 하위 도메인과 일치하는 두 개의 버킷을 생성합니다. 예를 들어, example.comwww.example.com이 있습니다.

    단계별 지침은 S3 버킷을 생성하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오.

  3. 웹 사이트 데이터를 example.com 버킷에 업로드합니다.

    루트 도메인 버킷(example.com)의 콘텐츠를 호스팅하고 www.example.com에 대한 요청은 루트 도메인 버킷으로 리디렉션합니다. 어느 버킷에서든 콘텐츠를 저장할 수 있습니다. 이 예에서는 콘텐츠를 example.com 버킷에 호스팅합니다. 콘텐츠는 텍스트 파일, 가족 사진, 동영상 등 원하는 것은 무엇이든 가능합니다. 웹 사이트가 아직 만들어지지 않은 경우 이 예에서 사용할 파일이 하나 필요합니다. 어떤 파일이든 업로드할 수 있습니다. 예를 들어, 다음 HTML을 사용해 파일을 만들고 버킷에 업로드할 수 있습니다. 일반적으로 웹 사이트 홈페이지의 파일 이름은 index.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>

    단계별 지침은 S3 버킷에 객체를 업로드하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오.

  4. 웹 사이트를 호스팅하려면 버킷에 퍼블릭 읽기 액세스 권한이 있어야 합니다. 전 세계 누구든 이 버킷에 대한 읽기 액세스 권한을 갖게 됩니다. 퍼블릭 읽기 액세스 권한을 부여하려면 example.com을 사용자의 버킷 이름으로 대체해 다음 버킷 정책을 example.com 버킷에 연결합니다. 버킷 정책 연결에 대한 단계별 지침은 S3 버킷 정책을 추가하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오.

    { "Version":"2012-10-17", "Statement":[{ "Sid":"PublicReadGetObject", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::example.com/*" ] } ] }

    이제 example.comwww.example.com, 두 개의 버킷이 있으므로 example.com 버킷에 웹 사이트 콘텐츠를 업로드합니다. 다음 단계에서는 사용자의 example.com 버킷으로 요청이 리디렉션하도록 www.example.com을 구성합니다. 요청을 리디렉션함으로써 웹 사이트 콘텐츠의 사본을 하나만 유지할 수 있습니다. 브라우저에 www를 입력하는 방문자와 루트 도메인만 지정하는 방문자는 example.com 버킷의 동일한 웹 사이트 콘텐츠로 라우팅됩니다. 

2.2단계: 웹 사이트 호스팅용 버킷 구성

웹 사이트 호스팅용 버킷을 구성할 때, Amazon S3에서 할당한 버킷 웹 사이트 엔드포인트를 사용해 웹 사이트에 액세스할 수 있습니다.

이 단계에서는 웹 사이트 호스팅을 위한 두 개의 버킷을 구성합니다. 우선, example.com을 웹 사이트로 구성한 다음 www.example.com이 모든 요청이 example.com 버킷으로 리디렉션되도록 구성합니다.

웹 사이트 호스팅용 버킷을 구성하는 방법

  1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. [Bucket name] 목록에서 정적 웹 사이트 호스팅을 활성화하려는 버킷의 이름을 선택합니다.

  3. [Properties]를 선택합니다.

  4. [Static website hosting]을 선택합니다.

  5. 웹 사이트 호스팅을 위해 example.com 버킷을 구성합니다. Index Document 상자에, 인덱스 페이지의 이름을 입력합니다.

  6. Save를 선택합니다.

2.3단계: 웹 사이트 리디렉션 구성

버킷을 웹 사이트 호스팅용으로 구성했으니 이제 www.example.com에 대한 모든 요청을 example.com으로 리디렉션하도록 www.example.com 버킷을 구성합니다.

www.example.com의 요청을 example.com로 리디렉션하려면

  1. Amazon S3 콘솔의 [Buckets] 목록에서 원하는 버킷(이 예에서는 www.example.com)을 선택합니다.

  2. [Properties]를 선택합니다.

  3. [Static website hosting]을 선택합니다.

  4. [Redirect requests]를 선택합니다. [Target bucket or domain] 상자에 example.com을 입력합니다.

  5. [Save]를 선택합니다.

2.4단계: 웹 사이트 트래픽용 로깅 구성

선택적으로 로깅을 구성하여 웹 사이트에 접속하는 방문자들의 수를 추적할 수 있습니다. 이렇게 하기 위해 루트 도메인 버킷에 대한 로깅을 활성화할 수 있습니다. 자세한 내용은 (선택 사항) 웹 트래픽 로깅 구성 섹션을 참조하십시오.

2.5단계: 엔드포인트 및 리디렉션 테스트

웹 사이트를 테스트하려면 브라우저에 엔드포인트 URL을 입력합니다. 요청이 리디렉션되고 브라우저에 example.com에 대한 인덱스 문서가 표시됩니다.

다음 단계에서는 Amazon Route 53으로 고객이 모든 URL에서 해당 사이트를 탐색할 수 있도록 합니다.

3단계: example.com과 www.example.com의 별칭 레코드 추가

이 단계에서 도메인에 따른 호스팅 영역에 추가하는 별칭 레코드는 S3 버킷에 상응하는 example.comwww.example.com을 매핑합니다. 별칭 레코드는 IP 주소 대신 Amazon S3 웹 사이트 엔드포인트를 사용합니다. Amazon Route 53은(는) 별칭 레코드와 Amazon S3 버킷이 존재하는 IP 주소 간 매핑을 유지합니다.

트래픽을 웹 사이트로 라우팅하려면

  1. https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 엽니다.

  2. 탐색 창에서 [Hosted zones]를 선택합니다.

    참고

    도메인을 등록할 때 Amazon Route 53이 같은 이름의 호스팅 영역을 자동으로 생성했습니다. 호스팅 영역에는 Route 53으로 도메인의 트래픽을 라우팅할 방법에 관한 정보가 포함되어 있습니다.

  3. 호스팅 영역 목록에서 도메인의 이름을 선택합니다.

  4. [Create Record Set]를 선택합니다.

    참고

    각각의 레코드에는 하나의 도메인(example.com) 또는 그 하위 도메인(www.example.com)의 트래픽을 라우팅하려는 방법에 관한 정보가 포함되어 있습니다. 레코드는 도메인의 호스팅 영역에 저장됩니다.

  5. 다음 값을 지정합니다.

    이름

    생성할 첫 번째 레코드에는 기본값(호스팅 영역과 도메인의 이름)을 그대로 사용합니다. 이렇게 하면 도메인과 이름이 같은 버킷으로 인터넷 트래픽이 라우팅됩니다.

    이 단계를 반복하여 하위 도메인의 두 번째 레코드를 생성합니다. 두 번째 레코드에 www를 입력합니다. 이렇게 하면 인터넷 트래픽이 www.example.com 버킷으로 라우팅됩니다.

    유형

    [A – IPv4 address]를 선택합니다.

    별칭

    [Yes]를 선택합니다.

    별칭 대상

    Amazon S3 버킷을 생성한 리전의 이름을 입력합니다. Amazon Web Services 일반 참조 AWS 리전 및 엔드포인트 장에 있는 Amazon Simple Storage Service 웹 사이트 엔드포인트 표에 웹 사이트 엔드포인트 열의 해당 값을 사용하십시오.

    참고

    두 레코드의 [Alias Target]에 동일한 값을 지정해야 합니다. Route 53은 레코드 이름에 기반하여 트래픽을 라우팅할 버킷을 파악합니다.

    라우팅 정책

    기본값인 [Simple]을 수락합니다.

    대상 상태 평가

    기본값인 [No]를 수락합니다.

  6. [Create]를 선택합니다.

  7. www.example.com의 경우 4단계부터 6단계까지 반복하여 레코드를 생성합니다.

다음 스크린샷은 그림과 같이 example.com에 대한 별칭 레코드를 보여 줍니다. www.example.com에 대한 별칭 레코드도 생성해야 합니다.

참고

리소스 레코드 집합의 생성, 변경, 삭제가 Route 53 DNS 서버에 적용되려면 시간이 걸립니다. 일반적으로 모든 Route 53 이름 서버로 변경 사항이 전파되는데 몇 분이 걸립니다. 30분까지 걸리는 경우는 거의 없습니다.

4단계: 테스트

웹 사이트가 정확하게 운영되는지 확인하려면 브라우저에서 다음 URL을 시도합니다.

  • http://example.comexample.com 버킷의 인덱스 문서를 표시합니다.

  • http://www.example.com – 요청을 http://example.com로 리디렉션합니다.

예상 동작을 확인하기 위해 웹 브라우저의 캐시를 지워야 하는 경우도 있습니다.