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

최종 업데이트 날짜: 2021년 1월 8일

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

간략한 설명

Route 53 API에 대한 ChangeResourceRecordSets 요청을 사용하여 리소스 레코드 세트를 생성, 삭제 또는 변경(업서트)할 수 있습니다.

해결 방법

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

ChangeResourceRecordSets 요청 생성

ChangeResourceRecordSets 요청을 사용하면 다음과 작업을 수행할 수 있습니다.

  • CREATE는 호스팅 영역에 지정된 값을 가진 레코드 세트를 생성합니다.
  • DELETE는 호스팅 영역에서 지정된 값을 가진 레코드 세트를 삭제합니다.
  • UPSERT는 지정된 값으로 새 레코드 세트를 생성하거나 해당 레코드 세트가 이미 존재하는 경우 지정된 값으로 레코드 세트를 업데이트합니다.

다음 예제 JSON 파일(sample.json)을 수정하여 간단한 A 레코드 세트를 생성, 삭제 또는 변경합니다. 요청 본문에는 변경 배치라고 하는 변경 항목 목록이 포함됩니다.

{
            "Comment": "CREATE/DELETE/UPSERT a record ",
            "Changes": [{
            "Action": "CREATE",
                        "ResourceRecordSet": {
                                    "Name": "a.example.com",
                                    "Type": "A",
                                    "TTL": 300,
                                 "ResourceRecords": [{ "Value": "4.4.4.4"}]
}}]
}

Route 53 API에 change-resource-record-sets 명령을 사용하여 호스팅 영역에서 도메인에 대한 리소스 레코드 세트를 생성합니다. sample.json 파일은 레코드 생성을 위한 값을 지정합니다.

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

JSON 파일에 오류가 없는 한 PENDING Status가 고유 ID와 함께 반환되어야 합니다.

$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXXX --change-batch file://sample.json
{
    "ChangeInfo": {
        "Status": "PENDING", 
        "Comment": "optional comment about the changes in this change batch request", 
        "SubmittedAt": "2018-07-10T19:39:37.757Z", 
        "Id": "/change/C3QYC83OA0KX5K"
    }
}

get-change API 호출에 change-resource-record-sets 응답의 Id 값을 사용하여 변경 상태를 확인합니다.

  • PENDING은 이 요청의 변경 내용이 모든 Route 53 DNS 서버에 아직 전파되지 않았음을 나타냅니다. 이는 모든 변경 배치 요청의 초기 상태입니다.
  • INSYNC는 변경 내용이 모든 Route 53 DNS 서버에 전파되었음을 나타냅니다.

전파 전:

aws route53  get-change --id /change/C3QYC83OA0KX5K
{
    "ChangeInfo": {
        "Status": "PENDING", 
        "Comment": "optional comment about the changes in this change batch request", 
        "SubmittedAt": "2018-07-10T19:39:37.757Z", 
        "Id": "/change/C3QYC83OA0KX5K"
    }
}

전파 후:

$ aws route53  get-change --id /change/C3QYC83OA0KX5K
{
    "ChangeInfo": {
        "Status": "INSYNC", 
        "Comment": "optional comment about the changes in this change batch request", 
        "SubmittedAt": "2018-07-10T19:39:37.757Z", 
        "Id": "/change/C3QYC83OA0KX5K"
    }

동시 요청 생성

각 동시 요청에 대해 별도의 Action 키를 사용해야 합니다. 예를 들어 한 요청에서 A 레코드와 MX 레코드를 생성할 수 없습니다. 대신 다음 형식을 사용하여 동일한 도메인 이름에 대해 두 개의 레코드 세트를 생성해야 합니다.

{
                "Comment": "CREATE/DELETE/UPDATE",
                 "Changes": [ {
                             "Action": "CREATE",
                            "ResourceRecordSet": {
                                "Name": "a.example.com",
                                    "Type": "A",
                                     "TTL": 300,
                                  "ResourceRecords": [{"Value": "5.5.5.5"}]
                            }},
{
                            "Action": "CREATE",
                            "ResourceRecordSet": {
                                 "Name": "a.example.com",
                                 "Type": "MX",
                                  "TTL": 300,
                                  "ResourceRecords": [{"Value": "10 example.com"}]
                           }}
]
}