Amazon S3 버킷의 정적 웹 사이트에 대한 도메인 사용 - Amazon Route 53

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3 버킷의 정적 웹 사이트에 대한 도메인 사용

이 시작하기 자습서는 다음 작업의 수행 방법을 보여줍니다.

  • example.com 등의 도메인 이름 등록

  • Amazon S3 버킷을 만들고 웹 사이트를 호스팅하도록 버킷 구성

  • 샘플 웹 사이트를 만들고 S3 버킷에 해당 파일을 저장

  • 트래픽을 새 웹 사이트로 라우팅하도록 Amazon Route 53 구성

완료되면 브라우저를 열고 도메인 이름을 입력하여 웹 사이트를 볼 수 있습니다.

참고

기존 도메인을 Route 53로 이전할 수도 있지만 새 도메인을 등록하는 것보다 본 프로세스가 복잡하고 시간이 더 많이 걸립니다. 자세한 내용은 도메인 등록을 Amazon Route 53으로 이전하기 단원을 참조하십시오.

사전 조건

시작하기 전에 먼저 Amazon Route 설정 53의 단계를 완료해야 합니다.

1단계: 도메인 등록

example.com과 같은 도메인 이름을 사용하려면 사용되고 있지 않은 도메인 이름을 찾아 등록해야 합니다. 도메인 이름을 등록하면 일반적으로 1년 동안 인터넷 어디서나 도메인 이름을 독점적으로 사용할 수 있습니다. 기본적으로 매년 말에 도메인 이름이 자동으로 갱신되지만 자동 갱신은 꺼둘 수 있습니다. 자세한 내용은 새 도메인 등록 단원을 참조하십시오.

2단계: 루트 도메인에 대한 S3 버킷 생성

Amazon S3를 사용하면 어디서든 인터넷에 데이터를 저장하고 조회할 수 있습니다. 데이터를 체계화하려면 버킷을 만들고 AWS Management Console을 사용하여 버킷에 데이터를 업로드합니다. Amazon S3를 사용하여 버킷에 정적 웹 사이트를 호스팅할 수 있습니다. 다음 절차에서는 버킷 생성 방법을 설명합니다.

루트 도메인에 대한 S3 버킷을 생성하려면
  1. 에서 Amazon S3 콘솔을 엽니다 https://console.aws.amazon.com/s3/.

  2. 버킷 생성을 선택합니다.

  3. 다음 값을 입력합니다.

    버킷 이름

    example.com 같은 도메인 이름을 입력합니다.

    리전

    대부분의 사용자와 가장 가까운 리전을 선택합니다.

    선택한 리전을 적어 둡니다. 이 프로세스의 뒷부분에서 이 정보가 필요합니다.

  4. 기본 설정을 적용하고 버킷을 생성하려면 버킷 생성을 선택합니다.

3단계: 선택 사항: 하위 도메인에 대한 다른 S3 버킷 생성

앞의 절차에서 example.com 같은 도메인 이름의 버킷을 만들었습니다. 이로써 사용자들이 example.com 같은 도메인 이름을 사용하여 웹 사이트에 액세스할 수 있습니다.

사용자도 www를 사용할 수 있게 하려는 경우your-domain-namewww.example.com과 같이 샘플 웹 사이트에 액세스하려면 두 번째 S3 버킷을 생성하십시오. 첫 번째 버킷으로 트래픽을 라우팅하도록 두 번째 버킷을 구성합니다.

www용 S3 버킷을 만들려면 your-domain-name
  1. 버킷 생성을 선택합니다.

  2. 다음 값을 입력합니다.

    버킷 이름

    www를 입력하세요.your-domain-name. 예를 들어 example.com이라는 도메인 이름을 등록한 경우 www.example.com을 입력합니다.

    리전

    첫 번째 버킷을 생성한 리전과 동일한 리전을 선택합니다.

  3. 기본 설정을 적용하고 버킷을 생성하려면 [Create]를 선택합니다.

