Route 53에서 AWS CLI를 사용하여 별칭 리소스 레코드 세트를 생성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 8월 10일

AWS Command Line Interface(AWS CLI)를 사용하여 Amazon Route 53에서 별칭 리소스 레코드 세트를 생성하려면 어떻게 해야 합니까?

간략한 설명

Route 53에서 별칭 레코드를 사용하여 AWS 리소스 또는 Amazon Simple Storage Service(S3) 버킷을 가리킬 수 있습니다. Route 53 콘솔 또는 AWS CLI를 통해 별칭 레코드를 생성할 수 있습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

별칭 리소스 레코드 세트를 생성하기 전에 도메인으로 트래픽을 라우팅하기 위한 레코드를 포함할 호스팅 영역을 생성합니다. 호스팅 영역과 도메인의 이름은 같아야 합니다. 사용 사례에 따라 두 가지 옵션이 있습니다. 인터넷 트래픽을 라우팅하기 위한 퍼블릭 호스팅 영역을 생성할 수 있습니다. 또는 Amazon Virtual Private Cloud(VPC) 내에서 트래픽을 라우팅하기 위한 프라이빗 호스팅 영역을 생성할 수도 있습니다.

별칭 리소스 레코드 세트 생성하기

다음 샘플 JSON 구문을 수정하여 고유한 별칭 리소스 레코드 세트를 생성한 다음 별칭 레코드에 대해 고유한 값을 지정합니다. 파일을 저장합니다(예: sample.json).

경고: 구성에 도메인 이름이 아닌 AWS 리소스의 호스팅 영역 ID를 사용해야 합니다. JSON 파일에서 이 값은 키-값 쌍 HostedZoneId에서 지정됩니다. 계속하기 전에 각 리전에 대한 Elastic Load Balancing, AWS Elastic Beanstalk, Amazon S3 Amazon CloudFront 엔드포인트를 찾을 수 있도록 HostedZoneId를 찾습니다.

이 예에서는 로드 밸런서 엔드포인트(ALB-xxxxxxxx.us-west-2.elb.amazonaws.com)를 가리키도록 도메인(elb.example.com)에 대한 별칭 리소스 레코드 세트를 만듭니다. 요청 본문에는 변경 배치라고 하는 변경 항목 목록이 포함됩니다. 변경 항목은 ChangeResourceRecordSetsRequest 요소에 포함됩니다.

{
  "Comment": "Creating Alias resource record sets in Route 53",
  "Changes": [
    {
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "elb.example.com",
        "Type": "A",
        "AliasTarget": {
          "HostedZoneId": "Z1H1FL5HABSF5",
          "DNSName": "ALB-xxxxxxxx.us-west-2.elb.amazonaws.com",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}

다음으로 변경-리소스-레코드-세트 명령을 사용하여 호스팅 영역에 리소스 레코드 세트를 생성합니다. 레코드 생성 값은 이전에 만든 JSON 구성 파일에 지정됩니다.

구성에 맞게 다음 명령을 수정합니다. --hosted-zone-id의 경우, 도메인 이름에 대한 호스팅 영역 ID를 제공합니다.

$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json

Elastic Load Balancing 설정

로드 밸런서를 가리키는 경우 항상 JSON 파일의 DNSName 키-값 쌍 값에 이중스택을 포함해야 합니다. 예를 들어 로드 밸런서의 Amazon에서 제공 DNS 이름이 ALB-xxxxxxxx.us-west-2.elb.amazonaws.com인 경우 다음을 사용합니다.

"DNSName": "dualstack.ALB-xxxxxxxx.us-west-2.elb.amazonaws.com"

CloudFront 배포 설정

CloudFront 배포를 가리키는 경우 JSON 파일의 DNSName 키-값 쌍에 Amazon에서 제공한 CloudFront 배포 도메인 이름을 지정합니다. 예를 들어 Amazon에서 제공하는 CloudFront 배포 도메인 이름이 d111111abcdef8.cloudfront.net인 경우 다음을 사용합니다.

"DNSName": "d111111abcdef8.cloudfront.net"

경고: CloudFront에서 할당한 도메인 이름 대신 사용할 대체 도메인 이름을 포함해야 합니다. 대체 도메인 이름은 별칭 리소스 레코드 세트를 생성한 도메인과 일치해야 합니다. 예를 들어 example.com이라는 도메인을 사용하여 CloudFront 배포에 액세스하려는 경우 배포를 위해 대체 도메인 이름에 도메인을 추가합니다.

Amazon S3 버킷 설정

S3 버킷을 가리키는 경우 JSON 파일의 DNSName 키-값 쌍에 대한 버킷 웹사이트 엔드포인트의 도메인 이름을 지정합니다. S3 관리 콘솔에서 정적 웹 사이트 호스팅에 표시되는 S3 엔드포인트를 값으로 사용하지 마세요. 리소스 레코드 세트를 생성하는 도메인 이름은 Amazon S3 버킷의 이름과 일치해야 합니다.

또한 버킷이 호스팅되는 리전(예: us-east-1)을 지정해야 합니다.

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

다음은 S3 버킷을 가리키는 JSON 구문의 예입니다.

{
  "Comment": "Alias record for S3 bucket",
  "Changes": [
    {
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "new.example.com",
        "Type": "A",
        "AliasTarget": {
          "HostedZoneId": "Z3BJ6K6RIION7M",
          "DNSName": "s3-website-us-west-2.amazonaws.com",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}

참고: CloudFront, Amazon S3 또는 ELB와 같은 AWS 리소스를 가리키는 별칭 레코드를 생성하는 것 외에도 별칭 리소스 레코드를 생성할 수 있습니다. 별칭 리소스 레코드는 별칭 레코드를 생성 중인 동일한 호스팅 영역의 다른 레코드를 가리킵니다. 별칭 레코드는 라우팅할 레코드와 유형이 같아야 합니다.