메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

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

Amazon S3에서 정적 웹 사이트를 호스팅하는 경우를 가정합니다. 예를 들어, example.com과 같은 도메인을 등록하고 Amazon S3 콘텐츠에서 http://www.example.comhttp://example.com에 대한 요청을 수행하게 합니다.

이 예는 Amazon S3에 호스팅하려는 기존 정적 웹 사이트가 있거나 처음부터 시작하는 경우 Amazon S3 웹 사이트 호스팅하는 데 도움이 됩니다.

시작하기 전

이 예를 따라 단계를 진행하려면 다음과 같이 작업을 합니다.

도메인 등록자 선택- example.com과 같이 등록된 도메인 이름이 없는 경우, 원하는 등록자로 도메인 이름을 만들어 등록합니다. 일반적으로 소액의 연간 수수료를 지불하면 도메인을 등록할 수 있습니다. 도메인 이름 등록 절차에 대한 정보는 등록자의 웹 사이트를 참조하십시오.

Amazon S3-Amazon S3를 사용하여 버킷을 만들고 샘플 웹 사이트 페이지를 업로드해 모든 사용자가 콘텐츠를 볼 수 있도록 권한을 구성한 뒤, 웹 사이트 호스팅용 버킷을 구성합니다. 이 예에서는 http://www.example.comhttp://example.com 모두에 대한 요청을 허용하므로 두 개의 버킷을 생성합니다. 단, 콘텐츠는 한 버킷에서만 호스팅합니다. 다른 Amazon S3 버킷이 콘텐츠를 호스팅하는 버킷으로 요청을 리디렉션하게 구성합니다.

Amazon Route 53-Amazon Route 53를 DNS 공급자로 구성합니다. 도메인에 따라 Amazon Route 53에 호스팅 영역을 생성하고 해당 DNS 레코드를 구성합니다. 기존 DNS 공급자에서 전환하는 경우, 도메인에 대한 모든 DNS 레코드를 전송했는지 확인합니다.

이 예를 살펴 보려면 도메인, DNS(도메인 이름 시스템), CNAME 레코드, A 레코드에 대한 기본적인 지식이 필요할 수 있습니다. 이러한 개념에 대한 상세 설명은 본 가이드의 범위를 벗어나므로 도메인 등록자에게 필요한 기본 정보만 제공해 드립니다.

참고

이 예의 모든 단계에서는 example.com을 도메인 이름으로 사용합니다. 이 도메인 이름을 사용자가 등록한 이름으로 바꿉니다.

1단계: 도메인 등록

이미 등록된 도메인이 있다면 이 단계를 생략할 수 있습니다. 웹 사이트 호스팅이 처음인 경우, 선택한 등록자로 도메인(예: example.com)을 등록하는 것부터 시작합니다.  

등록자를 선택한 후, 등록자 웹 사이트의 설명에 따라 도메인 이름을 등록합니다. 도메인 이름을 등록할 수 있는 등록자 웹 사이트 목록에 대해서는 ICANN.org를 참조하십시오.

도메인 이름을 등록하고 나면 웹 사이트 호스팅을 위한 Amazon S3 버킷을 만들어 구성하고 웹 사이트 콘텐츠를 업로드합니다.

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

이 예에서는 example.com과 같은 루트 도메인, www.example.com과 같은 하위 도메인 양쪽의 요청을 모두 지원할 두 개의 버킷을 생성합니다. 한 버킷은 콘텐츠를 포함하고 다른 버킷은 요청을 리디렉션하도록 구성합니다. Amazon S3 콘솔로 다음 작업을 수행하고 웹 사이트를 만들어 구성합니다.

  1. 두 개의 버킷을 만듭니다.

  2. 웹 사이트 호스팅용 버킷 구성

  3. Amazon S3이 제공하는 버킷 웹 사이트 엔드포인트를 테스트합니다.

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

참고