4단계: 웹 사이트 호스팅용 루트 도메인 버킷 설정

이제 S3 버킷이 생겼으므로 웹 사이트 호스팅에 대한 버킷을 구성할 수 있습니다.

S3 버킷에서 웹 사이트 호스팅을 허용하려면
  1. 에서 Amazon S3 콘솔을 엽니다 https://console.aws.amazon.com/s3/.

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

  3. 속성을 선택합니다.

  4. 정적 웹 사이트 호스팅에서 사용을 선택합니다.

  5. 이 버킷을 사용하여 웹 사이트를 호스팅합니다.를 선택합니다.

  6. 정적 웹 사이트 호스팅에서 사용을 선택합니다.

  7. 인덱스 문서(Index document)에 인덱스 문서 이름을 입력합니다(일반적으로 index.html).

    인덱스 문서 이름은 대소문자를 구분하며 S3 버킷에 업로드하려는 HTML 인덱스 문서의 파일 이름과 정확히 일치해야 합니다. 웹 사이트 호스팅용 버킷을 구성하는 경우 인덱스 문서를 지정해야 합니다. 루트 도메인이나 임의의 하위 폴더로 요청이 전송되면 Amazon S3가 이 인덱스 문서를 반환합니다.

  8. (선택 사항) 4XX 클래스 오류에 대한 사용자 정의 오류 문서를 제공하려면 오류 문서(Error document)에 사용자 정의 오류 문서 파일 이름을 입력합니다.

    사용자 지정 오류 문서를 지정하지 않고 오류가 발생하는 경우 Amazon S3는 기본 HTML 오류 문서를 반환합니다.

  9. (선택 사항) 고급 리디렉션 규칙을 지정하려면 리디렉션 규칙에 규칙 설명을 입력합니다XML.

    자세한 내용은 Amazon Simple Storage Service 사용 설명서고급 조건부 리디렉션 구성을 참조하십시오.

  10. Save changes(변경 사항 저장)를 선택합니다.

  11. 정적 웹 사이트 호스팅에서 엔드포인트를 기록합니다.

    엔드포인트는 버킷의 Amazon S3 웹 사이트 엔드포인트입니다. 버킷을 정적 웹 사이트로 구성한 후 이 엔드포인트를 사용하여 9단계: 도메인 엔드포인트 테스트에 표시된 대로 웹 사이트를 테스트할 수 있습니다.

    퍼블릭 액세스의 설정을 편집하고 퍼블릭 읽기 액세스를 허용하는 버킷 정책을 추가한 후 웹 사이트 엔드포인트를 사용하여 웹 사이트에 액세스할 수 있습니다.

5단계: (선택 사항): 웹 사이트 리디렉션에 대한 하위 도메인 버킷 설정

웹 사이트 호스팅용 루트 도메인 버킷을 구성하면 루트 도메인에 대한 모든 요청을 리디렉션하도록 하위 도메인 버킷을 선택적으로 구성할 수 있습니다. 예를 들어, 모든 요청을 구성하여 www.example.comexample.com으로 리디렉션되게 할 수 있습니다.

리디렉션을 구성하려면
  1. Amazon S3 콘솔의 버킷(Buckets) 목록에서 하위 도메인 버킷 이름(예: www.example.com)을 선택합니다.

  2. [속성(Properties)]을 선택합니다.

  3. 정적 웹 사이트 호스팅(Static website hosting)에서 편집(Edit)을 선택합니다.

  4. 객체에 대한 요청 리디렉션(Redirect requests for an object)을 선택합니다.

  5. 대상 버킷(Target bucket) 상자에 루트 도메인(예: example.com)을 입력합니다.

  6. 프로토콜(Protocol)에서 http를 선택합니다.

  7. Save changes(변경 사항 저장)를 선택합니다.

6단계: 인덱스를 업로드하여 웹 사이트 콘텐츠 생성

