WiseN

Route53에서Public DNS와 Private DNS 활용

Jul 05,2017   |   AWS

작성자_최준승

페이스북 공유하기 트위터 공유하기
Blog thumbnail

다루는 내용


· Route 53에서 Public DNS 사용하기
· Route 53에서 Private DNS 사용하기


 

 

실습






Public DNS 설정






 

1. 콘솔에서 Route53 클릭
2. 왼쪽 메뉴에서 Hosted Zones 클릭
3. Create Hosted Zone 클릭

∙ Domain Name : aws.idunbiz.com
실제 ICANN에 등록된 도메인이다. TLD(idunbiz.com)을 등록할 수도 있다.
∙ Comment : public zone
∙ Type : Public Hosted Zone


 



 

∙ Create 클릭


4. 생성된 호스트존(aws.idunbiz.com) 클릭

∙ NS와 SOA 레코드가 등록되어 있다.


 




 


  • A 레코드 등록




1. Create Record Set 클릭

∙ Name : a-record
∙ Type : A-IPv4 address
∙ TTL : 300
∙ Value : 1.1.1.1
2.2.2.2
∙ Routing Policy : Simple
∙ Create 클릭


 



 

2. dig a-record.aws.idunbiz.com 실행

 



 




 


  • CNAME 레코드 등록




1. Create Record Set 클릭

∙ Name : cname
∙ Type : CNAME – Canonical name
∙ Value : dualstack.test-2139921278.ap-northeast-1.elb.amazonaws.com
생성되어있는 ELB의 DNS를 복사하여 사용한다.
∙ Create 클릭


2. dig cname.aws.idunbiz.com 실행

 



 




 


  • Weighted Round Robin 사용




비율을 설정하여 쿼리에 대한 응답률을 다르게 할 수 있다. 서버 사용 비율을 조절할 때 사용할 수 있다. 아래 설정은 각각 1/5, 4/5의 확률로 응답한다. DHCP로 DNS 서버가 지정되어 있는 EC2에서 짧은 시간에 테스트할 경우 동일한 IP만 지속적으로 리턴 될 수 있다.


 

1. Create Record Set 클릭

∙ Name : weight
∙ Type : A – Ipv4 address
∙ Value : 10.10.10.10
∙ Routing Policy : Weighted
∙ Weight : 10
∙ Set ID : weight 10
∙ Create 클릭


2. Create Record Set 클릭

∙ Name : weight
∙ Type : A – Ipv4 address
∙ Value : 40.40.40.40
∙ Routing Policy : Weighted
∙ Weight : 40
∙ Set ID : weight 40
∙ Create 클릭


 



 

3. dig weight.aws.idunbiz.com 실행

 



 




 


  • Latency Policy 사용




쿼리 요청을 하는 사용자의 위치에 따라 다른 아이피를 리턴하고자 할 경우 사용한다. latency의 경우 응답 시간이 짧은 서버의 아이피를 리턴한다. 유사하게 Routing Policy를 Geolocation으로 할 경우 대륙, 국가, 주 단위로 설정할 수 있다.


 

1. Create Record Set 클릭

∙ Name : application
∙ Value : 100.100.100.1
∙ Routing Policy : Latency
∙ Region : us-west-2
∙ Set ID : Oregon center
∙ Create 클릭


2. Create Record Set 클릭

∙ Name : application
∙ Value : 100.100.100.2
∙ Routing Policy : Latency
∙ Region : ap-northeast-1
∙ Set ID : Tokyo center
∙ Create 클릭


 



 

3. dig application.aws.idunbiz.com 실행

Oregon 리전의 인스턴스에서 룩업한 결과


 



 

사무실 PC에서 룩업한 결과


 



 




 


  • Health Check로 Failover 활용




두 대의 웹 서버가 서비스 중일 때, Primary 서버에 문제가 발생한 경우 Secondary 서버로 failover 된다.


 

1. 왼쪽 메뉴에서 Health Checks 클릭
2. Create Health Check 클릭
3. Create Health Check 페이지

∙ IP Address : 50.112.150.102
∙ Request Interval : Fast (10 seconds)
∙ Failure Threshold : 2
∙ Create 클릭


4. Create Record Set 클릭

∙ Name : failover
∙ Value : 50.112.150.102
∙ Routing Policy : Failover
∙ Failover Record Type : Primary
∙ Associate with Health Check : Yes
∙ Health Check to Associate : http://50.112.150.102:80/ 선택
∙ Create 클릭


5. Create Record Set 클릭