이 예를 따라 버킷을 만들려면 다음 단계를 수행합니다. 이 예를 진행하면서, example.com을 사용자가 등록한 도메인 이름으로 대체합니다.

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

  2. 사용자의 도메인 이름과 일치하는 두 개의 버킷을 생성합니다. 버킷 이름 중 하나는 하위 도메인 www, 예를 들어 example.comwww.example.com를 포함해야 합니다.

    자세한 단계별 방법은 Amazon Simple Storage Service 콘솔 사용 설명서버킷 생성을 참조하십시오.

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

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

    Copy
    <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>

    자세한 단계별 방법은 Amazon Simple Storage Service 콘솔 사용 설명서Amazon S3에 객체 업로드를 참조하십시오.

  4. 객체에 공개 액세스가 가능하도록 객체에 대한 권한을 구성합니다.

    example.com을 사용자의 버킷 이름으로 대체해 다음 버킷 정책을 example.com 버킷에 연결합니다. 버킷 정책 연결에 대한 자세한 단계별 설명은 Amazon Simple Storage Service 콘솔 사용 설명서버킷 권한 편집을 참조하십시오.

    Copy
    { "Version":"2012-10-17", "Statement":[{ "Sid":"AddPerm", "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 버킷으로 리디렉션되도록 구성합니다.

웹 사이트 호스팅을 위해 example.com 버킷을 구성하려면

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

    자세한 단계별 방법은 Amazon Simple Storage Service 콘솔 사용 설명서버킷 웹 사이트 구성 관리를 참조하십시오. 웹 사이트 엔드포인트의 URL을 적어 둡니다. 잠시 후 필요한 정보입니다.

  2. 웹 사이트를 테스트하려면 브라우저에 엔드포인트 URL을 입력합니다.

    브라우저가 인덱스 문서 페이지를 표시합니다. 다음은 www.example.com 버킷이 www.example.com에 대한 모든 요청을 example.com으로 리디렉션하도록 구성합니다.

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

  1. Amazon S3 콘솔의 Bucket 목록에서 [www.example.com]을 마우스 오른쪽 버튼으로 클릭한 뒤 [Properties]를 클릭합니다.

  2. Static Website Hosting에서 [Redirect all requests to another host name]을 클릭합니다. Redirect all requests 상자에 example.com을 입력합니다.

  3. 웹 사이트를 테스트하려면 브라우저에 엔드포인트 URL을 입력합니다.

    요청이 리디렉션되고 브라우저에 example.com에 대한 인덱스 문서가 표시됩니다.

모든 인터넷 사용자는 다음 Amazon S3 버킷 웹 사이트 엔드포인트에 액세스할 수 있습니다.

example.com.s3-website-us-east-1.amazonaws.com

http://www.example.com.s3-website-us-east-1.amazonaws.com

이제 구성을 추가해 이전 단계에서 등록한 도메인의 요청을 처리합니다. 예를 들어, 도메인 example.com을 등록한 경우 다음 URL의 요청을 처리합니다.

http://example.com

http://www.example.com

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

3단계: Amazon Route 53 호스팅 영역의 생성과 구성

이제 Amazon Route 53을 사용자의 DNS(도메인 이름 시스템) 공급자로 구성합니다. example.com과 같은 루트 도메인의 콘텐츠를 처리하려면 Amazon Route 53을 사용합니다. 호스팅 영역을 생성해 사용자의 도메인과 연결된 DNS 레코드를 저장합니다.

  • 도메인 example.com을 example.com 버킷으로 매핑하는 별칭 레코드. 이것은 2.2단계에서 웹 사이트 엔드포인트로 구성한 버킷입니다.

  • 하위 도메인 www.example.com을 www.example.com 버킷으로 매핑하는 또 다른 별칭 레코드. 2.2단계에서 example.com 버킷으로 요청을 리디렉션하도록 구성한 버킷입니다.

3.1단계: 도메인에 따른 호스팅 영역 생성

https://console.aws.amazon.com/route53의 Amazon Route 53 콘솔로 이동한 뒤 도메인에 대한 호스팅 영역을 생성합니다. 자세한 방법은 http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/호스팅 영역 생성을 참조하십시오.

다음 예는 example.com 도메인에 따라 생성된 호스팅 영역을 보여 줍니다. 이 도메인에 대한 Amazon Route 53 NS(name servers)를 적어 둡니다. 잠시 후 필요한 정보입니다.

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

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

자세한 단계별 방법은 Amazon Route 53 개발자 안내서Creating an Alias Resource Record Set을 참조하십시오.

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

호스팅 영역을 활성화하려면, Amazon Route 53을 도메인 example.com에 대한 DNS 서버로 사용해야 합니다. 전환하기 전에 기존 웹 사이트를 Amazon S3로 이동하는 경우, 도메인 example.com와 연결된 DNS 레코드를 도메인에 따라 Amazon Route 53에 생성된 호스팅 영역으로 전송합니다. 새 웹 사이트를 생성하려면 바로 4단계로 갑니다.

참고

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

3.3단계: 기존 DNS 공급자에서 Amazon Route 53로 기타 DNS 레코드 전송

DNS 공급자를 Amazon Route 53로 변경하기 전에 먼저 MX 레코드, CNAME 레코드, A 레코드 등 현재의 DNS 공급자에 남아 있는 DNS 레코드를 모두 Amazon Route 53로 전송합니다. 다음 레코드는 전송할 필요가 없습니다.

  • NS 레코드- 이 레코드를 전송하는 대신 Amazon Route 53에서 제공하는 이름 서버 값으로 해당 값을 교체합니다.

  • SOA 레코드- Amazon Route 53에서 호스팅 영역에 있는 이 레코드를 기본값으로 제공합니다.

필요한 DNS 레코드의 마이그레이션은 도메인 이름 하에 호스팅되는 모든 기존 서비스의 계속적인 가용성을 확보하는 중요한 단계입니다.

4단계: DNS 공급자인 Amazon Route 53(으)로 전환

DNS 공급자를 Amazon Route 53로 전환하려면, 기존 DNS 공급자로 이동해 Amazon Route 53에서 위임 세트의 이름 서버를 사용하기 위해 NS(이름 서버) 레코드를 업데이트해야 합니다.

DNS 공급자 사이트로 이동한 뒤 Amazon Route 53 콘솔 스크린샷에서와 같이 호스팅 영역의 위임 세트 값으로 NS 레코드를 업데이트합니다. 자세한 내용은 Amazon Route 53 개발자 안내서Updating Your DNS Service's Name Server Records을 참조하십시오.

Amazon Route 53로 전송 완료 시, 도메인의 이름 서버가 확실히 변경되었는지 확인하는 데 사용할 수 있는 도구가 있습니다. Linux 컴퓨터에서는 dig DNS 조회 유틸리티를 사용할 수 있습니다. 예를 들면 이 dig 명령은

Copy
dig +recurse +trace www.example.com any

다음 출력을 반환합니다(부분 출력만 표시). 해당 출력은 example.com 도메인에 대해 생성된 Amazon Route 53 호스팅 영역의 이름 서버와 동일한 네 개의 이름 서버를 보여 줍니다.

Copy
... example.com. 172800 IN NS ns-9999.awsdns-99.com. example.com. 172800 IN NS ns-9999.awsdns-99.org. example.com. 172800 IN NS ns-9999.awsdns-99.co.uk. example.com. 172800 IN NS ns-9999.awsdns-99.net. www.example.com. 300 IN CNAME www.example.com.s3-website-us-east-1.amazonaws.com. ...

5단계: 테스트

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

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

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

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