버킷용 정적 웹 사이트 호스팅을 허용할 때 인덱스 문서의 이름(예: index.html)을 입력합니다. 버킷에 정적 웹 사이트 호스팅을 허용한 후에는 이 인덱스 문서 이름을 가진 HTML 파일을 버킷에 업로드합니다.

인덱스 파일을 업로드하려면
  1. 이 자습서의 간단한 한 페이지 웹 사이트로 사용할 수 있는 다음 예제 텍스트를 복사한 다음 텍스트 편집기에 붙여넣고 index.html로 저장합니다.

    <html> <head> <title>Amazon Route 53 Getting Started</title> </head> <body> <h1>Routing Internet Traffic to an Amazon S3 Bucket for Your Website</h1> <p>For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html">Getting Started with Amazon Route 53</a> in the <emphasis>Amazon Route 53 Developer Guide</emphasis>.</p> </body> </html>
  2. 버킷 목록에서 정적 웹 사이트 호스팅을 사용 설정하려는 버킷의 이름을 선택합니다.

  3. Amazon S3 콘솔에서 S3 버킷에서 웹 사이트 호스팅을 허용하려면 절차를 통해 생성한 버킷의 이름을 선택합니다(링크된 버킷 이름 클릭).

  4. 업로드파일 추가를 선택하고 저장한 위치에서 index.html을 선택한 다음 업로드를 선택합니다.

  5. 문서를 생성했는데 오류가 발생한 경우(예: 404.html) 3단계에서 5단계를 따라 해당 오류를 업로드합니다.

7단계: S3 퍼블릭 액세스 차단 설정 편집

기본적으로 Amazon S3은 계정 및 버킷에 대한 퍼블릭 액세스를 차단합니다. 버킷을 사용하여 정적 웹 사이트를 호스팅하려는 경우 이러한 단계를 사용하여 퍼블릭 액세스 설정을 편집합니다.

주의

이 단계를 완료하기 전에 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단을 검토하여 퍼블릭 액세스 허용과 관련된 위험을 이해하고 이에 동의하는지 확인하세요. 퍼블릭 액세스 차단 설정을 해제하여 버킷을 퍼블릭으로 만들면 인터넷상의 모든 사용자가 버킷에 액세스할 수 있습니다. 버킷에 대한 모든 퍼블릭 액세스를 차단하는 것이 좋습니다.

트래픽을 웹 사이트로 라우팅하려면
  1. 에서 Amazon S3 콘솔을 엽니다 https://console.aws.amazon.com/s3/.

  2. 정적 웹 사이트로 구성한 버킷의 이름을 선택합니다.

  3. Permissions를 선택합니다.

  4. 퍼블릭 액세스 차단(버킷 설정)(Block public access (bucket settings))에서 편집(Edit)을 선택합니다.

  5. 모든 퍼블릭 액세스 차단을 선택 취소하고 변경 사항 저장을 선택합니다.

Amazon S3은 버킷에 대한 퍼블릭 액세스 차단 설정을 해제합니다. 정적 퍼블릭 웹 사이트를 생성하려면 버킷 정책을 추가하기 전에 계정에 대한 퍼블릭 액세스 차단 설정을 편집해야 할 수도 있습니다. 퍼블릭 액세스 차단에 대한 계정 설정이 현재 설정되어 있는 경우 퍼블릭 액세스 차단(버킷 설정)(Block public access (bucket settings)) 아래에 메모가 표시됩니다.

8단계: 버킷 정책 연결

Amazon S3 퍼블릭 액세스 차단 설정을 편집한 후에는 버킷 정책을 추가하여 버킷 객체에 퍼블릭 읽기 액세스 권한을 부여할 수 있습니다. 퍼블릭 읽기 액세스 권한을 부여하면 인터넷의 모든 사용자가 버킷에 액세스할 수 있습니다.

주의

