Amazon Web Services 한국 블로그

Route 53 – 도메인 등록, 지역별 라우팅 기능 추가 및 가격 인하 단행

Amazon Route 53는 최상의 상태 확인 서비스를 갖추고 직접 가용성을 측정할 수 있는 도메인 네임 서비스(DNS)입니다. 도메인 이름 등록과 관리 및 이제 Geo DNS를 지원함으로써 Route 53기능을 계속 강화하고 있습니다. 또한, Route53 사용 요금 인하 등 각 항목에 대해 상세하게 살펴보겠습니다.

도메인 이름 등록과 관리

저는 1995년에 처음 도메인명을 등록했습니다. 당시는 도메인 관리와 등록의 거의 모든 작업이 어렵고 비싸며, 직접 수동으로 해야 했습니다. 좋은 도메인명을 찾으면 기술적인 지식을 가진 친구를 설득해 DNS 레코드를 호스트에 올리고 이메일 기반 형식을 사용해 도메인명 등록을 온라인으로 했습니다. 그 이후, 간편한 등록과 복수의 레지스트라의 출현으로 프로세스가 어느 정도 원활하게 되었습니다.

지금까지는 외부 레지스트라에서 도메인을 등록하고 Route 53에서 호스트 존을 작성한 후 Route 53의 네임 서버를 등록하고 레지스토라에서 도메인 설정해야 했습니다. 오늘 Route 53의 도메인 이름 등록 기능의 출시로 AWS 관리 콘솔 내에서 모든 기능을 한꺼번에 할 수 있게 되었습니다(API 처리도 가능). 다양한 일반 도메인 및 국가별 최상위 도메인(TLD)중에서 도메인을 구입, 관리 및 이전 할 수 있습니다. 등록 프로세스의 일환으로 Route 53 호스트 존이 자동적으로 설정됩니다. 좋은 도메인명을 생각해 등록 한 후, 정적(Amazon Simple Storage Service S3)또는 동적(Amazon Elastic Compute Cloud EC2)으로 AWS Elastic Beanstalk, AWS OpsWorks 콘텐츠를 단 몇 분 만에 온라인 서비스가 가능합니다.

많은 AWS 이용 고객처럼 수 백에서 수 천개의 도메인명을 소유하고 있는 경우, 도메인 유효 기간을 감시하고 도메인을 업데이트 하는 것이 얼마나 힘든지 아시죠? 도메인을 Route 53에 이전함으로써 설정 가능한 유효 기간 만료 통지 기능 및 자동 갱신 기능을 이용할 수 있습니다. 도메인명 관리에서 자주 있는 실수를 피할 수 있고, 도메인 이름 대신 애플리케이션에 집중할 수 있습니다. 또한 도메인 이름 관리를 위한 모든 사용자명과 암호를 기억해야 하던 것을 그만해도 됩니다.

그럼 AWS관리 콘솔Route 53 API 사용한 도메인 이름 검색 및 등록 과정을 봅시다.

Route 53 Dashboard에서는 호스트 존, 상태 점검, 도메인 전체 현황을 볼 수 있습니다.:

원하는 도메인명을 입력하고 메뉴에서 TLD를 선택해 등록 프로세스를 시작합니다.:

콘솔은 선택한 도메인과 몇몇 인기있는 도메인명이 이용 가능한지를 확인합니다. 원하는 이름을 추가할 수 있습니다(아래에서는.com.info).:


그리고 연락처 상세 정보를 입력합니다.:

도메인의 개인 정보 보호 기능을 사용할 수 있습니다. 본 설정은 스팸을 막기 위해 공개된 Whois 데이터베이스에서 개인 정보의 많은 부분을 숨김니다.

모든 준비가 되고 약관에 동의하면 도메인이 등록됩니다.:

콘솔 내에서 모든 도메인을 볼 수 있습니다.:

각각 도메인의 자세한 정보 보기도 가능합니다.:

외부 Route 53에(또 그 반대도)도메인을 이관할 수도 있습니다.:

처음에 말했듯이 Route 53 API을 통해도 도메인의 검색, 구입, 관리를 할 수 있습니다. 집에 아이가 태어나서 적합한 도메인명을 얻고자 할 때 모든 프로세스를 자동화하는 코드를 소개해 드립니다. AWS SDK for PHP을 사용하고 있습니다.

