안녕하세요 levin 입니다. AWS study 아홉 번째 시간,
DNS와 라우팅 내용입니다.
은 example.com 과 같이 사람이 읽기 편한 도메인 네임과 머신이 읽을 수 있는 IP 주소를 맵핑하기 위한 시스템이다.
인터넷을 구성하는 수십 억 개의 객체는 이름 부여 규칙으로 체계적으로 저직화 및 관리된다. 인터넷 네임 시스템은 네임스페이스 라는 도메인 네임 체계로 관리된다.
도메인 네임과 실제 IP 주소를 연결하는 일은 네임 서버가 담당한다. 모든 컴퓨터는 로컬에서 접근할 수 있는 간단한 네임 서버 데이터베이스를 지니며, 여기엔 localhost와 같은 호스트네임 엔트리와 IP 주소 정보가 포함된다.
인터넷 주소 체계에서, 도메인은 단일 도메인 네임으로 식별 가능한, 하나 이상의 서버, 데이터 저장소 또는 디지털 리소스를 의미한다. 도메인 네임은 해당 도메인을 위해 공식 기구에 등록된 이름이며, 등록한 이름은 도메인이 가리키는 리소스를 네트워크로 직접 연결하는 데 사용될 수 있다.
톱레벨 네임 서버는 관련 커리에 응답하기 전에 새 도메인 네임의 존재를 파악하고 있어야 한다. 네임 서버에 등록된 새로운 도메인 네임을 전파하는 일은 도메인 등록자 또는 레지스트라가 수행한다.
도메인 네임 등록자는 도메인 네임의 예약을 관리하는 사업자로서, 톱레벨 도메인 업무를 관장하는 VeriSign과 같은 등록 운영자와 협업해 도메인 등록 업무가 글로벌 단위로 처리될 수 있도록 한다. Amazon Route 53은 도메인 네임 등록자와 같은 역할을 수행하는 서비스다.
도메인 네임은 여러 개의 요소로 구성된다. .com 또는 .org 등 도메인 네임의 최우측 텍스는 TLD, 톱레벨 도메인이고, TLD의 우측 요소, 예를 들어 amazon.com 에서 amazon은 2단계 도메인, 세컨드레벨 도메인(SLD) 이다.
기본 DNS 설정에서 시스템의 기본 도메인 네임은 부분적인 도메인 네임과 서버에 대한 요청 사항이 자동으로 결합돼 완성된다.
FQDN(Fully Qualified Domain Name)은 서브도메인과 TLD를 포함해 도메인의 절대 주소 정보를 모두 지니며, TLD 뒤에 다시 후속 닷 문자를 추가해 FQDN임을 명시한다.
존은 DNS 도메인을 정의한 것이며, Route 53은 존을 호스팅 영역이라 부른다. 존 파일은 도메인 내에서 DNS 주소에 맵핑되는 리소스를 설명하는 텍스트 파일로서 다음 레코드로 구성된다.
존 파일의 리소스 레코드에 입력하는 레코드 타입은 레코드 데이터의 포맷과 활용 방법을 결정한다. 현재 약 40여 개의 레코드 타입이 사용되고 있으며, Route 53에서 제공 하는 주요 레코드 타입은 아래와 같다.
IP 주소 변경 없이 ELB 등 특정 리소스로 트래팩 경로를 설정할 수 있다.
Route 53은 레코드 세트에서 알리아스 레코드를 사용해 AWS의 네트워크로 연결된 리소스로 직접 라우팅할 수 있도록 한다.
Route 53 에서는 간단하게 도메인 등록 작업을 마칠 수 있다. AWS 인프라와 연계된 도메인의 경우 Route 53을 이용해 업무 절차를 간소화할 수 있다. 기존 도메인을 AWS로 이전하는 경우 기존 레지스트라의 어드민 인터페이스에 있는 도메인 이전 설정을 변경하고, 이에 대한 인증 코드를 요청한 뒤 Route 53에 해당 인증 코드를 제공하면 이전 작업이 완료된다.
Route 53은 호스팅 영역 설정을 통해 사용자가 브라우저, 이메일 클라이언트, 또는 프로그래밍 방식으로 사용자의 도메인 네임을 호출해 사용할 수 있도록 돕는다.
새 호스팅영역을 생성한 후 사용자의 도메인 네임을 입력하면 해당 존을 퍼블릭 또는 프라이빗 호스팅 영역 중 어떤 방식으로 사용할 것인지 선택이 가능하며, 프라이빗 호스팅 영역은 사용자가 지정한 VPC를 통해서만 접근이 가능하고 퍼블릭은 외부 사용자도 접근이 가능하다.
Route 53은 자동으로 4개의 네임 서버 주소를 제공하고 그다음부터는 새 레코드 세트 정의를 통해 사용자가 원하는 도메인과 서브도메인의 관계를 설정해 사용하면 된다.
Route 53은 리소스의 헬스 체크 모니터링 기능을 제공한다. 새 레코드 생성 시 라우팅 정책 선택 옵션이 제공되며, Simple 정책을 선택하면 헬스 체크와 정책을 간단하게 연결할 수 있다.
헬스 체크 또는 상태 검사 기능은 레코드 세트에 연결된 리소스의 성능을 주기적으로 점검한다. 점검 중 리소스가 적절한 반응이 없을 경우 Route 53은 해당 리소스가 오프라인 상태가 됐다고 판단하고 트래픽을 백업 리소스로 우회시킨다.
Route 53의 라우팅 정책은 도메인 레벨에서 유연성을 제공하며, 모든 AWS 리전에서 일관되게 적용할 수 있다. 가장 간단한 정책은 심플 라우팅으로 모든 요청을 사용자가 지정한 IP 주소 또는 도메인 네임으로 전송한다. 심플 라우팅은 세트 생성 시 기본 라우팅 정책이기도 하다.
가중치 라우팅은 사용자가 설정한 비율에 따라 다수의 리소스에 트래픽을 분산한다. 예를 들어 컴퓨팅과 메모리 용량에 여유가 있는 좀 더 큰 서버의 가중치를 높여서 그만큼 많이 처리할 수 있게 한다. 지연 라우팅은 다수의 AWS 리전에서 실행되는 리소스를 조합해 최고의 사용자 경험을 제공하기 위한 방법이다. 고객의 나라 위치에 맞게 리전에 리소스를 분산 시킨 뒤 지연이 가장 낮은 쪽인 각 리전으로 향하게 하는 방법이다. 실패대응 라우팅은 헬스 체크 결과 정상적으로 작동하는 리소스에 우선적으로 트래픽을 전송한다. 만약 기본 리소스가 오프라인이 되면 다음 트래픽은 2차 레코드 세트로 정의된 보조 리소스로 전송하는 방식이다. 지리적 라우팅은 대륙, 국가, 미국의 주 등 요청이 발신된 지역을 기준으로 라우팅 방식을 결정한다. 다변량 라우팅은 고가용성을 제공하기 위해 헬스 체크 설정과 다변량 라우팅 정책을 경합할 수 있다. 다수의 변수 값을 지닌 레코드 세트로 하나의 리소스를 가리키도록 하고, 이를 헬스 체크와 연계하는 방식이다. 최대 8개의 레코드를 이용해 병렬적으로 리소스를 가리키도록 할 수 있고, 세트 ID 값으로 서로를 연결하면 된다. Route 53은 헬스 체크를 통해 리소스 상태를 모니터링하고, 정상 리소스에 무작위로 트래픽을 전송한다.
Route 53의 Traffic Flow는 복잡한 라우팅 정책 조합을 시각화하는 콘솔 기반 그래픽 인터페이스다. 라우팅 정책과 AWS계정의 모든 리소스 엔드포인트를 통합할 수 있으므로, 복잡할 수 있는 라우팅 구조를 쉽고 간단하게 구현할 수 있게 해주며, 다양한 라우팅 템플릿을 바로 활용하거나 템플릿 커스티마이징도 가능하다.
근접위치 라우팅이 특징인데 기존 지리적 라우팅 정책 옵션에 비해 월등히 세분화된 위치 정밀도를 제공한다. 근접위치 기반 라우팅 룰은 리소스 간 위치적 관련성을 위도 및 경도 기반으로 측정하거나 AWS 리전 단위로 측정할 수 있다.
[Route 53 Resolver]
AWS 리소스와 AWS 외부의 리소스를 통합해 하이브리드 인프라를 구성하는 경우, Route 53 Resolver를 이용해 라우팅을 관리할 수 있다. 양방향 주소 쿼리를 이용해 AWS 리소스와 AWS 외부에 존재하는 온프레미스 리소스의 라우팅을 관리할 수 있으며, 프라이빗 및 퍼블릭 플랫폼 기반의 워크로드를 매우 간편하게 처리할 수 있다.
Route 53가 하지 못하는 전세계 고객에게 신속하게 콘텐츠를 제공하는 일을 처리할 수 있다고 한다. CloudFront는 콘텐츠를 요청한 엔드 유저와 지리적으로 가까운 엣지 로케이션을 기반으로 제공되는 네트워크 서비스로 사용자가 CloudFront 배포라 부르는 콘텐츠 배포 방식을 설정하면 글로벌 네트워크를 통해 전세계 고객에게 콘텐츠를 제공할 수 있다.
엔드 유저가 CloudFront 엔드포인트에 요청을 보내는 것이 아니라 Route 53 환경설정으로 DNS 요청을 CloudFront 배포에 전달하면 엔드 유저가 자동으로 자신과 가까운 엔드포인트로 연결되는 방식이다.