대체 도메인 이름(CNAME)을 추가하여 파일에 대해 사용자 지정 URL 사용 - Amazon CloudFront

대체 도메인 이름(CNAME)을 추가하여 파일에 대해 사용자 지정 URL 사용

CloudFront에서 CNAME이라고 하는 대체 도메인 이름을 사용하면 파일 URL에 CloudFront에서 배포에 배정하는 도메인 이름 대신에 고유의 도메인 이름(예: www.example.com)이 사용됩니다.

배포를 만들 때 CloudFront가 배포에 도메인 이름을 제공합니다(예: d111111abcdef8.cloudfront.net).

cloudfront.net 도메인 이름 대신에 www.example.com 같은 고유 도메인 이름을 사용하려는 경우, 대체 도메인 이름을 배포에 추가할 수 있습니다.

대체 도메인 이름 추가

다음 작업 목록은 CloudFront 콘솔을 사용하여 배포에 대체 도메인 이름을 추가하여 링크에서 CloudFront 도메인 이름 대신에 고유의 도메인 이름을 사용할 수 있도록 하는 방법을 설명합니다. CloudFront API를 사용한 배포 업데이트에 대한 자세한 내용은 배포 작업 단원을 참조하세요.

참고

최종 사용자가 대체 도메인 이름에 HTTPS를 사용하도록 하려면 대체 도메인 이름과 HTTPS 사용 단원을 참조하십시오.

시작하기 전에: 대체 도메인 이름을 추가하도록 배포를 업데이트하기 전에 다음을 수행해야 합니다.

  • 도메인 이름을 Route 53 또는 다른 도메인 등록 기관에 등록합니다.

  • 도메인 이름을 포함하는 인증된 인증 기관(CA)에서 SSL/TLS 인증서를 받습니다. 인증서를 배포에 추가하여 도메인 사용 권한이 있는지 확인합니다. 자세한 내용은 대체 도메인 이름 사용과 관련된 요구 사항 단원을 참조하세요.

