[SAA] Route 53

SMALL

1. DNS (Domain Name System)

  • 사람이 이해할 수 있는 호스트 이름을 댇상 서버 IP주소로 변환하는 역할
  • www.google.com => 172.217.18.36
  • 인터넷 기반의 시스템
  • 계층적인 네이밍 구조 사용
  • 용어 정리
    • Domain Register: Route 53, GoDaddy
    • DNS Records: A, AAAA, CNAME, NS ...
    • Zone Filee: contains DNS records
    • Name Server: resolves DNS queries(Authoritative or Non-Authoritative)
    • Top Level Domain(TLD - 최상위 도메인): .com, .us, .in, .gov, .org ...
    • Second Level Domain(SLD): amazon.com, google.com
    • Sub Domain: www.amazon.com
    • 전체는 FQDN(Full Qualifieed Domain Name)
  • How DNS Works
    • 도메인 이름을 DNS 서버에 등록(test.com)
    • 클라이언트 -> 웹서버 test.com에 접근
    • local DNS server에 요청 및 확인
    • (없다면) ICANN에 의해 관리되는 Root DNS Server에 요청 및 확인
    • Root DNS Server가 test.com은 몰라도 .com은 알고 .com의 서버 이름(NS)의 IP인 1.2.3.4로 안내함
    • Local DNS Server는 IANA에 의해 관리되는 TLD DNS Server(.com)에 방문해 다시 test.com을 물어봄
    • TLD 서버는 정확히 test.com은 모르지만 test.com의 서버 IP 5.6.7.8을 안내함
    • 최종적인 서버인 SLD DNS Server에 요청
      • SLD DNS Server는 Domain Register에 의해 관리되는 서버임
    • SLD에서 찾은 레코드 9.10.11.12를 로컬 서버에 반환
    • 로컬 서버는 9.10.11.12를 캐시에 저장하고 웹 브라우저에 반환

