DNS 란 (DNS concept)

사람이 읽을 수 있는 주소 체계로, ip 주소를 도메인 이름으로 바꿔주는 서비스를 Domain Name Service라고 한다.
즉 , DNS는 도메인 이름을 ip 주소로 변환해서 웹 사이트로 트래픽을 라우팅한다.


8.8.8.4 -> google.com

DNS Hierarchy and Management (DNS 구성 및 체계)

DNS 의 구성 및 체계에 대해 제대로 이해하기 위해서는 인터넷 도메인 체계에 대한 이해를 제대로 하고 있어야 한다.
인터넷 도메인 체계에서 최상위는 “Root” , 즉 인터넷 도메인의 시작점이다.
Root Domain 바로 아래에 있는 것을 1단계 도메인(최상위 도메인)이라고 하고, 2단계, 3단계 순으로 차차 내려간다.

참고할 만한 용어 : TTL

TTL (Time to Live) concept
When a packet of information is created and sent out across the Internet, there is a risk that it will continue to pass from router to router indefinitely. To mitigate this possibility, packets are designed with an expiration called a time-to-live or hop limit. Packet TTL can also be useful in determining how long a packet has been in circulation, and allow the sender to receive information about a packet’s path through the Internet.

DNS의 동작원리

Amazon Route 53

개념
가용성과 확정성이 우수한 클라우드 기반의 DNS 웹 서비스

주요 특성
1. 동적으로 사용자에게 노출될 DNS 레코드 타입과 값 조정
2. 각종 다양한 로드 밸런싱 기능을 지원
3. IPv6와 완벽하게 호환됨
4. EC2, ELB, S3 Bucket 등 인프라로 직접 연결 가능 (AWS 다른 서비스와 연동이 자유로움)

주요 특징 (5가지)

1. Health Check & Failover
Route 53의 Health check 기능을 사용하면, 상태 확인 에이전트가 route 53에 연결된 응용프로그램의 각 끝점을 모니터링하여 서비스의 사용 가능여부에 대해 확인하고, 정상 또는 비정상으로 상태를 반환한다. 이를 통해 사용자가 직접 접속한 것과 유사한 상황을 시뮬레이션 할 수 있다.

리소스의 연결상태가 좋지 않을 때, 알림 메일을 수신하도록 각 상태 검사에 대해 cloudwatch alert을 구성할 수도 있다. 또한 장애 조치 (DNS Failover)가 구성되어 있고, 에이전트가 정상이 아닌 것으로 판단되면, route 53는 외부 사용자를 정상적으로 연결 가능한 사전 정의된 대체 서버나 지정된 end-point로 연결을 전환시켜줄 수 있다.

2. High Availability DNS Service & DNS Failover
상태 검사와 연결된 장애 조치 레코드를 구성할 수 있다. 상태 검사에서 연결 상태로 정상상태가 반환되면, 응용 프로그램은 계속 정상적으로 작동한다. 하지만 상태검사에서 연결 상태가 비정상 상태가 반환되면, Route 53에서 정상상태가 아닌 end-point을 반환 하지 않고, 오류 복구 레코드 값에 대해 응답한다.

DNS Failover를 활용하면, 외부 사용자를 응용프로그램의 오류나 시스템 장애 상황에서 미리 정의된 응용프로그램이나 정상적으로 도달가능한 외부 리소스로 연결을 전환한다.
이렇게 응용프로그램이나 시스템의 장애 상황에서 정상적인 end-point로 장애 조치(Fail-over)를 수행하면, 웹사이트 또는 앱의 down-time을 최소활 수 있다.

3. Latency Based Routing (가장 지연 시간이 짧은 엔드포인트로 라우팅을 지정하는 방식)
Route 53은 동일한 기능을 수행하는 여러 IDC에 EC2 리소스가 있고, 가장 지연 시간이 적은 리소스로 Route 53에서 DNS 쿼리에 응답처리를 하여, 지연 시간 라우팅(Latency Based Routing) 서비스를 제공한다.

