호스팅 영역을 다른 AWS 계정으로 마이그레이션 - Amazon Route 53

호스팅 영역을 다른 AWS 계정으로 마이그레이션

호스팅 영역을 한 AWS 계정에서 다른 으로 마이그레이션하려면 이전 호스팅 영역에 레코드를 프로그래밍 방식으로 나열하고 출력을 편집한 다음, 편집된 출력을 사용하여 새 호스팅 영역에 프로그래밍 방식으로 레코드를 생성할 수 있습니다. 유의할 사항:

  • 레코드가 몇 개밖에 없는 경우에는 Route 53 콘솔을 사용하여 새 호스팅 영역에 레코드를 생성할 수도 있습니다. 자세한 내용은 Amazon Route 53 콘솔을 사용하여 레코드 생성 섹션을 참조하세요.

  • AWS Command Line Interface(AWS CLI)를 사용하는 절차도 있습니다. AWS SDK, Amazon Route 53 API 또는 AWS Tools for Windows PowerShell 중 하나를 사용하여 해당 절차를 수행할 수도 있습니다. 이 주제를 위해서는 소수의 호스팅 영역에 더 쉽게 사용할 수 있으므로 AWS CLI를 사용합니다.

  • 이 프로세스를 이용해 기존 호스팅 영역과 이름은 다르지만 같은 레코드를 가진 새 호스팅 영역에 레코드를 생성할 수도 있습니다.

  • 트래픽을 트래픽 정책 인스턴스로 라우팅하는 별칭 레코드를 마이그레이션할 수 없습니다.

1단계: AWS CLI 설치 또는 업그레이드

AWS CLI 다운로드, 설치 및 구성에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 참조하세요.

참고

호스팅 영역을 생성한 계정과 호스팅 영역을 마이그레이션할 대상 계정을 모두 사용 중일 때는 CLI를 사용할 수 있도록 구성하십시오. 자세한 내용은 AWS Command Line Interface 사용 설명서구성을 참조하세요.

이미 AWS CLI를 사용 중이라면 CLI 명령이 최신 Route 53 기능을 지원하도록 CLI의 최신 버전으로 업그레이드하는 것이 좋습니다.

2단계: 새 호스팅 영역 생성

다음 절차에서는 Route 53 콘솔을 사용하여 마이그레이션하려는 대상 호스팅 영역을 생성하는 방법을 설명합니다.

참고

Route 53는 새 호스팅 영역에 4개의 이름 서버 세트를 새로 할당합니다. 호스팅 영역을 다른 AWS 계정으로 마이그레이션한 후, 새 호스팅 영역을 위한 이름 서버를 사용하려면 도메인 등록을 업데이트해야 합니다. 본 프로세스 후반부에 이 단계에 대해 다시 알려드리겠습니다.

다른 계정을 사용하여 새 호스팅 영역을 생성하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 엽니다.

    호스팅 영역을 마이그레이션하려는 대상 계정에 대해 계정 자격 증명으로 로그인하십시오.

  2. 호스팅 영역 생성. 자세한 내용은 퍼블릭 호스팅 영역 생성 섹션을 참조하세요.

  3. 호스팅 영역 ID를 기록해 둡니다. 경우에 따라 이 프로세스 후반부에 이 정보가 필요할 것입니다.

  4. Route 53 콘솔에서 로그아웃합니다.

3단계: 마이그레이션할 레코드를 포함한 파일 만들기

레코드를 한 호스팅 영역에서 다른 호스팅 영역으로 마이그레이션하려면 마이그레이션할 레코드가 들어 있는 파일을 만들고 편집한 후 그 파일을 사용해 새 호스팅 영역에 레코드를 만드십시오. 다음 절차에 따라 파일을 만드십시오.