∙ Name : failover
∙ Value : 52.11.212.162
∙ Routing Policy : Failover
∙ Failover Record Type : Secondary
∙ Associate with Health Check : No
∙ Create 클릭


 



 

6. 확인

∙ Primary 서버에 접속하여 httpd stop 한다.
∙ Health Checks에 생성한 체커의 상태가 Unhealthy로 변경 된다.
∙ dig failover.aws.idunbiz.com 을 실행하면 Secondary IP가 노출된다.


 




 


  • Alias 활용




Alias를 사용할 경우 S3, ELB, CloudFront, Route53 호스트 존의 EndPoint로 매핑할 수 있다. 별칭으로 사용되며, CNAME과 다르게 중간 룩업 과정이 생략되어 나타나므로 요청자에게 불필요한 정보를 제공하지 않을 수 있다. Evaluate Target Health를 통해서 상태 체크가 가능하다.


 

1. Create Record Set 클릭

∙ Name : alias
∙ Alias : Yes
∙ Alias Target : dualstack.test-2139921278.ap-northeast-1.elb.amazonaws.com.
등록되어 있는 ELB가 있으면 선택 가능하다.
∙ Create 클릭


2. dig alias.aws.idunbiz.com 실행

 



 

CNAME과 다르게 ELB의 DNS는 표기되지 않는다.


3. Evaluate Target Health란?

Health Checks를 직접 만들지 않아도 기본값으로 정의된 체커를 사용할 수 있다. 이것은 Evaluate Target Health를 Yes로 설정한 경우 자동 적용된다. 주로 ELB의 상태체크에 사용되며 서버의 상태를 체크하지는 않는다.


 

 




Private DNS 설정






 

인터넷에서는 사용할 수 없지만 VPC내에서 사용할 수 있는 Private DNS를 관리한다.

 


  • Private Hosted Zone 생성




1. 콘솔에서 Route53 클릭
2. 왼쪽 메뉴에서 Hosted Zones 클릭
3. Create Hosted Zone 클릭

∙ Domain Name : arang.internal
∙ Comment : Private Zone
∙ Type : Private Hosted Zone for Amazon VPC 선택
∙ VPC ID : Lab VPC 선택 (리전별로 VPC를 선택할 수 있다.)
∙ Create 클릭


 



 

NS와 SOA 레코드를 갖는 Private Zone이 생성되었다.


 




 


  • VPC 설정




1. 콘솔에서 VPC 클릭
2. DHCP Options Sets 클릭
3. Create DHCP options set 클릭

∙ Name Tag : internal
∙ Domain name : arang.internal
∙ Domain name servers : AmazonProvidedDNS
∙ Yes, Create 클릭


 



 

4. 왼쪽 메뉴에서 Your VPCs 클릭
5. Lab VPC 선택
6. Summary 탭 선택

 



 

VPC를 새로 만든 경우 default와 다르게 DNS hostnames 값이 no로 되어있다.


7. Lab VPC 우클릭

 



 

∙ Edit DNS Hostnames 클릭
∙ DNS Hostnames : Yes
∙ Save 클릭


8. Lab VPC 우클릭

∙ Edit DHCP Options Set 클릭
∙ DHCP Options Set : internal 선택
∙ Save 클릭


 



 

9. Lab VPC 설정 결과

 



 

∙ DNS resolution이 no로 되어 있으면 lookup이 차단된다.
∙ DNS hostnames가 no로 되어 있으면 호스트를 못 찾는다. 인스턴스를 새로 생성할 경우 Public DNS가 할당되지 않는다.


10. DHCP 설정 확인

∙ 해당 VPC의 한 인스턴스에 접속하여 프로세스를 확인하면 아래와 같은 데몬을 확인할 수 있다.


 



 

∙ cat /var/lib/dhclient/dhclient-eth0.leases 실행


 



 

default private domain-name이 us-west-2.compute.internal이다.


 



 

renew 시간이 되면 DHCP에 접근해서 새로운 정보를 가져온다.


 




 


  • 레코드 셋 생성




1. 콘솔에서 Route53 클릭
2. 왼쪽 메뉴에서 Hosted Zones 클릭
3. arang.internal 도메인명 클릭
4. Create Record Set 클릭

∙ Name : test1
∙ Type : A-IPv4 address
∙ Value : 10.50.1.232
∙ Create 클릭


5. dig test1.arang.internal 실행

 



 

VPC 내부에서만 룩업이 가능한 Private DNS를 사용할 수 있다.


 

 




참고



  • Route53은 분산된 DNS 서버들에 데이터가 모두 전파된 후 응답하므로 반영 시간이 느리다. (영역 전송을 강제로 할 수 없다.)