지연 시간 기반 라우팅은 최종 사용자에게 최저 지연 시간을 제공하는 endpoint로 라우팅을 제공하며, 일정 기간동안 수행한 지연시간 측정을 기반으로 하며, 주기적으로 지연 시간을 측정하여, 변경사항을 반영한다.

4. Weighted Round Robin Routing (가중치 기반 라우팅 - 한마디로 유저가 지정하는 가중치에 따라서, 라우팅을 지정하는 형식)
여러 리소스 레코드를 단일 DNS 이름으로 연결 후, 같은 기능을 수행하는 여러 리소스에 대해 사용자가 지정한 가중치 비율로 트래픽을 라우팅할 수 있다.

5. Geolocation Routing (지역 기반 라우팅, 한마디로 요청자가 위치한 지역과 가장 가까운 엔드포인트로 라우팅을 지정하는 방식)
요청이 시작된 지리적 위치를 기반으로 특정 엔드포인트에 대한 라우팅을 수행하는 기능이다.

국가 별 또는 사용자의 지역적 위치에 따라 현지화된 컨텐츠를 사용자별로 제공하거나, 라이센스가 있는 시장에만 컨텐츠 배포를 한정하거나 배포대상으로 선택할 수 있다. 미국에서는 대륙, 국가 또는 주를 기준으로 지리적 위치를 정할 수 있다. 또한 지역 기반 라우팅 DNS는 LBR (Latency Based Routing) 또는 DNS Failover와 결합하여 Performance 향상을 위한 다양한 환경을 구성할 수 있다.

DNS 동작원리

Route 53 Concept & Explanation

개념
가용성과 확정성이 우수한 클라우드 기반의 DNS 웹 서비스

주요 특성
1. 동적으로 사용자에게 노출될 DNS 레코드 타입과 값 조정
2. 각종 다양한 로드 밸런싱 기능을 지원
3. IPv6와 완벽하게 호환됨
4. EC2, ELB, S3 Bucket 등 인프라로 직접 연결 가능 (AWS 다른 서비스와 연동이 자유로움)

주요 특징 (5가지)
1. Health Check & Failover
Route 53의 Health check 기능을 사용하면, 상태 확인 에이전트가 route 53에 연결된 응용프로그램의 각 끝점을 모니터링하여 서비스의 사용 가능여부에 대해 확인하고, 정상 또는 비정상으로 상태를 반환한다. 이를 통해 사용자가 직접 접속한 것과 유사한 상황을 시뮬레이션 할 수 있다.

리소스의 연결상태가 좋지 않을 때, 알림 메일을 수신하도록 각 상태 검사에 대해 cloudwatch alert을 구성할 수도 있다. 또한 장애 조치 (DNS Failover)가 구성되어 있고, 에이전트가 정상이 아닌 것으로 판단되면, route 53는 외부 사용자를 정상적으로 연결 가능한 사전 정의된 대체 서버나 지정된 end-point로 연결을 전환시켜줄 수 있다.

2. High Availability DNS Service & DNS Failover
상태 검사와 연결된 장애 조치 레코드를 구성할 수 있다. 상태 검사에서 연결 상태로 정상상태가 반환되면, 응용 프로그램은 계속 정상적으로 작동한다. 하지만 상태검사에서 연결 상태가 비정상 상태가 반환되면, Route 53에서 정상상태가 아닌 end-point을 반환 하지 않고, 오류 복구 레코드 값에 대해 응답한다.

DNS Failover를 활용하면, 외부 사용자를 응용프로그램의 오류나 시스템 장애 상황에서 미리 정의된 응용프로그램이나 정상적으로 도달가능한 외부 리소스로 연결을 전환한다.
이렇게 응용프로그램이나 시스템의 장애 상황에서 정상적인 end-point로 장애 조치(Fail-over)를 수행하면, 웹사이트 또는 앱의 down-time을 최소활 수 있다.

