AWS

AWS Cli를 사용하여 Route53 설정하기 (생성, 변경, 삭제) | How can I create a simple resource record set in Amazon Route 53 using the AWS Command Line Interface (AWS CLI)?

vipDeveloper 2020. 3. 6. 14:42
반응형

AWS CLI를 사용하여 Amazon Route 53에서 간단한 리소스 레코드 세트를 만들어 보자

 

AWS 공식 사이트에 의하면...

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

가능하다고 한다..!

 

 

지난 번 글에서 Route53 에서 Geolocation Routing policy를 적용한 레코드 셋을 생성 했었는데 이러한 설정을 한 두 레코드가 

아닌 여러개의 곳, 또는 미국 전체 주에 배포 하려 할때 작업 효율이 떨어져 해당 명령어를 통해 진행 해보려고 한다.

 

지난 번 글

https://vipdeveloper.tistory.com/7

 

AWS Geolocation / sublocation setting (지리적 위치 / 하위 위치 설정 법) US states routing settings

Route 53 내 라우팅 설정을 통해 미국 주별 라우팅 설정을 해보기 Service / Route 53 선택 Create Record set 선택 후 Routing Policy : Geolocation 선택 Sublocation : 메뉴가 등장 -> 원하는 주 (state) 선택..

vipdeveloper.tistory.com

 

 일단 기본 옵션 및 작업 명령어(Commend) 를 알아보자.

 

AWS 안내에 따르면 ChangeResourceRecordSets 요청 생성은 다음과 같은 작업을 수행 할 수 있다.

 

'Action' : CREATE | DELETE | UPSERT

  • CREATE 호스팅 영역에서 지정된 값으로 레코드 세트를 생성
  • DELETE 호스팅 영역에서 지정된 값으로 레코드 세트를 삭제
  • UPSERT 지정된 값으로 새 레코드 세트를 만들거나, 해당 레코드 세트가 이미 있는 경우 지정된 값으로 레코드 세트를 업데이트

ResourceRecordSet

  Name : 도메인 이름 | -+ fully qualified domain name

  Type : DNS 레코드 유형  DNS record type

  TTL : time to live in seconds

  ResourceRecords : applicable value for the record type

  AliasTarget : 별칭 호스팅 영역 ID |  hosted zone ID for your AWS resource or Route 53 hosted zone

  DNSName : 별칭 대상 | DNS domain name for your AWS resource or another resource record set in this hosted zone

 

Geolocation : 지리적 위치 기반 설정

  CountryCode : 국가 코드 | country code

  SubdivisionCode : 미국 주 별 코드 | subdivision code

    

ChangeResourceRecordSets 예시

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

 

실제 사용 ChangeResourceRecordSets 예시

{
  "Comment": "Testing creating a record set",
  "Changes": [
    {
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "test.en.vipdeveloper.com.",
        "Type": "A",
        "SetIdentifier": "ID_0",
        "GeoLocation": {
          "CountryCode": "US",
          "SubdivisionCode": "OR"
        },
        "AliasTarget": {
          "HostedZoneId": "Z1UJRXOUMOOFQ8",
          "DNSName": "abc.execute-api.us-east-1.amazonaws.com.",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}

 

AWS Cli 명령어 

명령어 예시 1 )

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

 

명령어 예시 2 )

파일로 명령을 전송해도 되나 명령어로 전송 해도 된다. 

aws route53 change-resource-record-sets --hosted-zone-id XXXXXXXXXX --change-batch '{
  "Comment": "creating a record set",
  "Changes": [
    {
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "test.vipdeveloper.com.",
        "Type": "A",
        "SetIdentifier": "id_0",
        "GeoLocation": {
          "CountryCode": "US",
          "SubdivisionCode": "OR"
        },
        "AliasTarget": {
          "HostedZoneId": "ZZZZZZZZZZZ",
          "DNSName": "abc.execute-api.us-east-1.amazonaws.com.",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}
'

 

-- 참고 사이트

https://aws.amazon.com/premiumsupport/knowledge-center/simple-resource-record-route53-cli/?nc1=h_ls

반응형