2. Amazon Route 53

  • 고갸용성, 확장 가능, 완전히 관리되는 권위(Authoritative, 고객이 DNS 레코드를 업데이트 할 수 있음) 있는 DNS 서비스
  • Route 53은 Domain Registrar(돋메인 등록대행자)로도 사용됨
  • 리소스의 상태를 확인할 수 있는 기능 제공
  • AWS에서 100% SLA 가용성을 제공하는 유일한 서비스
  • 53은 전통적인 DNS 포트
  • Records
    • 레코드를 통해 특정 도메인으로 라우팅하는 방법을 정의
    • 각 레코드는 다음과 같은 정보를 포함
      • domain/subdomain name: test.com
      • record types: A, AAAA
      • valuee: 123.456.789.123
      • routing policy: route 53이 쿼리에 응답하는 방식
      • ttl: 레콛드가 dns 리졸버에서 캐싱되는 시간
    • Route 53은 다음과 같은 DNS 레코드 유형을 지원
      • (must know) A / AAAA / CNAME / NS
      • (advanced) CAA / DS / MX / NAPTR / PTR / SOA / TXT / SPF / SRV
    • Record Types
      • A: 호스트 이름을 IPv4로 매핑
      • AAAA:호스트 이름을 IPv6로 매핑
      • CNAME: 호스트 이름을 다른 호스트 이름에 매핑
        • 대상 호스트 이름은 A 또는 AAAA 레코드가 있는 도메인 이름
        • DNS 네임 스페이스의 최상위 노드(Zone Apex)에 대한 CNAME 레코드를 생성할 수 없음
        • test.com에 대한 CNAME 레코드는 생성 가능, www.test.com에 대한 CNAME 레코드는 생성 불가
      • NS: 호스팅 존의 네임 서버(트래픽이 도메인으로 라우팅 되는 방식을 제어)
    • Hosted Zones
      • 호스팅 영역은 도메인 및 하위 도메인에 대한 트래픽 라우팅 방법을 정의하는 레코드를 포함하는 컨테이너
      • Public Hosted Zone: 인터넷에서 트래픽을 라우팅하는 방법을 지정하는 레코드를 포함
        • 공개된 클라이언트로부터 온 쿼리에 응답 가능
        • ex)app.publicdomain.com
      • Private Hosted Zone: 하나 이상의 VPC 내에서 트래픽을 라우팅 하는 방법을 지정하는 레코드를 포함
        • 사내망에서만 접근할 수 있는 URL, VPD내에서만 라우팅 가능
        • 도커처럼 도메인 요청 시 10.10.10.10 같은 private IP 반환
        • ex)app.company.internal
        • 호스팅 영역당 월별 비용 0.5 달러
    • Records TTL(Time to Live)
      • High TTL(ex 24hr)
        • Route 53에서의 트래픽이 적음
        • 레코드가 업데이트 되지 않은 경우가 발생할 수 있음
      • Low TTL(ex 60 sec)
        • Route53에서의 트래픽이 많음(비용 증가)
        • 레코드가 업데이트 되지 않은 기간이 짧음
        • 레코드를 쉽게 변경 가능
      • alias 를 제외한 모든 DNS 레콛드에는 TTL 필수
    • CNAME vs Alias
      • AWS Resources(Load Balancer, CloudFront..)가 AWS 호스트 이름으로 노출됨
        • lb1-1234.us-east-2.elb.amazonaws.com 를 내가 원하는 도메인으로 바꾸고 싶을 때 이용 myapp.mydomain.com
      • CNAME
        • 호스트 이름이 다른 호스트 이름으로 향하도록 하는 것 app.mydomain.com -> blabla.anything.com
        • 루트 도메인이 아닐 때 가능
      • Alias
        • 호스트 이름이 특정 AWS 리소스로 향하도록 하는 것
        • app.mydomain.com -> blabla.amazonaws.com
        • 루트 도메인이 아니어도 됨
        • 무료, 자체 health check 가능
        • Alias Records
          • 호스트 이름을 AWS 리소스에 매핑
          • DNS의 기능을 확장
          • 리소스 IP 주소 변경을 자동으로 인식
          • CNAME과 달리 DNS Name Space(Zone Apex)의 최상위 노드에 사용할 수 있음 ex) example.com
          • AWS 리소스를 위한 별칭 레코드의 타입은 항상 A 또는 AAAA (IPv4 / IPv6)
          • TTL 설정 불가 (Route 53에서 자동으로 설정)
      • Alias Records Targets
        • Elastic Load Balancers
        • CloudFront Distributions
        • API Gateways
        • Elastic Beanstalk environments
        • S3 Websites
        • VPC Interface Endpoints
        • Gloabal Accelerator
        • Route 53 record in the same hosted zone
    • Routing Polices
      • Route 53이 DNS 쿼리에 응답하는 방식 정의
      • 라우팅 이라는 단어에 혼동하지 말것!
        • 트래픽을 라우팅하는 로드 밸런서의 라우팅과는 다르다
        • DNS는 트래픽을 라우팅하지 않으며, 단지 DNS 쿼리에 응답하는 역할
      • Route 53은 다음과 같은 라우팅 정책 지원
        • Simple(단순)
          • 일반적으로 트래픽을 단일 리소스로 보내는 방식
          • 동일한 레코드에서 여러 값을 지정 가능
          • 여러 값이 반환되면 클라이언트가 임의로 하나를 선택
          • Alias가 활성화된 경우, 하나의 AWS 리소스만 지정
          • Can't be associated with Health Checks
        • Weighted(가중치 기반)
          • 각 특정 리소스로 전송되는 요청의 %를 제어
          • 각 레코드에 대한 상대적인 가중치 할당
            • traffic (%) = Weight for a specific record / Sum of all the weights for all records
            • 가중치의 합이 100이 될 필요 없음
          • DNS 레코드는 동일한 이름과 유형을 가져야 함
          • Can be associated with Health Checks
          • 사용사례: 리전간 로드 밸런싱, 새로운 애플리케이션 버전 테스트 등
          • 리소스로의 트래픽 전송을 중지하기 위해 레코드에 가중치 0을 할당
          • 모든 레코드가 가중치 0을 가진 경우, 모든 레코드가 동일하게 반환
        • Latency based(지연 시간)
          • 지연 시간이 가장 짧은(가장 가까운) 리소스로 리디렉션
          • 사용자의 지연시간이 우선 순위인 경우 매우 유용한 정책
          • 지연 시간은 사용자와 AWS 지역간의 트래픽을 기반
          • 독일 사용자는 미국으로 리디렉션될 수 있음(가장 낮은 지연시간인 경우)
          • Can be associated with Health Checks (has a failover capability)
        • Failover(장애 조치) - Active-Passive
        • Geolocation(지리 위치)
          • Different from Latency based
          • 사용자의 실제 위치를 기반으로 하는 라우팅 방식
          • 특정 대륙이나 국가, 혹은 사용자가 미국에 있는 경우에는 어떤 주에 있는지 지정하는 것(겹칠 경우 가장 정확한 위치)
          • Default 레코드를 생성하는 것이 좋음(일치하는 위치가 없을 경우를 대비해서)
          • 사용사례: 웹 사이트 지역화, 콘텐츠 분산 제한, 로드 밸런싱 등
          • Can be associated with Health Checks
        • Geoproximity(지리 근접) - using Route 53 Traffic Flow feature
          • 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 라우팅
          • 정의된 편향값(bias)에 따라 리소스로의 트래픽을 조절할 수 있음
          • 지리적 영역의 크기를 변경하려면 편향값을 지정
            • 확장(1 ~ 99): 리소스로의 트래픽을 더 많이 유도
            • 축소 (-1 ~ -99): 리소스로의 트래픽을 줄임
          • 리소스는 다음과 같을 수 있음
            • AWS 리소스(특정 AWS 리전 지정)
            • Non-AWS 리소스(위도와 경도 지정)
          • Route 53 Traffic Flow를 사용해야 함!
        • IP-based(IP 기반)
          • 클라이언트의 IP 주소를 기반으로 라우팅
          • 클라이언트의 CIDR 목록과 해당 엔드포인트/위치를 제공
          • 사용사례: 성능 최적화, 네트워크 비용 절감
          • ex) 특정 ISP의 최종 사용자를 특정 엔드포인트로 라우팅
        • Multi-Value Answer(다중 응답)
          • 트래픽을 다중 리소스로 라우팅할 때 사용
          • Route 53은 다중 값/리소스를 반환
          • Can be associated with Health Checks (return only values for healthy resources)
          • 각각의 다중 값 쿼리에 대해 최대 8개의 정상 레코드가 반환됨
          • Multi-Value is not a substitute for having an ELB
    • Health Checks
      • HTTP Health Checks는 공용 리소스에만 사용 가능
      • Health Checks => 자동 DNS 장애 조치
        • 공용 엔드포인트 모니터링(애플리케이션, 서버, 기타 AWS 리소스)
        • 다른 상태 확인을 모니터링하는 상태 확인(계산된 상태 확인)
        • CloudWatch 경보의 상태를 모니터링하는 상태 확인 (full control) ex) DynamoDB의 쓰로틀, RDS의 알람, 사용자 정의 지표 등(프라이빗 리소스에 유용)
        • 상태 확인은 각자의 메트릭을 사용하는데 CloudWatch의 지표에서도 확인 가능
      • Monitor an Endpoint
        • 전세계로부터 15개 정도의 글로벌 헬스체커가 엔드포인트 상태를 확인
          • Health/UnhealthyThreshord : 3 (default)
          • 간격 : 30초 (10초로 설정 가능 but 높은 비용 발생)
          • 지원 프로토콜 : HTTP, HTTPS, TCP
          • 18% 이상이 엔드포인트를 정상이라고 판단하면 Route 53도 정상이라고 간주
          • Route 53에서 사용할 위치를 선택할 수 있음
        • 상태확인은 엔드포인트가 2xx 및 3xx 상태 코드로 응답할 때만 통과
        • 응답의 처음 5120바이트 내에서 텍스트를 기준으로 통과/실패 설정할 수 있음
        • 상태 확인의 작동이 가능하려면 라우터/방화벽을 구성하여 Route 53 헬스 체커로부터의 수신 요청을 허용하도록 설정
      • Calculated Health Checks
        • 여러 개의 상태 확인 결과를 하나로 합쳐주는 기능
        • OR, AND, 또는 NOT 사용 가능
        • 최대 256개의 하위 상태 확인을 모니터링할 수 있음
        • 상위 상태 확인이 통과하기 위해 몇개의 상태 확인을 통과해야 하는지도 지정할 수 있음
        • 사용사례: 상태 확인이 실패하는 일 없이 상위 상태 확인이 웹사이트를 관리 유지하도록 하는 경우
      • Private Hosted Zones
        • Route 53 상태 확인은 VPC의 외부에 있기 때문에 프라이빗 엔드포인트(Private VPC 또는 온프레미스 리소스)에 접근 가능
        • 따라서 CloudWatch 메트릭을 생성하고 CloudWatch 경보를 연결한 다음, 경보를 확인하는 상태 확인을 생성 가능
      • Domain Registar vs. DNS Service
      • Domian Registra를 통해 도메인 이름을 구입하거나 등록하며, 이를 위해 연간 요금을 지불한다. (ex. GoDaddy, Amazon Registrar Inc., ...)
      • Domain Registra는 DNS 레코드를 관리를 위한 DNS 서비스를 제공한다. 하지만 다른 DNS 서비스를 사용하여 DNS 레코드를 관리할 수 있다.
      • ex) GoDaddy에서 도메인을 구입하고 Route 53을 사용하여 DNS 레코드를 관리할 수 있다.
      • GoDaddy as Registar & Route 53 as DNS Service
      • 3rd Party Registrar with Amazon Route 53
        • 3rd Party Registrar에서 도메인을 구입한 경우에도 Route 53을 DNS 서비스 제공자로 사용할 수 있다.
            1. Route 53에서 공용 호스팅 영역을 생성
            1. 3rd party 웹 사이트에서 NS 레코드를 업데이트하여 Route 53 이름 서버를 사용
        • Domian Registra != DNS Service
        • But every Domain Registrar usually comes with some DNS features
LIST

'develop > AWS' 카테고리의 다른 글

[SAA] S3 보안  (0) 2024.05.09
[SAA] S3  (0) 2024.05.08
[SAA] RDS, Aurora, ElastiCache  (1) 2024.04.24
[SAA] ELB(Elastic Load Balancer), ASG(Auto Scaling Group)  (1) 2024.04.20
[SAA] EC2 Instance Storage (EBS, AMI, Amazon EFS)  (1) 2024.04.19