3. Latency Based Routing (가장 지연 시간이 짧은 엔드포인트로 라우팅을 지정하는 방식)
Route 53은 동일한 기능을 수행하는 여러 IDC에 EC2 리소스가 있고, 가장 지연 시간이 적은 리소스로 Route 53에서 DNS 쿼리에 응답처리를 하여, 지연 시간 라우팅(Latency Based Routing) 서비스를 제공한다.

지연 시간 기반 라우팅은 최종 사용자에게 최저 지연 시간을 제공하는 endpoint로 라우팅을 제공하며, 일정 기간동안 수행한 지연시간 측정을 기반으로 하며, 주기적으로 지연 시간을 측정하여, 변경사항을 반영한다.

4. Weighted Round Robin Routing (가중치 기반 라우팅 - 한마디로 유저가 지정하는 가중치에 따라서, 라우팅을 지정하는 형식)
여러 리소스 레코드를 단일 DNS 이름으로 연결 후, 같은 기능을 수행하는 여러 리소스에 대해 사용자가 지정한 가중치 비율로 트래픽을 라우팅할 수 있다.

5. Geolocation Routing (지역 기반 라우팅, 한마디로 요청자가 위치한 지역과 가장 가까운 엔드포인트로 라우팅을 지정하는 방식)
요청이 시작된 지리적 위치를 기반으로 특정 엔드포인트에 대한 라우팅을 수행하는 기능이다.

국가 별 또는 사용자의 지역적 위치에 따라 현지화된 컨텐츠를 사용자별로 제공하거나, 라이센스가 있는 시장에만 컨텐츠 배포를 한정하거나 배포대상으로 선택할 수 있다. 미국에서는 대륙, 국가 또는 주를 기준으로 지리적 위치를 정할 수 있다. 또한 지역 기반 라우팅 DNS는 LBR (Latency Based Routing) 또는 DNS Failover와 결합하여 Performance 향상을 위한 다양한 환경을 구성할 수 있다.

Lab 1 : Route 53 Service 이용하기 - DNS 구입하기

Domain 구입하기

Lab 2 : Amazon Route 53을 통해 웹 서버에 도메인 연결하기

순서 1. EC2 > 탄력적 주소 (Elastic IP) > 탄력적 주소 할당(Assign Elastic IP)

순서 2. 옵션은 아래와 같이 select 한다.

순서 3. 할당 완료된 elastic ip 를 선택하고 “associate elastic ip address”를 클릭하여, 탄력적 Ip 주소를 연결해준다.

순서 .4.
인스턴스와의 연결을 위해 임시로 인스턴스를 생성해준다.

순서 5. 다시 인스턴스 페이지로 돌아가서, Elastic IP 주소를 확인한다.

54.255.5.66

순서 6. 다시 route 53 페이지로 돌아가서, [호스팅 영역] 클릭, 등록된 “도메인 이름(나의 경우에는 saga9e.net) 을 클릭해서
해당 도메인 이름 상세페이지로 접속한다.

“Create record” 버튼을 클릭해서,아래의 항목으로 fill 하고 생성한다.

순서 7. 레코드 이름에 www을 입력하고, Value에는 ec2 인스턴스의 elastic ip를 입력하고,
나머지 값들은 따로 입력하지 않고 그대로 둔채로 create records를 클릭하면,
아래와 같은 화면과 함께 정상적으로 hosted zones를 등록할 수 있다.

한마디로 지금 작업한게, 구매한 도메인인 saga9e.net 에 서브도메인 (호스트네임)인 www를 쓸 수 있도록 옵션을 넣은 것이다.

-lab 끝-

profile
행복과 성장에 대해 고민하는 사람🤓 , 포스팅 주기가 잦지 않을 수 있습니다만, 항상 좋은 내용을 담고자 합니다🙇🏼

0개의 댓글