이 단계를 완료하기 전에 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단을 검토하여 퍼블릭 액세스 허용과 관련된 위험을 이해하고 이에 동의하는지 확인하세요. 퍼블릭 액세스 차단 설정을 해제하여 버킷을 퍼블릭으로 만들면 인터넷상의 모든 사용자가 버킷에 액세스할 수 있습니다. 버킷에 대한 모든 퍼블릭 액세스를 차단하는 것이 좋습니다.

트래픽을 웹 사이트로 라우팅하려면
  1. 에서 Amazon S3 콘솔을 엽니다 https://console.aws.amazon.com/s3/.

  2. 버킷에서 버킷의 이름을 선택합니다.

  3. Permissions를 선택합니다.

  4. 버킷 정책(Bucket Policy)에서 편집(Edit)을 선택합니다.

  5. 다음 버킷 정책을 복사하여 텍스트 편집기에 붙여 넣습니다. 이 정책은 인터넷 상의 모든 사람에게 도메인 이름("arn:aws:s3:::your-domain-name/*")과 연결된 S3 버킷의 파일("Action":["s3:GetObject"])을 가져올 수 있는 ("Principal":"*") 권한을 부여합니다.

    { "Version":"2012-10-17", "Statement":[{ "Sid":"AddPerm", "Effect":"Allow", "Principal":"*", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::your-domain-name/*" ] }] }
  6. 의 값을 Resource ~로 업데이트하십시오.your-domain-name예를 들어example.com.

  7. Save changes(변경 사항 저장)를 선택합니다.

9단계: 도메인 엔드포인트 테스트

퍼블릭 웹 사이트를 호스팅하도록 도메인 버킷을 구성한 후 엔드포인트를 테스트할 수 있습니다. 하위 도메인 버킷은 정적 웹 사이트 호스팅이 아닌 웹 사이트 리디렉션에 대해 설정되어 있으므로 도메인 버킷의 엔드포인트만 테스트할 수 있습니다.

참고

Amazon S3는 웹 사이트에 HTTPS 대한 액세스를 지원하지 않습니다. 를 HTTPS 사용하려는 경우 Amazon을 사용하여 Amazon CloudFront S3에 호스팅된 정적 웹 사이트를 제공할 수 있습니다.

자세한 HTTPS내용은 시청자 간 통신 요구 및 을 참조하십시오CloudFront.

  1. 버킷에서 버킷의 이름을 선택합니다.

  2. [속성(Properties)]을 선택합니다.

  3. 페이지 하단의 정적 웹 사이트 호스팅(Static website hosting)에서 버킷 웹 사이트 엔드포인트(Bucket website endpoint)를 선택합니다.

    인덱스 문서가 별도의 브라우저 창에서 열립니다.

10단계: 도메인의 DNS 트래픽을 웹사이트 버킷으로 라우팅

이제 S3 버킷에 1페이지짜리 웹 사이트가 생겼습니다. 도메인의 인터넷 트래픽을 S3 버킷으로 라우팅하려면 다음 절차를 수행합니다.

트래픽을 웹 사이트로 라우팅하려면
  1. 에서 Route 53 콘솔을 엽니다 https://console.aws.amazon.com/route53/.

  2. 탐색 창에서 호스팅 영역(Hosted zones)을 선택합니다.

    참고

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

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

  4. Create Record Set(레코드 세트 생성)를 선택합니다.

    참고

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

  5. 마법사로 전환을 선택합니다.

  6. 단순 라우팅을 선택하고 다음을 선택합니다.

  7. Define simple record(단순 레코드 정의)를 선택합니다.

  8. [레코드 이름(Record name)]에서 기본값(호스팅 영역과 도메인의 이름)을 그대로 사용합니다.

  9. 레코드 유형에서 A - 트래픽을 특정 IPv4 주소 및 일부 AWS 리소스로 라우팅하도록 선택합니다.

  10. 값/트래픽 라우팅 대상에서 Alias to S3 website endpoint(S3 웹 사이트 엔드포인트에 대한 별칭)를 선택합니다.

  11. 리전을 선택합니다.

  12. 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 웹 사이트 엔드포인트를 참조하세요. 별칭 대상에 대한 자세한 내용은 단순 별칭 레코드에 특정한 값의 “값/트래픽 라우팅 대상” 섹션을 참조하세요.

  13. 대상 상태 평가에서 아니요를 선택합니다.

  14. Define simple record(단순 레코드 정의)를 선택합니다.

(선택 사항) 하위 도메인(www.example.com)에 대한 별칭 레코드를 추가하려면

하위 도메인에 대한 버킷을 생성한 경우 해당 버킷에 대한 별칭 레코드도 추가합니다.

  1. 레코드 구성에서 단순 레코드 정의를 선택합니다.

  2. 하위 도메인의 레코드 이름www를 입력합니다.

  3. 레코드 유형에서 A - 트래픽을 IPv4 주소 및 일부 AWS 리소스로 라우팅하도록 선택합니다.

  4. 값/트래픽 라우팅 대상에서 Alias to S3 website endpoint(S3 웹 사이트 엔드포인트에 대한 별칭)를 선택합니다.

  5. 리전을 선택합니다.

  6. S3 버킷을 선택합니다(예: s3-website-us-west-2.amazonaws.com (example.com)).

    버킷이 S3 버킷 선택 목록에 나타나지 않으면 버킷이 생성된 리전의 Amazon S3 웹 사이트 엔드포인트를 입력합니다(예: s3-website-us-west-2.amazonaws.com).

  7. 대상 상태 평가에서 아니요를 선택합니다.

  8. Define simple record(단순 레코드 정의)를 선택합니다.

  9. 레코드 구성 페이지에서 레코드 생성을 선택합니다.

11단계: 웹 사이트 테스트

웹 사이트가 제대로 작동하는지 확인하려면 웹 브라우저를 열고 URLs 다음을 탐색하십시오.

  • http://your-domain-name예를 들어 example.com — 색인 문서를 다음 위치에 표시합니다.your-domain-name 버킷

  • http://www.your-domain-name 예: www.example.com — 요청을 다음으로 리디렉션합니다.your-domain-name 버킷

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

인터넷 트래픽 라우팅에 대한 자세한 내용은 Amazon Route 53을 DNS 서비스로 구성 단원을 참조하십시오. 인터넷 트래픽을 AWS 리소스로 라우팅하는 방법에 대한 자세한 내용은 을 참조하십시오. AWS 리소스로 인터넷 트래픽 라우팅

12단계 (선택 사항): CloudFront Amazon을 사용하여 콘텐츠 배포 속도를 높이십시오.

CloudFront .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 빠르게 배포하는 웹 서비스입니다. CloudFront 엣지 로케이션이라고 하는 전 세계 데이터 센터 네트워크를 통해 콘텐츠를 제공합니다. 서비스를 제공하는 콘텐츠를 사용자가 요청하면 지연 시간 (지연 시간) 이 가장 낮은 엣지 로케이션으로 CloudFront 라우팅되므로 콘텐츠가 최상의 성능으로 전달됩니다.

  • 콘텐츠가 지연 시간이 가장 낮은 엣지 로케이션에 이미 있는 경우 콘텐츠를 즉시 CloudFront 전송합니다.

  • 콘텐츠가 해당 엣지 로케이션에 없는 경우, 최종 버전의 콘텐츠의 원본으로 식별한 Amazon S3 버킷 또는 HTTP 서버 (예: 웹 서버) 에서 콘텐츠를 CloudFront 검색합니다.

Amazon S3 버킷에 콘텐츠를 CloudFront 배포하는 데 사용하는 방법에 대한 자세한 내용은 Amazon CloudFront 개발자 안내서의 Amazon S3에서 콘텐츠를 CloudFront 배포할 때 추가를 참조하십시오.