💝 Route 53
✅ DNS
✅ Route 53
✅ 레코드 / 레코드 종류 / 호스트 존 / 레코드 TTL / CNAME / 별칭 / 별칭레코드
✅ Route 53 라우팅 정책 (7가지)
✅ Route 53 상태 확인
✅ 도메인 등록 기관 vs DNS 서비스 vs 타사 등록 기관
🚨 DNS
✤ Domain Name System
✤ 사람들에게 친숙한 호스트 이름(예: www.amazon.com) 을 컴퓨터가 읽을 수 있는 대상 서버 IP 주소(예: 192.0.2.44) 로 번역하는 시스템
✤ www.google.com → 172.217.18.36
✤ DNS 는 인터넷의 중축이고, URL 과 호스트 이름을 IP 로 변환한 것
✤ DNS 는 계층적 이름구조를 사용한다
✤ 도메인 이름의 계층
• .com
• example.com
• www.example.com
• api.example.com
✤ DNS 관련 용어
• 도메인 이름 등록 (Domain Registrar)
• 도메인 레코드 (Domain Records) : 모든 DNS 레코드를 포함. 호스트 이름과 IP 주소를 일치시키는 방법
• 영역 파일 (Zone File) : DNS 쿼리를 실제로 해결하는 서버
• 이름 서버 (Name Server)
• 최상위 도메인 (Top Level Domain(TLD))
• 2단계 도메인 (Second Level Domain(SLD))
✤ 웹 브라우저에서 www.example.com 에 접근하면 Local DNS 서버에 물아본다 → 처음보는 쿼리라면 Root DNS 로
🚨 Route 53
✤ 확장 가능한 DNS 관리 시스템
✤ 고가용성, 확장성, 완벽한 관리 및 권한이 있는 DNS 이다
• 권한있는, 권위있는(Authoritative) = 고객(여러분)이 DNS 레코드를 업데이트 할 수 있다 → DNS 제어 가능
✤ Route 53 은 도메인 Registrar 이다 → 도메인 이름을 example.com 으로 등록
✤ 리소스 관련 상태확인 가능
✤ 100% SLA 가용성을 제공하는 유일한 AWS 서비스
✤ DNS 서비스. 이름에 사용되는 전통적인 DNS 포트
🚨 Route 53 - 레코드 (Record)
✤ Route 53 에서 여러 DNS 레코드를 정의하고 레코드를 통해 특정 도메인으로 라우팅하는 방법 정의
레코드에 포함되어 있는 것
• 도메인/서브도메인 이름 (Domain/SubDomain Name) : example.com
- 각 레코드는 도메인이나 서브도메인 이름과 같은 정보를 포함
• 레코드 종류 (Record Type) : e.g, A, AAAA
• 레코드 값 (Value) : 12.34.56.78
• 라우팅 정책 (Routing Policy) : Route 53 쿼리에 응답하는 방식
• TTL (TimeToLive) : DNS 리졸버에서 레코드가 캐싱되는 시간
Route 53 에서 지원하는 DNS 레코드 종류
• A / AAAA / CNAME / NS
• CAA / DS / MX / NAPTR / PTR / SOA / TXT / SPF / SRV
🚨 Route 53 - 레코드 종류 (Record Types)
✤ DNS 레코드를 통해 트래픽을 도메인에 라우팅하는 방식을 DNS 에 알려준다
✤ A
✤ AAAA
✤ CNAME
✤ NS
A
• 호스트 이름과 IPv4 IP 를 매핑
AAAA
• 호스트 이름과 IPv6 IP 를 매핑
CNAME
• 호스트 이름을 다른 호스트 이름과 매핑
• 대상 호스트 이름은 A 나 AAAA 가 될 수 있다
• DNS 이름 공간 또는 Zone Apex 의 상위 노트에 대한 CNAME 을 생성할 수 없다
- example.com → CNAME 생성 X / www.example.com → CNAME 생성 O
NS
• 호스트 존의 이름 서버
• 트래픽이 도메인으로 라우팅되는 방식을 제어
• 서버의 DNS 이름 또는 IP 주소로, 호스팅 존에 대한 DNS 쿼리에 응답할 수 있다
🚨 Route 53 - 호스트 존 (Hosted Zone)
✤ 레코드의 컨테이너
✤ 도메인과 서브도메인으로 가는 트래픽의 라우팅 방식을 정의하는 레코드의 컨테이너
✤ 월 50센트($0.50) 지불해야 함
Public Hosted Zones
• 퍼블릭 도메인 이름을 살 때마다 퍼블릭 호스트존을 만들 수 있다
• 퍼블릭 존은 쿼리에 IP 가 무엇인지 알 수 O
• 공개된 클라이언트로부터 온 쿼리에 응답할 수 있다
Private Hosted Zones
• 공개되지 않은 도메인 이름 지원
• 가상 프라이빗 클라우드(PVC) 만이 URL 리졸브 할 수 O
• 해당 VPC 에서만 동작
• 비공개 도메인 이름의 프라이빗 리소스를 식별할 수 있다
🚨 Route 53 - 레코드 TTL (Time To Live)
✤ 레코드에 관한 정보 및 결과를 캐싱하는 시간
✤ TTL 은 모든 레코드에 필수적이지만 별칭 레코드는 제외된다
✤ High TTL - e.g., 24hr
• 적은 트래픽
• 레코드 최신화 X
✤ Low TTL - e.g., 60 sec.
• 많은 트래픽
• 비용 ⬆️
• 레코드 변경 많다
🚨 Route 53 - CNAME vs 별칭 (Alias)
✤ AWS 리소스(로드밸런서, CloudFront..) 는 AWS 의 호스트이름을 노출한다.
CNAME
• 호스트 이릅이 다른 호스트 이름으로 향하도록 가능 (app.mydomain.com → bpp.anything.com)
• 루트도메인이 아닌 도메인의 경우에만 해당
별칭 Alias
• Route 53 에만 가능
• 호스트 이름이 특정 AWS 리소스로 향하도록 가능
• 루트도메인, 비루트도메인에 모두 작동함
• 무료, 자체적 성능 확인 가능
🚨 Route 53 - 별칭 레코드 (Alias Records)
✤ AWS 리소스에만 매핑되어 있다
✤ DNS 확장 가능. 시중 모든 DNS 에서 가능
✤ 기반 ALB 에서 IP 가 바뀌면 별칭레코드는 이걸 바로 인식한다
✤ CNAME 과 다르게 DNS 네임스페이스의 최상위 노드에 사용 가능 (예: example.com)
✤ AWS 리소스에 대한 별칭레코드는 항상 A/AAAA 이다 (IPv4, IPV6 중 하나)
✤ 별칭레코드 사용 시 TTL 설정 불가
별칭 레코드 대상 (Alias Records Target)
• ELB
• CloudFront 배포
• API 게이트웨이
• Elastic 빈스톡 환경
• S3 웹사이트(S3 버킷은 불가 - 버킷들이 웹사이트로 활성화 시 가능)
• VPC 인터페이스 엔드포인트
• Global Accelerator 가손기
• 동일 호스트존의 Route 53
• EC2 의 DNS 이름에 대해서는 별칭레코드 설정 불가
🚨 Route 53 - 라우팅 정책 (Routing Polices)
✤ Route 53 이 DNS 쿼리에 응답하는 방법 정의
✤ DNS 관점의 "라우팅" 이다!
• 트래픽을 라우팅하는 로드 밸런서 라우팅과 다르다
• DNS 는 트래픽을 라우팅하지 않으며 DNS 쿼리에만 응답한다
✤ Route 53 이 지원하는 라우팅 정책
• 단순 (Simple)
• 가중치 기반 (Weighted)
• 지연 시간 기반 (Latency based)
• 지리적 위치 (Geolocation)
• 지리 근접 라우팅 정책 (Geoproximity)
• 다중응답 (Multi-Value Answer)
• 장애조치 (Failover)
단순 라우팅 정책 (Simple)
• 일반적으로, 트래픽을 단일 리소스로 보내는 방식
• 도메인 이름 → IP 주소로 라우팅
• 동일한 레코드에 여러 개의 값을 지정 가능
• DNS 에 의해 다중값을 받은 경우, 클라이언트에서 그 중 하나를 무작위로 고른다 (랜덤하게 라우팅)
• 단순 라우팅정책에 별칭레코드를 함께 사용하면 하나의 AWS 리소스만을 대상으로 지정할 수 있다
• 상태 확인 불가
가중치 기반 라우팅 정책 (Weighted)
• 접속자가 요청하는 횟수의 가중치(%) 를 기준으로 라우팅하는 방식
• 가중치를 활용해 요청의 일부 비율을 특정 리소스로 보내는 식의 제어 기능
• 각각 레코드에 상대적으로 가중치를 할당하게 되는 것
- [각 레코드로 보내지는 트래픽 양 (%) = 해당 레코드 가중치/조치 가중치] → 전체 중 일부 퍼센트
• DNS 레코드들은 동일한 이름과 유형을 가져야 함
• 상태 확인과 관련 O
• 가중치값 0을 보내면 트래픽에 보내기를 중단해 가중치를 바꿀 수 있다
• 모든 리소스 레코드 가중치 값이 0인 경우, 모든 레코드가 0인 경우, 모든 레코드가 모두 동일한 가중치를 갖게 됨
• 트래픽을 분산하거나 버전이 다른 애플리케이션을 테스트 하는 경우 유용
• 가중기반 정책이 사용되는 이유
- 서로 다른 지역들에 걸쳐 로드 밸런싱할 때
- 적은 양의 트래픽을 보내 새 애플리케이션 테스트하는 경우
지연 시간 기반 라우팅 정책 (Latency-based)
• 지연 시간이 짧은, 즉 가장 가까운 리소스로 리다이렉트 하는 방식
• 지연 시간에 민감한 웹사이트나 애플리케이션에 유용
• 지연 시간은 유저가 레코드로 가장 가까운 식별된 AWS 리전에 연결하기 까지 걸리는 시간을 기반으로 측정
• 독일 사용자는 미국으로 연결될 수 있다 (지연 시간이 가장 짧은 경우)
• 상태 확인과 관련 O
지리적 위치 라우팅 정책(Geolocation)
• 지연시간 기반의 정책과 매우 다름 (지연시간 기반 라우팅 정책은 사용자와 가까운 AWS 리전으로 라우팅)
• 사용자의 실제 위치를 기반으로 함
• 사용자가 속한 대륙이나 국가를 기준으로 라우팅하는 방식
• 대륙, 국가 또는 미국 주별로 위치 지정 (중복되는 경우 가장 정확한 위치 선택)
• 일치하는 위치가 없는 경우, 기본 레코드를 생성해야 한다
• 트래픽을 지정된 서버 IP 로 라우팅 가능
• 사용 사례 : 콘텐츠 분산 제한, 로드밸런싱 등을 실행하는 웹사이트 현지화, ..
• 상태확인과 연관 X
지리 근접 라우팅 정책 (Geoproximity)
• 사용자와 리소스의 지리적 위치를 기반으로 트래픽을 리소스로 라우팅하는 방식
• 편향값(bias) 을 사용해 특정 위치를 기반으로 더 많은 트래픽을 리소스로 전환 가능
• 지리적 위치를 변경하려면 편향값(bias) 을 지정해야 함
- 특정 리소스에 더 많은 트래픽을 보내려면 편향값을 증가시켜 확장
- 특정 리소스에 트래픽을 줄이려면 편향값을 음수로 축소
• 리소스에 속한 특정 리전을 지정하기
- AWS 리소스 → AWS 지역 지정
- AWS 리소스가 아닌 경우 → 위도 / 경도 지정
- AWS 리소스에 속한 특정 리전을 지정하면 목록에서 자동으로 올바른 라우팅을 계산하거나 AWS 리소스가 아닌 온프레미스 센터인 경우 위도/경도를 지정해서 AWS 가 위치를 파악하도록 함
• 기능을 선택할 때 편향 활용을 위해 고급 Route 53 트래픽 흐름을 사용해야 한다
다중값 라우팅 정책 (Multi-Value)
• 트래픽을 다중 리로스를 라우팅할 때 사용
• 사용자가 요청 시 Route 53 DNS 에서 다수의 값과 리소스를 반환하는 라우팅 방식
• 상태확인과 연관 가능
• 다중값 정책에서 반환되는 유일한 리소스는 정상 상태 확인과 관련있다
• 각각의 다중값 쿼리에 최대 8개의 정상 레코드가 반환된다
• ELB 와 유사해 보이지만 ELB 를 대체할 수 X → 클라이언트 측면의 로드밸런싱인 것
• 다중값이 있는 다중 라우팅인 경우, 단순 라우팅 정책은 상태 확인을 허용하지 않기 때문에 단순 라우팅 정책의 쿼리가 반환하는 리소스 중 하나는 비정상일 가능성이 있다 → 다중값이 조금 더 강력한 레코드이다
장애 조치 라우팅 정책 (Failover (Active-Passive) )
• 기본 라우팅이 실패하면 보조 EC2 인스턴스로 자동 라우팅 되는 방식
• 상태 확인 은 기본/보조 1개씩만 가능
🚨 Route 53 - 상태 확인 (Health Checks)
✤ HTTP 상태확인은 공개 리소스에만 해당된다
✤ 상태 확인 → 자동화된 DNS 장애 조치
• 엔드포인트를 모니터링하는 상태 확인 (애플리케이션, 서버, 기타 AWS 리소스)
• 다른 상태 확인을 모니터링하는 상태 확인 (계산된 상태 확인)
• CloudWatch 경보를 모니터링하는 상태 확인 (완전한 제어)
✤ 상태 확인은 CW 메트릭과 통합된다
엔드포인트를 모니터링하는 상태 확인 (Monitor an Endpoint)
• 상태확인이 특정 엔드포인트에 어떻게 작동하는지 확인
• 전 세계에서 온 15개의 상태확인이 엔드포인트의 상태를 확인한다
- 임계값을 정상/비정상으로 설정
- 간격 설정 가능
- 많은 프로토콜 지원
- 상태 검사기의 18% 이상이 엔드포인트가 정상이라고 판단하면 Route 53 은 이를 정상으로 간주. 그렇지 않으면 건강에 좋지 않다
- 상태확인에 사용될 위치 선택 가능
• 엔드포인트가 로드밸런서로부터 2xx 및 3xx 의 상태 코드를 응답받는 경우에만 상태 확인이 통과된다
• 응답의 처음 5120 바이트에 있는 텍스트 기반으로 상태 확인을 통과/실패로 설정 할 수 있다
- 응답의 처음 5120 바이트를 확인 응답 자체가 해당 텍스트가 있는지 보기 위함
• Route 53 상태 검사기에서 들어오는 요청을 허용하도록 라우터/방화벽을 구성한다
• 네트워크 관점에서 아주 중요한 부분 → 상태 확인의 작동이 가능하려면 상태확인이 여러분의 애플리케이션 밸런서나 엔트포인트에 접근가능 해야함
계산된 상태 확인 (Calculated Health Checks)
• 여러개의 상태 확인 결과를 하나로 합쳐주는 기능
• OR, AND, NOT 을 사용 가능
• 하위 상태 확인을 최대 256개까지 모니터링 가능
• 상위 상태 확인을 통과하기 위해 통과해야 하는 상태 확인 수를 지정 가능
• 사용법 : 모든 상태 확인에 실패하지 않고 웹사이트를 유지 관리를 수행한다
개인리소스의 상태 확인 (Private Hosted Zones)
• 개인 리소스를 모니터링하는 것
• 모든 Route 53 상태 확인이 공용 웹에 있기 때문에 이들은 VPC 의 외부에 있다
• 개인 엔드포인트에 접근 불가 (개인 VPC 나 온프레미스 리소스인 경우)
• CloudWatch 지표를 만들어 CloudWatch 알림을 할당하는 식으로 알림 자체를 확인하는 상태 확인을 생성할 수 있다
- CloudWatch 경보를 상태확인에 할당 가능
- CloudWatch 메트릭을 이용해 개인 서브넷 안에 있는 EC2 인스턴스를 모니터링 하는 것
🚨 도메인 등록 기관 (Domain Registar) vs DNS 서비스
✤ 일반적으로 연간 요금을 지불하여 도메인 등록 기관에 도메인 이름을 구입하거나 등록한다
✤ 도메인 등록 기관을 통해 도메인 이름을 구매하면 일반적으로 DNS 레코드를 관리하기 위한 DNS 서비스를 제공
✤ 그러나 다른 DNS 서비스를 사용하여 DNS 레코드 관리 가능
✤ (DNS 레코드로 AWS Route 53 등을 사용하지 않고 Amazon 등록기관을 사용하거나 반대로 GoDobby 로 도메인 등록해도 된다)
🚨 Amazon Route 53 을 사용하는 타사 등록 기관 (3rd Party Registrar with Amazon Route 53)
✤ 도메인을 타사 등록 대행사에서 구매해도, DNS 서비스 제공자로 Route 53 을 계속 사용 할 수 있다
✤ Route 53 에서 공동 호스팅 영역 생성
✤ 도메인을 구매한 타사 웹사이트에서 NS 혹은 이름 서버를 업데이트하면 Route 53 이름 서버를 사용할 수 있다
✤ 도메인 등록 기관 != DNS 서비스
✤ 도메인 등록 기관과 DNS 서비스는 같지 않지만, 그러나 모든 도메인 이름 등록 기관이 일부 DNS 기능을 제공한다
'🌦 Cloud' 카테고리의 다른 글
[AWS/SAA-03] Amazon S3 (0) | 2023.06.10 |
---|---|
[AWS/SAA-03] ElastiCache (0) | 2023.05.02 |
[AWS/SAA-03] Aurora (0) | 2023.04.28 |
[AWS/SAA-03] RDS (관계형 데이터베이스 서비스) (0) | 2023.04.25 |
[AWS/SAA-03] 오토 스케일링 그룹 (Auto Scaling Group) (0) | 2023.04.24 |