대체 도메인 이름 추가

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v3/home에서 CloudFront 콘솔을 엽니다.

  2. 업데이트하려는 배포의 ID를 선택합니다.

  3. [General] 탭에서 [Edit]를 선택합니다.

  4. 다음 값을 업데이트합니다.

    Alternate Domain Names (CNAMEs)

    대체 도메인 이름을 추가합니다. 도메인 이름을 쉼표로 구분하거나 각각의 이름을 새 줄에 입력합니다.

    SSL 인증서

    다음 설정을 선택합니다.

    • HTTPS 사용(Use HTTPS) - 사용자 정의 SSL 인증서(Custom SSL Certificate)를 선택하고 목록에서 인증서를 선택합니다. 이 목록에는 AWS Certificate Manager(ACM)에서 프로비저닝된 인증서, 다른 CA에서 구입하여 ACM에 업로드한 인증서, 다른 CA에서 구입하여 IAM 인증서 스토어에 업로드한 인증서 등이 포함됩니다.

      IAM 인증서 스토어에 인증서를 업로드했는데 목록에 나타나지 않으면 SSL/TLS 인증서 가져오기 절차를 검토하여 인증서를 올바르게 업로드했는지 확인합니다.

      이 설정을 선택한 경우 대체 도메인 이름만 객체 URL에 사용하는 것이 좋습니다(https://www.example.com/logo.jpg). CloudFront 배포 도메인 이름(https://d111111abcdef8.cloudfront.net.cloudfront.net/logo.jpg)을 사용하는 경우, 지원되는 클라이언트에서 선택하는 값에 따라 최종 사용자가 다음과 같이 동작할 수 있습니다.

      • 모든 클라이언트(All Clients): 최종 사용자에게서 SNI가 지원되지 않는 경우 CloudFront 도메인 이름이 TLS/SSL 인증서의 도메인 이름과 일치하지 않으므로 경고가 표시됩니다.

      • SNI(서버 이름 표시)를 지원하는 클라이언트만(Only Clients that Support Server Name Indication (SNI)): CloudFront에서 객체를 반환하지 않고 해당 최종 사용자와의 연결을 끊습니다.

    Clients Supported

    다음 옵션을 선택합니다.

    • 모든 클라이언트(All Clients): CloudFront가 전용 IP 주소를 사용하여 HTTPS 콘텐츠를 제공합니다. 이 옵션을 선택하면 SSL/TLS 인증서를 활성화된 배포와 연결할 때 추가 요금이 발생합니다. 자세한 내용은 Amazon CloudFront 요금을 참조하세요.

    • Only Clients that Support Server Name Indication (SNI)(서버 이름 표시(SNI)를 지원하는 클라이언트만): SNI를 지원하지 않는 이전 브라우저 또는 기타 클라이언트는 다른 방법을 사용하여 콘텐츠에 액세스해야 합니다.

    자세한 내용은 CloudFront에서 HTTPS 요청을 제공하는 방식 선택 단원을 참조하세요.

  5. 예, 편집합니다를 선택합니다.

  6. 배포에 대한 일반 탭에서 배포 상태배포 완료로 변경되었는지 확인합니다. 배포에 대한 업데이트가 배포되기 전에 대체 도메인 이름을 사용하려고 하면 다음 단계에서 생성하는 링크가 작동하지 않을 수도 있습니다.

  7. 트래픽을 배포의 CloudFront 도메인 이름(예: d111111abcdef8.cloudfront.net)으로 라우팅하도록 대체 도메인 이름(예: www.exapmle.com)에 대한 DNS 서비스를 구성합니다. 사용하는 방법은 Route 53을 도메인의 DNS 서비스 공급자로 사용하는지, 다른 공급자로 사용하는지에 따라 결정됩니다.

    참고

    DNS 레코드가 업데이트 중인 배포가 아닌 다른 배포를 이미 가리키고 있는 경우, DNS를 업데이트한 후에만 해당 대체 도메인 이름을 배포에 추가합니다. 자세한 내용은 대체 도메인 이름 사용에 대한 제한 단원을 참조하세요.

    Route 53

    별칭 리소스 레코드 세트를 생성합니다. 별칭 리소스 레코드 세트를 사용하면 Route 53 쿼리에 대해서는 요금이 지불되지 않습니다. 또한 DNS에서 CNAME을 허용하지 않는 루트 도메인 이름(example.com)에 대해 별칭 리소스 레코드 세트를 생성할 수 있습니다. 자세한 내용은 Amazon Route 53 개발자 안내서에서 도메인 이름을 사용하여 Amazon CloudFront 웹 배포로 트래픽 라우팅을 참조하세요.

    다른 DNS 서비스 공급자

    DNS 서비스 공급자가 제공하는 방법을 사용하여 도메인에 대한 CNAME 레코드를 추가합니다. 이 새 CNAME 레코드는 DNS 쿼리를 대체 도메인 이름(예: www.example.com)에서 배포의 CloudFront 도메인 이름(예: d111111abcdef8.cloudfront.net)으로 리디렉션합니다. 자세한 내용은 DNS 서비스 공급자가 제공하는 설명서를 참조하십시오.

    중요

    대체 도메인 이름에 대한 기존 CNAME 레코드가 이미 있는 경우 해당 레코드를 업데이트하거나 배포의 CloudFront 도메인 이름을 가리키는 새 레코드로 바꿉니다.

  8. dig 또는 이와 유사한 DNS 도구를 사용하여 이전 단계에서 생성한 DNS 구성이 배포의 도메인 이름을 가리키는지 확인합니다.

    다음 예는 www.example.com 도메인에 대한 dig 요청과 응답의 관련 부분을 보여 줍니다.

    PROMPT> dig www.example.com ; <<> DiG 9.3.3rc2 <<> www.example.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917 ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.example.com. IN A ;; ANSWER SECTION: www.example.com. 10800 IN CNAME d111111abcdef8.cloudfront.net. ...

    Answer Section에서는 CNAME 레코드가 www.example.com에 대한 쿼리를 CloudFront 배포 도메인 이름 d111111abcdef8.cloudfront.net로 라우팅합니다. CNAME의 오른쪽에 있는 이름이 CloudFront 배포의 도메인 이름이면 CNAME 레코드가 올바르게 구성된 것입니다. 이 값이 다른 값이면(예: Amazon S3 버킷의 도메인 이름) CNAME 레코드가 잘못 구성된 것입니다. 이 경우에는 7단계로 돌아가서 배포의 도메인 이름을 가리키도록 CNAME 레코드를 수정합니다.

  9. 배포의 CloudFront 도메인 이름 대신에 고유 도메인 이름을 사용하는 URL을 방문하여 대체 도메인 이름을 테스트합니다.

  10. 애플리케이션에서 CloudFront 배포의 도메인 이름 대신에 대체 도메인 이름을 사용하도록 객체 URL을 변경합니다.

대체 도메인 이름을 다른 배포로 이동

대체 도메인 이름을 배포에 추가하려고 하지만 대체 도메인 이름이 다른 배포에서 이미 사용되고 있는 경우에는 CNAMEAlreadyExists 오류(입력한 하나 이상의 CNAME이 이미 다른 리소스와 연결되어 있음)가 발생합니다. 예를 들어 www.example.com을 배포에 추가하려고 하는데 www.example.com이 이미 다른 배포와 연결되어 있으면 이 오류가 발생합니다.

이 경우 기존 대체 도메인 이름을 하나의 배포(소스 배포)에서 다른 쪽(대상 배포)으로 이동하고 싶을 것입니다. 다음 단계는 이 프로세스를 요약한 것입니다. 자세한 내용은 개요의 각 단계에 있는 링크를 참조하세요.

대체 도메인 이름을 이동하려면 다음을 수행합니다.

  1. 대상 배포를 설정합니다. 이 배포에는 이동 중인 대체 도메인 이름을 포함하는 SSL/TLS 인증서가 있어야 합니다. 자세한 내용은 대상 배포 설정 단원을 참조하세요.

  2. 소스 배포를 찾습니다. 이 AWS Command Line Interface(AWS CLI)을(를) 사용해 대체 도메인 이름이 연결된 배포를 찾습니다. 자세한 내용은 소스 배포 찾기 단원을 참조하세요.

  3. 대체 도메인 이름을 이동합니다. 이 작업은 소스 및 대상 배포가 동일한 AWS 계정에 있는지에 따라 방법이 달라집니다. 자세한 내용은 대체 도메인 이름 이동 단원을 참조하세요.

대상 배포 설정

대체 도메인 이름을 이동하려면 먼저 대상 배포(대체 도메인 이름을 이동할 배포)를 설정해야 합니다.

대상 배포를 설정하려면 다음을 수행합니다.

  1. 이동 중인 대체 도메인 이름이 포함된 SSL/TLS 인증서를 받습니다. 없는 경우 AWS Certificate Manager(ACM)에 요청하거나 다른 인증 기관(CA) 에서 가져온 다음 ACM으로 가져올 수 있습니다. 미국 동부(버지니아 북부)(us-east-1) 리전에서 인증서를 요청하거나 가져오는지 확인합니다

  2. 대상 배포를 생성하지 않은 경우 지금 생성합니다. 대상 배포를 생성하는 과정에서 이전 단계의 인증서를 배포와 연결합니다. 자세한 내용은 배포 만들기 단원을 참조하세요.

    대상 배포가 이미 있는 경우 이전 단계의 인증서를 대상 배포와 연결합니다. 자세한 내용은 배포 업데이트 단원을 참조하세요.

  3. 대체 도메인 이름을 대상 배포의 배포 도메인 이름과 연결하는 DNS TXT 레코드를 생성합니다. 대체 도메인 이름 앞에 밑줄(_)을 사용하여 TXT 레코드를 생성합니다. 다음에 DNS의 TXT 레코드의 예가 나와 있습니다.

    _www.example.com TXT d111111abcdef8.cloudfront.net

    CloudFront가 이 TXT 레코드를 사용하여 대체 도메인 이름의 소유권을 확인합니다.

소스 배포 찾기

한 배포에서 다른 배포로 대체 도메인 이름을 이동하기 전에소스 배포(대체 도메인 이름이 현재 사용 중인 배포)를 찾아야 합니다. 소스와 대상 배포의 AWS 계정 ID 모두를 알고 있는 경우 대체 도메인 이름을 이동하는 방법을 결정할 수 있습니다.

대체 도메인 이름의 소스 배포를 찾으려면 다음을 수행합니다.

  1. 다음의 예제를 참고하여 AWS Command Line Interface(AWS CLI)에서 CloudFront list-conflicting-aliases 명령을 사용합니다. www.example.com을 대체 도메인 이름으로 바꾸고 EDFDVBD6EXAMPLE이전에 설정한 대상 배포의 ID로 바꿉니다. 대상 배포와 동일한 AWS 계정에 있는 자격 증명을 사용하여 이 명령을 실행합니다. 이 명령을 사용하려면 대상 배포의 cloudfront:GetDistributioncloudfront:ListConflictingAlias 권한이 있어야 합니다.

    aws cloudfront list-conflicting-aliases --alias www.example.com --distribution-id EDFDVBD6EXAMPLE

    제공된 도메인 이름과 충돌하거나 겹치는 모든 대체 도메인 이름의 목록이 명령의 출력에 표시됩니다. 예:

    • 명령에 www.example.com을 제공한다면 www.example.com 및 겹치는 와일드카드 대체 도메인 이름(*.example.com)(있는 경우)이 명령의 출력에 포함됩니다.

    • 명령에 *.example.com을 제공한다면 *.example.com 및 해당 와일드카드가 적용되는 대체 도메인 이름(예: www.example.com, test.example.com, dev.example.com 등)이 명령의 출력에 포함됩니다.

    명령의 출력에 있는 각 대체 도메인 이름에 대해 연결된 배포의 ID와 해당 배포를 소유하는 AWS 계정 ID를 볼 수 있습니다. 배포 및 계정 ID는 부분적으로 가려지므로 본인이 소유한 배포와 계정을 식별할 수 있지만 소유하지 않은 배포의 정보를 보호하는 데 도움이 됩니다.

  2. 명령의 출력에서 이동 중인 대체 도메인 이름에 대한 배포를 찾은 다음 원본 배포의 AWS 계정 ID를 확인합니다. 원본 배포의 계정 ID를 대상 배포를 생성한 계정 ID와 비교하고 이 두 배포가 동일한 AWS 계정에 있는지 확인합니다. 이렇게 하면 대체 도메인 이름을 이동하는 방법을 결정할 수 있습니다.

    대체 도메인 이름을 이동하려면 다음 항목을 참조하세요.

대체 도메인 이름 이동

상황에 따라 다음 방법 중에서 선택하여 대체 도메인 이름을 이동합니다.

소스 및 대상 배포가 동일한 AWS 계정에 있는 경우

AWS CLI에서 associate-alias 명령을 사용하여 대체 도메인 이름을 이동합니다. 이 방법은 대체 도메인 이름이 apex 도메인(루트 도메인이라고도 함. 예: example.com)인 경우를 포함해 같은 계정 이동인 경우 작동합니다. 자세한 내용은 associate-alias를 사용하여 대체 도메인 이름 이동 단원을 참조하세요.

소스 및 대상 배포가 서로 다른 AWS 계정에 있는 경우

원본 배포에 대한 액세스 권한이 있고 대체 도메인 이름이 apex 도메인(루트 도메인이라고도 함. 예: example.com)이 아니며 해당 대체 도메인 이름과 겹치는 와일드카드를 아직 사용하고 있지 않은 경우, 대체 도메인 이름을 이동하려면 와일드카드를 사용합니다. 자세한 내용은 와일드카드를 사용하여 대체 도메인 이름 이동 단원을 참조하세요.

소스 배포의 AWS 계정에 대한 액세스 권한이 없는 경우, AWS CLI의 associate-alias 명령을 사용해 대체 도메인 이름을 이동해볼 수 있습니다. 원본 배포가 비활성화된 경우 대체 도메인 이름을 이동할 수 있습니다. 자세한 내용은 associate-alias를 사용하여 대체 도메인 이름 이동 단원을 참조하세요.

이동하려는 대체 도메인 이름이 apex 도메인이거나 소스 배포의 AWS 계정에 액세스 권한이 없다면 AWS Support에 문의하세요. 자세한 내용은 AWS Support에 문의하여 대체 도메인 이름을 이동 단원을 참조하세요.

associate-alias를 사용하여 대체 도메인 이름 이동

소스 배포가 대상 배포와 동일한 AWS 계정에 있거나, 다른 계정에 있지만 비활성화된 경우 AWS CLI의 CloudFront associate-alias 명령을 사용해 대체 도메인 이름을 이동합니다.

associate-alias를 사용하여 대체 도메인 이름을 이동하려면 다음을 수행합니다.

  1. 다음의 예제를 참고하여 AWS CLI에서 CloudFront associate-alias 명령을 실행합니다. www.example.com을 대체 도메인 이름으로 바꾸고 EDFDVBD6EXAMPLE을 대상 배포 ID로 바꿉니다. 대상 배포와 동일한 AWS 계정에 있는 자격 증명을 사용하여 이 명령을 실행합니다. 이 명령을 사용하려면 다음 제한 사항에 유념하세요.

    • 대상 배포의 cloudfront:AssociateAliascloudfront:UpdateDistribution 권한이 있어야 합니다.

    • 소스 및 대상 배포가 동일한 AWS 계정에 있으면 소스 배포의 cloudfront:UpdateDistribution 권한이 있어야 합니다.

    • 소스 및 대상 배포가 서로 다른 AWS 계정에 있으면 소스 배포를 비활성화해야 합니다.

    • 대상 배포는 대상 배포 설정에 설명된 대로 설정해야 합니다.

    aws cloudfront associate-alias --alias www.example.com --target-distribution-id EDFDVBD6EXAMPLE

    이 명령은 소스 배포에서 대체 도메인 이름을 제거하고 이를 대상 배포에 추가하여 두 배포를 모두 업데이트합니다.

  2. 대상 배포가 완전히 배포된 후 대체 도메인 이름의 DNS 레코드가 대상 배포의 배포 도메인 이름을 가리키도록 DNS 구성을 업데이트합니다.

와일드카드를 사용하여 대체 도메인 이름 이동

소스 배포가 대상 배포와 다른 AWS 계정에 있고 소스 배포가 활성화된 경우, 와일드카드를 사용하여 대체 도메인 이름을 이동할 수 있습니다.

참고

와일드카드를 사용하여 apex 도메인(예: example.com)을 이동할 수는 없습니다. 소스 및 대상 배포가 서로 다른 AWS 계정에 있을 때 apex 도메인을 이동하려면 AWS Support에 문의하세요. 자세한 내용은 AWS Support에 문의하여 대체 도메인 이름을 이동 단원을 참조하세요.

와일드카드를 사용하여 대체 도메인 이름을 이동하려면 다음을 수행합니다.

참고

이 프로세스에는 배포에 대한 다중 업데이트가 포함됩니다. 각 배포가 최신 변경 사항을 완전히 배포할 때까지 기다린 후 다음 단계를 진행합니다.

  1. 대상 배포를 업데이트하여 이동할 대체 도메인 이름을 포함하는 와일드카드 대체 도메인 이름을 추가합니다. 예를 들어 이동할 대체 도메인 이름이 www.example.com인 경우 대체 도메인 이름 *.example.com을 대상 배포에 추가합니다. 이렇게 하려면 대상 배포의 SSL/TLS 인증서에 와일드카드 도메인 이름이 포함되어야 합니다. 자세한 내용은 배포 업데이트 단원을 참조하세요.

  2. 대상 배포의 도메인 이름을 가리키도록 대체 도메인 이름에 대한 DNS 설정을 업데이트합니다. 예를 들어 이동하려는 대체 도메인 이름이 www.example.com인 경우 대상 배포의 도메인 이름(예: d1111abcdef8.cloudfront.net)으로 트래픽을 라우팅하도록 www.example.com에 대한 DNS 레코드를 업데이트합니다.

    참고

    DNS 설정을 업데이트해도 대체 도메인 이름이 현재 구성되어 있으므로 대체 도메인 이름이 소스 배포에서 계속 제공됩니다.

  3. 소스 배포를 업데이트하여 대체 도메인 이름을 제거합니다. 자세한 내용은 배포 업데이트 단원을 참조하세요.

  4. 대상 배포를 업데이트하여 대체 도메인 이름을 추가합니다. 자세한 내용은 배포 업데이트 단원을 참조하세요.

  5. dig(또는 유사한 DNS 쿼리 도구)을(를) 사용하여 대체 도메인 이름에 대한 DNS 레코드가 대상 배포의 도메인 이름으로 확인되는지 확인합니다.

  6. (선택 사항) 대상 배포를 업데이트하여 와일드카드 대체 도메인 이름을 제거합니다.

AWS Support에 문의하여 대체 도메인 이름을 이동

이동하려는 대체 도메인 이름이 apex 도메인인 경우 소스 및 대상 배포가 서로 다른 AWS 계정에 있고 소스 배포의 AWS 계정에 대한 액세스 권한이 없거나 소스 배포를 비활성화할 수 없는 경우 AWS Support에 문의하여 대체 도메인 이름을 이동할 수 있습니다.

AWS Support에 문의하여 대체 도메인 이름을 이동하려면 다음을 수행하세요.

  1. 대상 배포를 가리키는 DNS TXT 레코드를 포함하여 대상 배포를 설정합니다. 자세한 내용은 대상 배포 설정 단원을 참조하세요.

  2. AWS Support에 문의해 도메인 소유권을 확인하고 새 CloudFront 배포로 도메인을 이동시켜 달라고 요청합니다.

대체 도메인 이름 제거

도메인 또는 하위 도메인에서 CloudFront 배포로의 트래픽 라우팅을 중단시키고 싶으면 여기 나오는 단계에 따라 DNS 구성과 CloudFront 배포를 모두 업데이트합니다.

배포에서 대체 도메인 이름을 제거하고 DNS 구성을 업데이트하는 것이 중요합니다. 이렇게 하면 나중에 CloudFront 배포에 도메인 이름을 연결하고 싶은 경우에 문제가 발생하는 것을 막을 수 있습니다. 대체 도메인 이름이 이미 하나의 배포에 연결되어 있는 경우에는 또 다른 연결을 설정할 수 없습니다.

참고

또 다른 배포에 추가할 수 있도록 이 배포에서 대체 도메인 이름을 제거하고 싶으면 대체 도메인 이름을 다른 배포로 이동의 단계를 따릅니다. 도메인을 제거하는 대신에 여기 나온 단계에 따라 또 다른 배포에 도메인을 추가한 경우에는 도메인이 새 배포에 연결되지 않는 기간이 존재합니다. 왜냐하면 CloudFront가 엣지 로케이션에 대한 업데이트로 전파되고 있기 때문입니다.

배포에서 대체 도메인 이름을 제거하려면

  1. 먼저 도메인에 대한 인터넷 트래픽을 CloudFront 배포가 아닌 또 다른 리소스(예: Elastic Load Balancing 로드 밸런서)로 라우팅합니다. 또는 CloudFront로 트래픽을 라우팅하고 있는 DNS 레코드를 삭제할 수 있습니다.

    도메인의 DNS 서비스에 따라 다음 중 하나를 수행합니다.

    • Route 53을 사용 중인 경우에는 별칭 레코드나 CNAME 레코드를 업데이트 또는 삭제합니다. 자세한 내용은 레코드 편집 또는 레코드 삭제를 참조하세요.

    • 또 다른 DNS 서비스 공급자를 사용하고 있는 경우에는 DNS 서비스 공급자가 제공한 방법을 사용하여 CloudFront로 트래픽을 전달하는 CNAME 레코드를 업데이트 또는 삭제합니다. 자세한 내용은 DNS 서비스 공급자가 제공하는 설명서를 참조하십시오.

  2. 도메인의 DNS 레코드를 업데이트한 후에는 변경 사항이 전파되어 DNS 해석기가 새 리소스로 트래픽을 라우팅할 때까지 기다립니다. 라우팅이 완료되면 URL에서 도메인을 사용하는 몇 가지 테스트 링크를 생성하여 확인할 수 있습니다.

  3. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudfront/v3/home에서 CloudFront 콘솔을 연 다음, 다음과 같이 CloudFront 배포를 업데이트하여 도메인 이름을 제거합니다.

    1. 업데이트하려는 배포의 ID를 선택합니다.

    2. [General] 탭에서 [Edit]를 선택합니다.

    3. 대체 도메인 이름 사용(CNAME)에서 배포에서 더 이상 사용하고 싶지 않은 대체 도메인 이름 또는 도메인 이름을 제거합니다.

    4. 예, 편집합니다를 선택합니다.

대체 도메인 이름에서 와일드카드 사용

대체 도메인 이름을 추가할 경우 하위 도메인을 개별적으로 추가하는 대신에 도메인 이름 시작 부분에 와일드카드(*)를 사용할 수 있습니다. 예를 들어 대체 도메인 이름으로 *.example.com을 사용하면 example.com으로 끝나는 모든 도메인 이름(예: www.example.com, product-name.example.com, marketing.product-name.example.com 등)을 URL에 사용할 수 있습니다. 객체의 경로는 도메인 이름과 상관없이 동일하며, 예를 들면 다음과 같습니다.

  • www.example.com/images/image.jpg

  • product-name.example.com/images/image.jpg

  • marketing.product-name.example.com/images/image.jpg

와일드카드가 포함된 대체 도메인 이름에 대해 다음 요구 사항을 따르세요.

  • 대체 도메인 이름은 별표(*)와 마침표(.)로 시작해야 합니다.

  • 와일드카드를 사용하여 하위 도메인 이름의 일부를 대체할 수 없습니다(예: *domain.example.com).

  • 도메인 이름의 중간에 있는 하위 도메인은 바꿀 수 없습니다(예: subdomain.*.example.com).

  • 와일드카드를 사용하는 대체 도메인 이름을 포함하여 모든 대체 도메인 이름은 인증서의 주체 대체 이름(SAN)으로 보호되어야 합니다.

와일드카드 대체 도메인 이름(예: *.example.com)에는 사용 중인 다른 대체 도메인 이름(예: example.com이 포함될 수 있습니다.

대체 도메인 이름 사용과 관련된 요구 사항

CloudFront 배포에 www.example.com과 같은 대체 도메인 이름을 추가하는 경우 요구 사항은 다음과 같습니다.

대체 도메인 이름은 소문자여야 합니다.

모든 대체 도메인 이름(CNAME)은 소문자여야 합니다.

대체 도메인 이름은 유효한 SSL/TLS 인증서에 포함되어야 합니다.

CloudFront 배포에 대체 도메인 이름(CNAME)을 추가하려면 대체 도메인 이름이 포함된 신뢰할 수 있는 유효한 SSL/TLS 인증서를 배포에 연결해야 합니다. 그러면 도메인의 인증서에 대한 액세스 권한이 있는 사람만 해당 도메인과 관련된 CloudFront CNAME과 연결할 수 있습니다.

신뢰할 수 있는 인증서는 AWS Certificate Manager(ACM) 또는 다른 유효한 CA(인증 기관)에서 발급하는 인증서입니다. 자체 서명된 인증서는 사용할 수 없습니다. CloudFront는 Mozilla가 지원하는 것과 동일한 인증 기관을 지원합니다. 최신 목록은 Mozilla에 포함된 CA 인증서 목록을 참조하십시오.

연결한 인증서를 사용하여 와일드카드가 포함된 대체 도메인 이름 등의 대체 도메인 이름을 확인하기 위해 CloudFront는 인증서에서 주제 대체 이름(SAN)을 확인합니다. 추가하는 대체 도메인 이름은 SAN에 포함되어야 합니다.

참고

한 번에 인증서 하나만 CloudFront 배포에 연결할 수 있습니다.

다음 중 하나를 수행하여 배포에 특정 대체 도메인 이름을 추가할 권한을 입증합니다.

  • 대체 도메인 이름(예: product-name.example.com)이 포함된 인증서 연결.

  • 도메인 이름의 시작 부분에 * 와일드카드가 포함된 인증서를 추가하여 인증서 하나로 여러 하위 도메인 포괄. 와일드카드를 지정할 때 CloudFront에서 여러 하위 도메인을 대체 도메인 이름으로 추가할 수 있습니다.

다음 예에서는 인증서 작업에서 도메인 이름에 와일드카드를 사용하여 CloudFront에서 특정 대체 도메인 이름을 추가할 수 있는 권한을 부여하는 보여 줍니다.

  • marketing.example.com을 대체 도메인 이름으로 추가하려고 합니다. 인증서에 도메인 이름(*.example.com)을 나열합니다. CloudFront에 이 인증서를 연결할 때 해당 수준에서 와일드카드를 대체하는 배포의 대체 도메인 이름을 추가할 수 있습니다(예: marketing.example.com). 또한 예를 들어 다음과 같은 대체 도메인 이름을 추가할 수도 있습니다.

    • product.example.com

    • api.example.com

    그러나 와일드카드보다 높거나 낮은 수준의 대체 도메인 이름은 추가할 수 없습니다. 예를 들어 example.com 또는 marketing.product.example.com은 대체 도메인 이름으로 추가할 수 없습니다.

  • example.com을 대체 도메인 이름으로 추가하려고 합니다. 이를 수행하려면 배포에 연결하는 인증서에서 도메인 이름 example.com 자체를 나열해야 합니다.

  • marketing.product.example.com을 대체 도메인 이름으로 추가하려고 합니다. 이를 수행하려면 인증서에 *.product.example.com을 나열하거나, 인증서에 marketing.product.example.com 자체를 나열하면 됩니다.

DNS 구성 변경 권한

대체 도메인 이름을 추가하는 경우, CNAME 레코드를 생성하여 대체 도메인 이름에 대한 DNS 쿼리를 CloudFront 배포에 라우팅해야 합니다. 이를 수행하려면 사용 중인 대체 도메인 이름의 DNS 서비스 공급자를 통해 CNAME 레코드를 생성할 수 있는 권한이 있어야 합니다. 일반적으로 이 경우 도메인을 소유하고 있지만 도메인 소유자를 위해 애플리케이션을 개발하는 중일 수도 있습니다.

대체 도메인 이름과 HTTPS

최종 사용자가 대체 도메인 이름과 함께 HTTPS를 사용하도록 하려면 추가 구성을 수행해야 합니다. 자세한 내용은 대체 도메인 이름과 HTTPS 사용 단원을 참조하세요.

대체 도메인 이름 사용에 대한 제한

대체 도메인 이름 사용에 대한 제한 사항은 다음과 같습니다.

최대 대체 도메인 이름 수

현재 하나의 배포에 추가할 수 있는 대체 도메인 이름의 최대 수를 살펴보고 더 높은 할당량(이전에는 제한이라고 함)을 요청하려면, 배포의 일반 할당량 단원을 참조하세요.

중복 및 중첩 대체 도메인 이름

AWS 계정에서 다른 배포를 소유하더라도 동일한 대체 도메인 이름이 다른 CloudFront 배포 안에 이미 있는 경우에는 대체 도메인 이름을 CloudFront 배포에 추가할 수 없습니다.

하지만 *.example.com 등의 와일드카드 대체 도메인 이름을 추가할 수 있는데 여기에는 www.example.com 등의 비 와일드카드 대체 도메인 이름이 포함(중첩)됩니다. 배포 2개의 대체 도메인 이름이 겹치는 경우 CloudFront는 DNS 레코드가 가리키는 배포에 상관 없이 보다 구체적으로 일치하는 이름을 사용하여 배포에 요청을 보냅니다. 예를 들어, markeeting.domain.com은 *.domain.com보다 더 구체적입니다.

Domain Fronting(도메인 프론팅)

CloudFront에는 여러 AWS 계정에서 발생하는 도메인 프론팅에 대한 보호가 포함되어 있습니다. 도메인 프론팅은 표준이 아닌 클라이언트가 한 AWS 계정의 도메인 이름에 대한 TLS/SSL 연결을 생성하지만 다른 AWS 계정에서 관련이 없는 이름에 대한 HTTPS 요청을 하는 시나리오입니다. 예를 들어 TLS 연결은 www.example.com에 연결한 후 www.example.org에 대한 HTTP 요청을 보낼 수 있습니다.

도메인 프론팅이 여러 AWS 계정을 교차하는 경우를 방지하기 위해 CloudFront는 특정 연결에 대해 사용하는 인증서를 소유한 AWS 계정이 항상 동일한 연결에서 처리하는 요청을 소유한 AWS 계정과 일치하는지 확인합니다.

두 AWS 계정 번호가 일치하지 않으면 CloudFront는 HTTP 421 Misdirected Request로 응답하여 올바른 도메인을 사용해 연결할 기회를 클라이언트에 제공합니다.

도메인의 최상위 노드(Zone Apex)에서 대체 도메인 이름 추가

배포에 대체 도메인 이름을 추가하는 경우, 일반적으로 DNS 구성에서 CNAME 레코드를 생성하여 도메인 이름에 대한 DNS 쿼리를 CloudFront 배포에 라우팅합니다. 하지만 Zone Apex라고 하는 DNS 네임스페이스의 최상위 노드에 대한 CNAME 레코드를 생성할 수 없습니다. DNS 프로토콜이 허용하지 않습니다. 예를 들어, DNS 이름 example.com을 등록하면 zone apex는 example.com입니다. example.com에 대한 CNAME 레코드를 생성할 수는 없지만, www.example.com, newproduct.example.com 등에 대한 CNAME 레코드는 생성할 수 있습니다.

Route 53을 DNS 서비스로 사용하는 경우 CNAME 레코드보다 두 가지 장점이 있는 별칭 리소스 레코드 세트를 생성할 수 있습니다. 최상위 노드(example.com)에서 도메인 이름에 대한 별칭 리소스 레코드 세트를 생성할 수 있습니다. 또한 별칭 리소스 레코드 세트를 사용할 때는 Route 53 쿼리에 대한 요금을 지불하지 않습니다.

참고

IPv6를 활성화하는 경우 두 개의 별칭 리소스 레코드를 생성해야 합니다. 하나는 IPv6 트래픽(A 레코드)을 라우팅하고 다른 하나는 IPv4 트래픽(AAAA 레코드)을 라우팅합니다. 자세한 내용은 IPv6 사용 주제에서 배포를 만들거나 업데이트할 때 지정하는 값 단원을 참조하십시오.

자세한 내용은 Amazon Route 53 개발자 안내서에서 도메인 이름을 사용하여 Amazon CloudFront 웹 배포로 트래픽 라우팅을 참조하세요.