첫 단계로 원하는 도메인 명과 이용 가능한 TLD의 목록을 설정합니다.:

$LastName = 'Barr';
$Gender   = 'F';
$TLDs     = array('.com', '.org');

그리고 AWS SDK와 PHP Simple HTML DOM라이브러리를 이용해 Route 53의 클라이언트 객체를 작성합니다.:

require 'aws.phar';
require 'simple_html_dom.php';

// Connect to Route 53
$Client = \Aws\Route53Domains\Route53DomainsClient::factory(array('region' => 'us-east-1'));

다음에 가장 인기 있는 아기의 이름의 배열이 필요합니다. 이번에는 인기 있는 2013년 아기 이름 목록 사용해 PHP 배열을 만들기 위해 HTML을 파싱(Parsing)합니다.:

$HTML      = file_get_html("http://www.babycenter.com/top-baby-names-2013");
$FirstNames = array();

$Lists = $HTML->find('table tr ol');
$Items = $Lists[($Gender == 'F') ? 0 : 1];

foreach ($Items->find('li') as $Item)
{
  $FirstNames[] = $Item->find('a', 0)->innertext;
}

손수 만든 인기 이름의 목록을 사용하여 재미 있는 조합을 생성하고 Route 53의 checkDomainAvailability 기능을 호출해서 이용 가능한지를 확인합니다:

foreach ($FirstNames as $FirstName)
{
  foreach ($TLDs as $TLD)
  {
    $DomainName = $FirstName . '-' . $LastName . $TLD;

    $Result = $Client->checkDomainAvailability(array(
      'DomainName'  => $DomainName,
      'IdnLangCode' => 'eng'));
  }
  echo "{$DomainName}: {$Result['Availability']}\n";
}

사용 가능한 이름을 선택했습니다. 그리고 향후 등록 시 필요하니 연락처 정보를 패키지화합니다.:

$ContactInfo = array(
  'ContactType'      => 'PERSON',
  'FirstName'        => 'Jeff',
  'LastName'         => 'Barr',
  'OrganizationName' => 'Amazon Web Services', 
  'AddressLine1'     => 'XXXX  Xth Avenue', 
  'City'             => 'Seattle', 
  'State'            => 'WA', 
  'CountryCode'      => 'US', 
 'ZipCode'          => '98101',
  'PhoneNumber'      => '+1.206XXXXXXX',
  'Email'            => 'jbarr@amazon.com');

다음 registerDomain 기능을 사용하고, 도메인을 등록합니다.:

if ($Result['Availability'] === 'AVAILABLE')
{
  echo "Registering {$DomainName}\n");

  $Result = $Client->registerDomain(array(
    'DomainName'              => $DomainName,
    'IdnLangCode'             => 'eng',
    'AutoRenew'               => true,
    'DurationInYears'         => 1,
    'BillingContact'          => $ContactInfo,
    'RegistrantContact'       => $ContactInfo,
    'TechContact'             => $ContactInfo,
    'AdminContact'            => $ContactInfo,
    'OwnerPrivacyProtected'   => true,
    'AdminPrivacyProtected'   => true,
    'TechPrivacyProtected'    => true,
    'BillingPrivacyProtected' => true));
}

Geo Routing
Route 53의 새로운 Geo Routing기능을 사용하면 DNS 요청의 발신 위치에 따라 콘텐츠 전송을 위해 가장 적절한 AWS 자원을 선택할 수 있게 됩니다. 이로 사용자의 위치에 따른 요청에 적절한 응답을 효율적으로 제공할 애플리케이션을 구축할 수 있게 됩니다. 각 위치(대륙 국가 또는 미국의 주)마다 독립해 정적 또는 동적인 AWS 자원에 매핑할 수 있습니다. 어느 장소에서는S3에서 전송되는 정적인 자원을 받고 다른 장소에서는EC2Elastic Beanstalk에 실행하는 애플리케이션의 동적인 자원을 받는식입니다.

