AWS CLI(AWS 명령줄 인터페이스)를 사용하여 Amazon Route 53에서 별칭 리소스 레코드 세트를 만들려면 어떻게 해야 합니까?

Route 53의 별칭 레코드를 사용하여 AWS 리소스 또는 Amazon S3 버킷을 가리킬 수 있습니다. Route 53 콘솔을 통해 별칭 레코드를 만들거나 AWS CLI를 통해 만들 수 있습니다.

참고: 계속하려면 먼저 최신 버전의 AWS CLI를 설치하거나 최신 버전으로 업데이트해야 합니다.

별칭 리소스 레코드 세트를 만들기 전에 트래픽을 도메인에 라우팅하기 위한 레코드를 포함할 호스팅 영역을 만듭니다. 호스팅 영역과 도메인의 이름은 동일해야 합니다. 사용 사례에 따라 인터넷 트래픽을 라우팅하기 위한 퍼블릭 호스팅 영역 또는 Amazon VPC(Amazon Virtual Private Cloud) 내에 트래픽을 라우팅하기 위한 프라이빗 호스팅 영역을 만들 수 있습니다.

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

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

경고: 구성에서 도메인 이름이 아닌 AWS 리소스의 호스팅 영역 ID를 사용해야 합니다. JSON 파일에서 이 값은 키-값 페어 HostedZoneId에서 지정됩니다. 계속하려면 먼저 각 리전의 Elastic Load Balancing, AWS Elastic Beanstalk, Amazon S3(Amazon Simple Storage Service)Amazon CloudFront 엔드포인트에 대한 HostedZoneId를 찾습니다.

이 예에서는 도메인(elb.example.com)에 대해 Elastic Load Balancer 엔드포인트(ALB-xxxxxxxx.us-west-2.elb.amazonaws.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
                              }}
                          }]
}

그런 다음 change-resource-record-sets 명령을 사용하여 호스팅 영역에서 리소스 레코드 세트를 만듭니다. 레코드 생성을 위한 값은 이전에 만든 JSON 구성 파일에서 지정됩니다.

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

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

Elastic Load Balancing 설정

Elastic Load Balancer를 가리키는 경우 JSON 파일의 DNSName 키-값 페어에 대한 값에 항상 dualstack을 포함해야 합니다. 예를 들어, 로드 밸런서의 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 배포 도메인 이름을 지정합니다. 예를 들어, CloudFront 배포 Amazon 제공 도메인 이름이 d111111abcdef8.cloudfront.net인 경우 다음을 사용합니다.

"DNSName": "d111111abcdef8.cloudfront.net"

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

Amazon S3 버킷 설정

Amazon 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 배포, Elastic Beanstalk 환경, ELB 로드 밸런서, Amazon S3 버킷 등의 AWS 리소스를 가리키는 별칭 레코드를 만드는 것 외에도 별칭 레코드를 만드는 영역과 동일한 호스팅 영역에서 다른 레코드 세트를 가리키는 별칭 리소스 레코드를 만들 수도 있습니다. 별칭 레코드의 유형은 라우팅하는 레코드의 유형과 동일해야 합니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2018-08-09