[AWS SAA-C03] Route 53

이재민·2024년 6월 2일
0

AWS SAA-C03

목록 보기
9/22

Route 53

  • 고가용성, 확장성을 갖춘, 완전히 관리되며 권한있는 DNS다.
  • 권한이 있다라는 뜻은 고객인 우리가 DNS 레코드를 업데이트 할 수 있다는 의미다.
    • 즉, DNS에 대해 완전히 제어할 수 있다.
  • Route 53 역시 도메인 이름 레지스트라로 도메인 이름을 등록할 수 있다.
  • Route 53의 리소스 관련 상태 확인을 확인할 수 있다.
  • 100% SLA 가용성을 제공하는 유일한 AWS 서비스입니다
  • Route 53에서 여러 DNS 레코드를 정의하고 레코드를 통해 특정 도메인으로 라우팅하는 방법을 정의한다.

레코드가 갖고 있는 속성

  • 도메인/서브도메인 이름
  • 레코드 타입
    • A: 호스트 이름과 IPv4 IP를 매핑
    • AAAA: 호스트 이름과 IPv6 매핑
    • CNAME: 호스트 이름을 다른 호스트 이름과 매핑
      • 대상 호스트 이름은 A나 AAAA 레코드가 될 수 있다.
      • Route 53에서 DNS 이름 공간 또는 Zone Apex의 상위 노드에 대한 CNAMES를 생성할 수 없다.
      • ex) example.com에 CNAME을 만들 수는 없지만 www.example.com에 대한 CNAME 레코드는 만들 수 없다.
      • 즉, 루트 도메인 이름이 아닌 경우에만 사용할 수 있다.
    • NS: 호스팅 영역의 네임 서버다. 트래픽이 도메인으로 라우팅 되는 방식을 제어한다.
      서버의 DNS이름 또는 IP주소로 호스팅 존에 대한 DNS 쿼리에 응답이 가능하다.
    • CAA, DS. MX, NAPTR, PTR, SOA, TXT, SPF, SRV 등
  • Value: IP
  • 라우팅 정책: Route 53이 쿼리에 응답하는 방식
  • TTL: DNS 리졸버에서 레코드가 캐싱되는 시간.

호스팅 존

  • 호스팅 존은 레코드의 컨테이너다.
  • 도메인과 서브도메인으로 가는 트래픽의 라우팅 방식을 정의한다.
  • 호스팅 존에 두 종류가 있는데 퍼블릭 호스팅 존과 프라이빗 호스팅 존이 있다.
  • 프라이빗 호스팅 존: 가상 프라이빗 클라우드(VPC)만이 URL을 리졸브 할 수 있다.
  • 퍼블릭 호스팅 존 : 퍼블릭 호스팅 존은 공개된 클라이언트로부터 온 쿼리에 응답할 수 있다.

CNAME vs Alias

로드밸런서나 CloudFront 등 AWS 리소스를 사용하는 경우 호스트 이름이 노출된다.
도메인에 호스트 이름을 매핑할 수 있다.
도메인에 AWS 리소스를 매핑하는 경우는 2가지 옵션이 있을 수 있다.
CNAME, Alias

1. CNAME

  • CNAME 레코드로 호스트 이름이 다른 호스트 이름으로 향하도록 할 수 있다.
    • ex) app.mydomain.com -> blabla.anything.com
  • 이건 루트 도메인 이름이 아닌 경우에만 가능해서 mydomain.com 앞에 뭔가 붙어야 한다.

2. Alias

  • 호스트 이름이 특정 AWS 리소스로 향하도록 할 수 있다.
    • ex) app.mydomain.com -> blabla.amazonaws.com
  • 루트 및 비루트 도메인 모두에 작동한다.
  • Alias는 무료다.
  • 자체적으로 상태 확인이 가능하다.
  • AWS의 리소스에만 매핑되어 있다.
  • CNAME과 달리 Alias는 Zone Apex라는 DNS 네임스페이스의 상위 노드로 사용될 수 있다.
  • Alias 레코드를 사용하면 TTL을 설정할 수 없다.
  • 대신, Route 53에 의해 자동으로 설정된다.
  • Alias 대상은 다음과 같다.
    • ELB, CloudFront 배포, API Gateway, Elastic beanstalk, S3 웹사이트, S3 버킷은 불가, VPC 인터페이스 엔드포인트 Global Accelerator 등이 있다.
  • EC2의 DNS 이름에 대해서는 Alias 레코드 설정할 수 없다.