이 기능은 다양한 용도로 이용할 수 있습니다. 여기에서 몇가지 아이디어를 소개하겠습니다.:

  • 글로벌 애플리케이션 – 같은 대륙에 있는 AWS 범위 내 요청인 경우 Amazon Elastic Compute Cloud (EC2)인스턴스 요청을 라우팅합니다. 앞으로 이로 인한 성능을 극대화할 수 있거나 법적 또는 규제 요건을 충족시킬 수 있습니다.
  • 콘텐츠 관리 – 지리적 위치에 따라 최적화 및 맞춤형 라이선스 및 승인된 콘텐츠 접속을 사용자에게 제공합니다. 예를 들면 미국 각 주에 따라 각각 다른 컨텐츠 및 자원을 사용할 수 있고, 전 세계의 특정 지역에서만 유효한 콘테스트 및 프로모션을 할 때 초기의 필터링 기능을 제공하기 위해서 이 기능을 이용할 수 있습니다.
  • 일관성 있는 엔드 포인트 – 특정 위치가 같은 엔드 포인트에 매핑 하는 것을 보증하기 위해 엔드 포인트에 대한 위치 매핑을 설정합니다. MMOG를 실행할 때, 사용자 위치에 따라 라우팅 하는 것으로 성능을 향상시키거나 지연을 줄이거나 시간 기반의 스케일링을 더 잘 제어하거나 비슷한 배경과 문화를 가진 사용자가 게임 내의 같은 게임 서버로 보낼 수 있습니다.

이 기능을 이용하려면 단순히 Routing Policy로 Geolocation의 Route 53 레코드 세트를 작성할 뿐입니다. 각 레코드 셋이 DNS 엔트리(예를 들어www.jeff-barr.com) 에서 특정 AWS 자원, S3의 버킷, EC2인스턴스 또는 Elastic Load Balancer에 매핑 될 수 있습니다. 오늘 출시한 Geolocation 정책을 가진 각 레코드 세트는 DNS 엔트리 요청이 특정 대륙 국가, 미국의 주 경계(geo lookup의 IP에서 결정)내의 것인 경우만 유효하게 됩니다. 각 레코드 세트는 명확한 방법으로 계층을 형성하는 가장 적합한 레코드 셋을 이용합니다. 기본 엔트리를 작성해 어느 엔트리에도 맞지 않는 경우에 사용되도록 할 수도 있습니다.

이 기능은 AWS관리 콘솔, Route 53 API(AWS Command Line Interface CLI)에서 설정할 수 있습니다. 애플리케이션에 따라서는 DNS 데이터베이스로부터 정보에 따라 레코드 세트를 생성하는 것도 가능합니다.

www.jeff-barr.com에 대한 대부분의 방문자에 대해서는 정적인 콘텐츠를 제공하여 아시아로부터의 방문자에 대해서는 동적 콘텐츠를 제공하고 싶다면, 다음과 같은 절차를 밟습니다. 우선 S3버킷을 가르키는 “www”의 레코드 세트를 작성합니다.:

그리고 레코드 세트를 작성해 위치를 아시아로 향하게 합니다. 이것은 Elastic Load Balancer를 바라보게 합니다.:

가격 인하
마지막으로 Standard 및 LBR(Latency-Based Routing)의 요청에 대한 요금을 20% 인하하게 되었습니다. 가격 인하는 2014년 8월 1일부터 시작합니다.:

  1. Standard Queries -$0.40(100만 쿼리마다)-최초 10억 쿼리/월$0.20(100만 쿼리마다)-10억 쿼리 이상/월
  2. LBR Queries -$0.60(100만 쿼리마다)-최초 10억 쿼리/월$0.30(100만 쿼리마다)-10억 쿼리 이상/월
  3. Geo DNS Queries -$0.70(100만 쿼리마다)-최초 10억 쿼리/월$0.35(100만 쿼리마다)-10억 쿼리 이상/월

지금 당장 이용할 수 있습니다
이들의 새 기능은 지금 당장 이용할 수 있습니다. 또 가격 인하도 이미 적용됩니다!

Jeff;

본 글은 Route 53 Update – Domain Name Registration, Geo Routing, and a Price Reduction의 한국어 번역입니다.