마이그레이션할 레코드를 포함한 파일을 만드는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 엽니다.

    마이그레이션하려는 호스팅 영역을 생성한 계정에 대해 계정 자격 증명으로 로그인하십시오.

  2. 마이그레이션할 호스팅 영역의 호스팅 영역 ID를 다음 절차에 따라 받으십시오.

    1. 탐색 창에서 호스팅 영역(Hosted zones)을 선택합니다.

    2. 마이그레이션하려는 호스팅 영역을 찾습니다. 호스팅 영역이 많은 경우 정확한 도메인 이름(Exact domain name)을 선택하고, 호스팅 영역 이름을 입력하고 Enter를 눌러 목록을 필터링합니다.

    3. [Hosted zone ID] 열의 값을 얻습니다.

  3. 다음 명령 실행:

    aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id > path-to-output-file

    유의할 사항:

    • hosted-zone-id의 경우 이 절차의 2단계에서 받은 호스팅 영역의 ID를 지정하십시오.

    • path-to-output-file의 경우 출력을 저장하고 싶은 디렉터리 경로와 파일 이름을 지정하십시오.

    • > 문자를 사용해 지정한 파일로 출력을 보낼 수 있습니다.

    • AWS CLI는 100개를 초과하는 레코드가 들어 있는 호스팅 영역에 대한 페이지 매김을 자동으로 처리합니다. 자세한 내용은 AWS Command Line Interface사용 설명서AWS 명령줄 인터페이스의 페이지 매김 옵션 사용을 참조하세요.

      AWS SDK 중 하나와 같이 다른 프로그래밍 방법으로 레코드 목록을 표시하는 경우 결과 페이지당 최대 100개의 레코드를 표시할 수 있습니다. 호스팅 영역에 100개를 초과하는 레코드가 있을 경우 모든 레코드를 나열하려면 복수의 요청을 제출해야 합니다.

    • 6.0 이전 버전의 Windows PowerShell에서 명령을 실행하려면 다음 구문을 사용하십시오.

      aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id | Out-File path-to-output-file -Encoding utf8

    예를 들어, Windows 컴퓨터에서 AWS CLI를 실행 중인 경우 다음 명령을 실행할 수 있습니다.

    aws route53 list-resource-record-sets --hosted-zone-id ZOLDZONE12345 > c:\temp\list-records-ZOLDZONE12345.txt

    Windows PowerShell 6.0 이전 버전의 Windows 컴퓨터에서 AWS CLI를 실행하는 경우 다음 명령을 실행할 수 있습니다.

    $output = aws route53 list-resource-record-sets --hosted-zone-id <hosted-zone-id>; $mypath = <output-path ; [System.IO.File]::WriteAllLines($mypath,$output)
  4. 이 출력의 복사본을 만듭니다. 새 호스팅 영역에 레코드를 만든 후 새 호스팅 영역에서 AWS CLI list-resource-record-sets 명령을 실행하고 두 출력 내용을 비교하여 모든 레코드가 생성되었는지 확인하는 것이 좋습니다.

4단계: 마이그레이션하려는 레코드 편집

이전의 절차에서 만든 파일의 형식은 새 호스팅 영역에서 레코드를 생성하는 데 사용하는 AWS CLI change-resource-record-sets 명령에서 요구되는 형식에 가깝습니다. 다만 파일을 약간 편집해야 합니다. 모든 레코드에 변경 사항 중 몇 가지를 적용해야 합니다. 쓸만한 텍스트 편집기에서 검색 및 바꾸기 기능을 사용하여 변경할 수 있습니다.

