Route 53

2023. 7. 4. 13:35·Cloud/AWS
반응형

Route 53

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

레코드가 가지는 값

  • 도메인/서브도메인 이름
  • 레코드 타입
    • A: 호스트 이름과 IPv4 IP를 매핑
    • AAAA: 호스트 이름과 IPv6를 매핑
    • CNAME: 호스트 이름을 다른 호스트 이름과 매핑
      • 대상 호스트 이름은 A나 AAAA 레코드가 될 수 있다.
      • Route 53에서 DNS 이름 공간 또는 Zone Apex의 상위 노드에 대한 CNAMES를 생성할 수 없다.
      • 예를 들어 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 리졸버에서 레코드가 캐싱되는 시간이다.

참고로 53은 전통적인 DNS 포트다.

호스팅 존

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

Alias

AWS를 사용하는 경우 AWS의 자체적인 호스트 이름이 생긴다.

이를 우리가 소유한 도메인에 호스트 이름을 매핑하려고 할 수 있다. 이때 CNAME과 ALIAS를 사용할 수 있다. 

 

CNAME은 위에서 살펴봤으므로 ALIAS에 대해 알아보겠다.

  • Route53에 한정되지만 별칭 레코드도 있다.
  • 호스트 이름이 특정 AWS 리소스로 향하도록 할 수 있다. 오직 AWS의 리소스에만 매핑이 되어 있다.
  • 루트 도메인, 비루트 도메인 모두에 작동한다.
  • 무료이고, 자체적으로 상태 확인이 가능하다.
  • EC2 DNS 이름에 대해서는 별칭 레코드를 설정할 수 없다.
  • 별칭 레코드는 TTL을 설정할 수 없다.
  • 대상
    • ELB
    • CloudFront
    • API Gateway
    • 일래스틱 빈스톡 환경
    • S3 웹사이트 (버킷 X)
    • VPC 인터페이스 엔드포인트
    • Global Accelerator 가속기
    • 동일 호스트 존의 Route 53

Route 정책

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

단순 라우팅 정책 (Simple)

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

가중치 기반 정책 (Weighted)

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

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

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

장애 조치 정책 (Failover)

  • 상태확인과 DNS 레코드를 묶은 방식이다.
  • 공용 엔드 포인트 모니터링, 계산된 상태 확인, 클라우드 워치의 경보 상태를 모니터링이 있다.
  • Primary 리소스 / Disaster Recovery 리소스가 필요하다.
  • Primary에 에러가 발생하면 Disaster Recovery로 쿼리한다.

지리적 위치 (Geolocation)

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

지리 근접 (GeoProximity)

  • 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 리소스로 라우팅한다.
  • 편향값을 사용해 특정 위치를 기반으로 리소스를 더 많은 트래픽을 이동시킨다.

IP 기반 (IP-based)

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

다중 값 (Multi-Value)

  • 트래픽을 다중 리소스로 라우팅할 때 사용한다.
  • Route 53은 다중 값과 리소스를 반환한다.
  • 상태 확인과 연결하면 다중 값 정책에서 반환되는 유일한 리소스는 정상 상태 확인과 관련이 있다.
  • 각각의 다중 값 쿼리에 최대 8개의 정상 레코드가 반환된다.
  • ELB와 유사해 보이지만 ELB를 대체할 수는 없다.
  • 클라이언트 측면의 로드 밸런싱이다.
  • 다중 값이 있는 단순한 라우팅의 경우에는 단순 라우팅 정책은 상태 확인을 허용하지 않기 때문에 단순 라우팅 정책의 쿼리가 반환하는 리소스 중 하나는 비정상일 가능성이 있습니다
  • 다중 라우팅은 정상 상태 확인과 연동되며, 정상인 리소스를 반환할 수 있다.
반응형
'Cloud/AWS' 카테고리의 다른 글
  • S3 고급 기능 및 보안
  • S3 기초
  • RDS, Aurora, ElasticCache
  • 고가용성 및 확장성 (ELB 및 ASG)
Debin
Debin
공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
  • Debin
    리팩토링하는 블로그
    Debin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DB
        • DB 기초
        • MySQL
        • SQL 튜닝
      • OS
      • Network
      • Git
      • 디지털콘텐츠기획
      • 소프트웨어공학
      • 코딩테스트
        • 프로그래머스
        • 백준
        • 인프런
      • 공부 일지
      • 독서
        • 클린코드
        • 일상 속 사물이 알려주는 웹 API 디자인
        • 토비의 스프링
        • 객체지향의 사실과 오해
        • 자바 잘 읽는 법
      • 기록 및 회고
      • Cloud
        • AWS
      • 개발
        • Java
        • Spring Core
        • Spring MVC
        • Spring DB
        • Spring Boot
        • Spring Security
        • Spring Batch
        • JPA
        • Test
        • Android
      • 대외활동
        • UMC SERVER
        • 카엔프 SW 아카데미
      • 프로젝트
      • Docker
      • Gradle
      • ELK
      • 실무 이야기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

    • 본인 깃허브입니다!
  • 인기 글

  • 태그

    mysql
    spring mvc
    데이터베이스
    도커
    test
    innodb
    AWS
    spring
    redis
    프록시
    SQL
    스프링
    컨테이너
    스프링 부트
    리눅스
    spring boot
    ORM
    인덱스
    트랜잭션
    AOP
    Java
    운영체제
    객체
    자바
    코딩 #개발자 #노마드북클럽 #노개북
    container
    객체지향
    docker
    토비의 스프링
    JPA
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Debin
Route 53
상단으로

티스토리툴바