Route 정책

  • 라우팅 정책은 Route 53이 DNS 쿼리에 응답하는 것을 돕는다.

단순 라우팅 정책(Simple)

  • 트래픽을 단일 리소스로 보낸다.
  • 동일한 레코드에 여러 개의 ip 지정할 수도 있다.
  • 그럼 DNS가 다중 값을 응답하고 클라이언트가 랜덤으로 골라서 라우팅에 적용한다.

가중치 기반 정책(Weighted)

  • 가중치를 활용해 요청의 일부 비율을 특정 리소스로 보낸다.
  • 각 레코드에 상대적으로 가중치를 할당한다.
  • DNS 레코드들은 동일한 이름과 유형을 가져야 하며 상태 확인과도 관련될 수 있다.
  • 서로 다른 지역들에 걸쳐 로드 밸런싱을 할 때나 적은 양의 트래픽을 보내 새 애플리케이션을 테스트하는 경우에 사용한다.

대기 시간 기반 정책(Latency-based)

  • 가장 가까운 리소스로 리다이렉팅을 한다.(지연 시간이 가장 짧은)
  • 지연 시간은 유저가 레코드로 가장 가까운 식별된 AWS 리전에 연결하기까지 걸리는 시간을 기반으로 측정된다.

장애 조치 정책(Failover)

  • 상태확인과 DNS 레코드를 묶은 방식이다.
  • 세 가지의 상태 확인이 가능하다.
    • 공용 엔드 포인트를 모니터링(애플리케이션, 서버, 혹은 다른 AWS 리소스가 될 수 있다.)
    • 계산된 상태 확인(다른 상태 확인을 모니터링)
    • CloudWatch 경보의 상태를 모니터링
  • Primary 리소스 / Secondary - Disaster Recovery 리소스가 필요하다.
  • Primary에 에러가 발생하면 Disaster Recovery로 쿼리한다.

지리적 위치 (Geolocation)

  • 사용자의 실제 위치를 기반으로 합니다. 즉 가장 가까운 곳 IP로 응답한다.
  • 사용 사례로는 콘텐츠 분산을 제한하고 로드 밸런싱 등을 실행하는 웹사이트 현지화가 있다.

지리 근접 (GeoProximity)

  • 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 리소스로 라우팅한다.
  • 편향값을 사용해 특정 위치를 기반으로 리소스를 더 많은 트래픽을 이동시킨다.
    • 지리 근접 라우팅은 편향을 증가시켜 한 리전에서 다른 리전으로 트래픽을 보낼 때 유용하다.

IP 기반 (IP-based)

  • 클라이언트 IP 주소를 기반으로 라우팅한다.
  • Route 53에서 CIDR 목록을 정의(클라이언트의 IP 범위)
  • CIDR에 따라 트래픽을 어느 로케이션으로 보내야 하는지 정한다.
    • 이걸 사용해 성능 최적화, 네트워크 비용 절감이 가능하다.
    • IP를 미리 알고 있으니까 가능, IP가 어디서 오는지 알고 있으니까

다중 값 (Multi-Value)

  • 트래픽을 다중 리소스로 라우팅할 때 사용한다.
  • Route 53은 다중 값과 리소스를 반환한다.
  • 상태 확인과 연결하면 다중 값 정책에서 반환되는 유일한 리소스는 정상 상태 확인과 관련이 있다.
  • 각각의 다중 값 쿼리에 최대 8개의 정상 레코드가 반환된다.
  • ELB와 유사해 보이지만 ELB를 대체할 수는 없다.
  • 클라이언트 측면의 로드 밸런싱이다.
  • 다중 값이 있는 단순한 라우팅의 경우에는 단순 라우팅 정책은 상태 확인을 허용하지 않기 때문에 단순 라우팅 정책의 쿼리가 반환하는 리소스 중 하나는 비정상일 가능성이 있다.
  • 다중 라우팅은 정상 상태 확인과 연동되며, 정상인 리소스를 반환할 수 있다.
profile
문제 해결과 개선 과제를 수행하며 성장을 추구하는 것을 좋아합니다.

0개의 댓글