3단계: 마이그레이션할 레코드를 포함한 파일 만들기에서 만든 파일의 복사본을 열고 다음과 같이 변경하십시오.

  • 출력 내용 맨 위에 있는 첫 두 줄을 삭제하십시오.

    { "ResourceRecordSets": [
  • NS 및 SOA 레코드와 관련된 줄을 삭제하십시오. 새 호스팅 영역에 이미 해당 레코드가 있습니다.

  • 선택 사항 - Comment 요소를 추가합니다.

  • Changes 요소를 추가합니다.

  • 각 레코드에 대해 ActionResourceRecordSet 요소를 추가하십시오.

  • JSON 코드를 유효하게 만들려면 필요에 따라 여는 중괄호와 닫는 중괄호( { } )를 추가하십시오.

    참고

    중괄호와 대괄호가 알맞은 곳에 있는지 확인하려면 JSON 검사기를 사용할 수 있습니다. 온라인 JSON 검사기를 찾으려면 인터넷에서 "json validator"를 검색하십시오.

  • 호스팅 영역에 같은 호스팅 영역에 있는 다른 레코드를 참조하는 별칭이 포함되어 있을 경우 다음과 같이 변경하십시오.

    • 호스팅 영역의 ID를 새 호스팅 영역의 ID로 변경하십시오.

      중요

      별칭 레코드가 다른 리소스(예: 로드 밸런서)를 가리키는 경우 호스팅 영역 ID를 도메인의 호스팅 영역 ID로 변경하지 마세요. 호스팅 영역 ID를 실수로 변경하는 경우 호스팅 영역 ID를 도메인의 호스팅 영역 ID가 아닌 리소스 자체의 호스팅 영역 ID로 롤백합니다. 해당 호스팅 영역 ID는 리소스가 생성된 AWS 콘솔에 있을 수 있습니다.

    • 파일의 맨 아래로 별칭 레코드를 이동합니다. Route 53는 별칭 레코드가 참조하는 레코드를 먼저 생성해야 별칭 레코드를 생성할 수 있습니다.

      중요

      하나 이상의 별칭 레코드가 다른 별칭 레코드를 참조하는 경우 별칭 대상인 레코드는 파일에서 참조하는 별칭 레코드 앞에 나와야 합니다. 예를 들어, alias.example.comalias.alias.example.com의 별칭 대상인 경우 alias.example.com이 파일에서 먼저 나와야 합니다.

    • 트래픽을 트래픽 정책 인스턴스로 라우팅하는 별칭 레코드를 모두 삭제하십시오. 이후에 레코드를 다시 생성할 수 있도록 기록해 두십시오.

  • 이 프로세스를 사용하여 다른 이름을 가진 호스팅 영역에 레코드를 생성할 수 있습니다. 출력에 있는 모든 레코드에 대해, Name 요소의 도메인 이름 부분을 새 호스팅 영역의 이름으로 변경하십시오. 예를 들어, example.com 호스팅 영역에 레코드를 나열하고 example.net 호스팅 영역에 레코드를 생성하려는 경우 모든 레코드 이름의 example.com 부분을 example.net으로 변경하십시오.

    시작:

    • "Name": "example.com."

    • "Name": "www.example.com."

    끝:

    • "Name": "example.net."

    • "Name": "www.example.net."

다음 예제에서는 example.com에 대한 호스팅 영역을 위한 레코드의 편집된 버전을 보여줍니다. 빨간색 기울임꼴 텍스트가 새로운 내용입니다.

{ "Comment": "string", "Changes": [ { "Action": "CREATE", "ResourceRecordSet":{ "ResourceRecords": [ { "Value": "192.0.2.4" }, { "Value": "192.0.2.5" }, { "Value": "192.0.2.6" } ], "Type": "A", "Name": "route53documentation.com.", "TTL": 300 } }, { "Action": "CREATE", "ResourceRecordSet":{ "AliasTarget": { "HostedZoneId": "Z3BJ6K6RIION7M", "EvaluateTargetHealth": false, "DNSName": "s3-website-us-west-2.amazonaws.com." }, "Type": "A", "Name": "www.route53documentation.com." } } ] }

5단계: 큰 파일을 여러 작은 파일로 분할

레코드가 많이 있거나 값이 많은 레코드(예: 많은 IP 주소)가 있을 경우 파일을 여러 작은 파일로 분할해야 할 수 있습니다. 다음은 최댓값입니다.

  • 각 파일에는 최대 1,000개의 레코드가 포함될 수 있습니다.

  • 모든 Value 요소에서 값의 최대 총 길이는 32,000바이트입니다.

6단계: 새 호스팅 영역에 레코드 생성

새 호스팅 영역에 레코드를 생성하려면 다음 AWS CLI 명령을 사용하십시오.

aws route53 change-resource-record-sets --hosted-zone-id id-of-new-hosted-zone --change-batch file://path-to-file-that-contains-records

예:

aws route53 change-resource-record-sets --hosted-zone-id ZNEWZONE1245 --change-batch file://c:/temp/change-records-ZNEWZONE1245.txt

트래픽을 트래픽 정책 인스턴스로 라우팅하는 별칭 레코드를 모두 삭제한 경우 Route 53 콘솔을 사용하여 별칭 레코드를 다시 생성하세요. 자세한 내용은 Amazon Route 53 콘솔을 사용하여 레코드 생성 섹션을 참조하세요.

7단계: 기존 호스팅 영역과 새 호스팅 영역의 레코드 비교

새 호스팅 영역에 모든 레코드를 올바로 생성했음을 확인하려면 새 호스팅 영역에 레코드를 나열하고 기존 호스팅 영역의 레코드 목록과 출력 내용을 비교하는 것이 좋습니다. 이렇게 하려면 다음과 같이 합니다.

기존 호스팅 영역과 새 호스팅 영역의 레코드 비교 방법
  1. 다음 명령 실행:

    aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id --output json > path-to-output-file

    다음 값을 지정하십시오:

    • hosted-zone-id의 경우 새 호스팅 영역의 ID를 지정하십시오.

    • path-to-output-file의 경우 출력을 저장하고 싶은 디렉터리 경로와 파일 이름을 지정하십시오. 3단계: 마이그레이션할 레코드를 포함한 파일 만들기에 사용한 파일 이름과 다른 파일 이름을 사용하십시오. 다른 파일 이름을 사용해야 새 파일이 기존 파일을 덮어쓰지 않습니다.

    • > 문자를 사용해 지정한 파일로 출력을 보낼 수 있습니다.

    예를 들어, Windows 컴퓨터를 사용 중인 경우 다음 명령을 실행할 수도 있습니다.

    aws route53 list-resource-record-sets --hosted-zone-id ZNEWZONE67890 --output json > c:\temp\list-records-ZNEWZONE67890.txt
  2. 출력을 3단계: 마이그레이션할 레코드를 포함한 파일 만들기의 출력과 비교하십시오.

    NS 및 SOA 레코드의 값과 4단계: 마이그레이션하려는 레코드 편집에서 변경한 사항(예: 다른 호스팅 영역 ID 또는 도메인 이름) 외에도 이 두 출력 내용이 같아야 합니다.

  3. 새 호스팅 영역의 레코드가 기존 호스팅 영역의 레코드와 일치하지 않을 경우 다음 중 하나를 수행할 수 있습니다.

8단계: 도메인 등록을 업데이트하여 새 호스팅 영역을 위한 이름 서버 사용

새 호스팅 영역에서 레코드 생성을 마치면 새 호스팅 영역을 위한 이름 서버를 사용하도록 도메인 등록의 이름 서버를 변경하십시오.

중요

새 호스팅 영역을 위한 이름 서버를 사용하도록 도메인 등록을 업데이트하지 않으면 Route 53가 계속 기존 호스팅 영역을 사용하여 도메인에 대한 트래픽을 라우팅하게 됩니다. 도메인 등록의 이름 서버를 업데이트하지 않고 기존 호스팅 영역을 삭제하면 인터넷에서 해당 도메인에 접속할 수 없게 됩니다. 도메인 등록의 이름 서버를 업데이트하지 않고 새 호스팅 영역에서 레코드를 추가, 업데이트 또는 삭제할 경우 트래픽이 그러한 변경 사항을 기반으로 라우팅되지 않습니다.

자세한 내용은 Amazon Route 53를 기존 도메인에 대한 DNS 서비스로 설정 섹션을 참조하세요.

참고

사용 중인 도메인을 위한 DNS 서비스를 마이그레이션하는 프로세스를 사용하든, 비활성 도메인을 위한 프로세스를 사용하든, 이미 새 호스팅 영역을 생성하고 그 호스팅 영역에 레코드를 생성했으므로 다음 단계를 건너뛸 수 있습니다.

  • 1단계: 현재 DNS 서비스 공급자로부터 현재 DNS 구성 가져오기

  • 2단계: 호스팅 영역 생성

  • 3단계: 레코드 만들기

9단계: DNS 해석기가 새 호스팅 영역을 사용하기 시작할 때까지 기다리기

도메인이 사용 중인 경우(예: 사용자가 도메인 이름을 사용하여 웹 사이트를 검색하거나 웹 애플리케이션에 액세스하는 경우) DNS Resolver가 현재 DNS 서비스 공급자에 의해 제공된 이름 서버의 이름을 캐시했습니다. 몇 분 전에 그 정보를 캐시한 DNS 해석기는 최대 이틀 동안 해당 정보를 저장할 것입니다.

참고

이전 호스팅 영역에 표시되지 않는 새 호스팅 영역에서 레코드를 만든 경우, 해석기가 새 호스팅 영역의 이름 서버를 사용하기 시작할 때까지 사용자는 새 레코드를 사용하여 리소스에 액세스할 수 없습니다. 예를 들어 인터넷 트래픽을 웹사이트로 라우팅해야 하는 새 호스팅 영역에 test.example.com이라는 레코드를 생성한다고 가정합시다. 이전 호스팅 영역에 레코드가 표시되지 않으면 해석기가 새 호스팅 영역을 사용하기 시작할 때까지 웹 브라우저에 test.example.com을 입력할 수 없습니다.

이전 호스팅 영역을 삭제하기 전에 호스팅 영역을 다른 AWS 계정으로 마이그레이션하도록 하려면, 새 호스팅 영역에 대한 이름 서버를 사용하도록 도메인 등록을 업데이트하고 나서 이틀을 기다립니다. 이틀 후에 TTL이 만료되고 해석기가 도메인에 대한 이름 서버를 요청한 후, 해석기는 현재 이름 서버를 얻습니다. 또한 Resolver 쿼리 로깅을 활성화하여 새 호스팅 영역에서 쿼리를 모니터링할 수도 있습니다. Resolver 쿼리 로깅 요금에 대한 자세한 내용은 CloudWatch 요금을 참조하세요.

10단계: (선택 사항) 기존 호스팅 영역 삭제

기존 호스팅 영역이 이제는 필요하지 않다고 확신할 때는 이를 선택적으로 삭제할 수 있습니다.

중요

새 호스팅 영역에 대한 이름 서버를 사용하도록 도메인 등록을 업데이트한 후 적어도 48시간 동안 이전 호스팅 영역이나 해당 호스팅 영역에서 레코드를 삭제하지 마십시오. DNS 해석기가 해당 호스팅 영역의 레코드 사용을 중지하기 전에 이전의 호스팅 영역을 삭제하면, 해석기가 새 호스팅 영역을 사용하기 시작할 때까지 인터넷에서 도메인을 사용할 수 없게 됩니다.

호스팅 영역은 기본 NS 및 SOA 레코드를 제외하고는 비어 있어야 합니다. 기존 호스팅 영역에 많은 레코드가 포함되어 있는 경우 콘솔을 사용하여 레코드를 삭제하려면 시간이 오래 걸릴 수 있습니다. 이때 선택할 수 있는 한 가지 옵션이 다음 단계를 수행하는 방법입니다.

  1. 4단계: 마이그레이션하려는 레코드 편집에서 편집된 파일의 다른 복사본을 만드십시오.

  2. 파일 복사본에서 모든 레코드에 대해 "Action": "CREATE""Action": "DELETE"로 변경하십시오.

  3. 다음 AWS CLI 명령을 사용하여 레코드를 삭제하십시오.

    aws route53 change-resource-record-sets --hosted-zone-id id-of-old-hosted-zone --change-batch file:///path-to-file-that-contains-records
    중요

    호스팅 영역 ID에 대해 지정하는 값이 새 호스팅 영역의 ID가 아니라 기존 호스팅 영역의 ID임을 확인하십시오.

  4. 나머지 레코드 전부와 호스팅 영역을 삭제하십시오.

    1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 엽니다.

      기존 호스팅 영역을 생성한 계정에 대해 계정 자격 증명으로 로그인하십시오.

    2. 탐색 창에서 호스팅 영역(Hosted zones)을 선택합니다.

    3. 기존 호스팅 영역의 이름을 선택하십시오. 호스팅 영역이 많은 경우 정확한 도메인 이름(Exact domain name)을 선택하고, 호스팅 영역 이름을 입력하고 Enter를 눌러 목록을 필터링합니다.

    4. 호스팅 영역에 기본 NS 및 SOA 레코드 이외의 레코드(예: 트래픽을 트래픽 정책 인스턴스로 라우팅하는 별칭 레코드)가 포함된 경우, 해당 확인란을 선택하고 삭제(Delete)를 선택합니다.

    5. 탐색 창에서 호스팅 영역(Hosted zones)을 선택합니다.

    6. 호스팅 영역 목록에서 삭제할 호스팅 영역의 라디오 버튼을 선택하십시오.

    7. Delete(삭제)를 선택합니다.