1강. DNS란 무엇일까요?
- DNS(Domain Name System)는 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 이해하는 IP 주소로 변환하는 시스템
- DNS 시스템의 구조
- 루트 도메인(Root)
- 최상위 도메인(TLD, Top-Level Domain): .com, .org, .net, .gov 등
- 2차 도메인(SLD, Second-Level Domain): google.com, amazon.com 등
- 서브도메인(Subdomain): api.example.com, www.example.com 등
- FQDN(Fully Qualified Domain Name): 전체 도메인 이름을 포함한 형식 (api.www.example.com.)
- DNS 관련 용어
- 도메인 등록기관(Domain Registrar): 도메인 이름을 등록 및 관리하는 서비스 (예: Amazon Route 53, GoDaddy)
- DNS 레코드(DNS Records):
- A 레코드: 도메인을 IPv4 주소와 매핑
- AAAA 레코드: 도메인을 IPv6 주소와 매핑
- CNAME 레코드: 별칭(Canonical Name) 설정
- NS 레코드: 도메인을 관리하는 네임 서버 지정
- 존 파일(Zone File): 특정 도메인에 대한 DNS 레코드 저장
- 네임 서버(Name Server): DNS 쿼리를 해석하여 응답하는 서버 (권한 있는 서버(Authoritative)와 비권한 서버(Non-Authoritative)로 나뉨)
- DNS의 작동 원리
- 사용자가 example.com에 접속 요청
- 로컬 DNS 서버(사용자 ISP 또는 기업 관리)가 캐시에 없는 경우 상위 DNS 서버에 질의
- 루트 DNS 서버가 .com TLD 서버의 위치 반환
- TLD DNS 서버가 example.com을 관리하는 권한 있는 네임 서버 위치 반환
- SLD DNS 서버가 example.com의 IP 주소 반환
- 클라이언트가 해당 IP 주소로 연결하여 웹사이트 로드
2강. Route53 개요 - 7강. CNAME vs Alias
- Route53 : 고가용성, 확장성, 완전 관리형의 권한 있는(Authoritative) DNS 서비스이다.
- 사용자가 직접 DNS 레코드를 업데이트할 수 있음
- 도메인 등록기관 기능 제공
- 리소스의 상태를 확인하는 헬스 체크 기능 지원
- AWS에서 유일하게 100% 가용성을 보장하는 SLA 제공
- Route 53의 DNS 레코드 구성 요소
- 도메인/서브도메인 이름: 예) example.com
- 레코드 타입: A, AAAA, CNAME, NS 등
- 값(Value): 예) 12.34.56.78
- 라우팅 정책(Routing Policy): 쿼리에 대한 응답 방식
- TTL(Time to Live): DNS 리졸버에서 레코드를 캐시하는 시간
- Route 53이 지원하는 주요 DNS 레코드 타입
- A 레코드: 도메인을 IPv4 주소로 매핑
- AAAA 레코드: 도메인을 IPv6 주소로 매핑
- CNAME 레코드: 도메인을 다른 도메인 이름으로 매핑 (A 또는 AAAA 레코드가 필요함)
- Zone Apex(최상위 도메인)에서는 사용 불가 (example.com 불가, www.example.com 가능)
- NS 레코드: 네임 서버 지정 (Hosted Zone 내 트래픽 관리)
- Route 53의 Hosted Zone : DNS 레코드를 저장하고 관리하는 컨테이너로, 특정 도메인과 서브도메인의 트래픽 라우팅을 정의하는 역할을 한다.
- 퍼블릭 호스티드 존(Public Hosted Zone):
- 인터넷에서 접근 가능한 도메인 (application1.mypublicdomain.com)
- 프라이빗 호스티드 존(Private Hosted Zone):
- 특정 VPC 내에서만 사용 가능한 내부 도메인 (application1.company.internal)
- 비용: Hosted Zone당 월 $0.50
- 퍼블릭 호스티드 존(Public Hosted Zone):
- TTL(Time To Live) : DNS 레코드가 캐시에 유지되는 시간(초 단위)을 말함.
- 클라이언트가 DNS 쿼리를 요청할 때, TTL 값에 따라 결과를 캐싱하고 일정 시간 동안 동일한 응답을 유지함.
- EC2 DNS 이름은 CNAME 레코드의 대상이 될 수 없음.
2. TTL 설정에 따른 차이점
TTL 유형 장점 단점
높은 TTL (예: 24시간) | Route 53에 대한 트래픽 감소 | 오래된 DNS 정보가 유지될 가능성 증가 |
낮은 TTL (예: 60초) | 빠른 변경 가능, 최신 DNS 정보 유지 | Route 53에 대한 트래픽 증가(비용 상승) |
3. TTL 적용 시 유의사항
- Alias 레코드를 제외한 모든 DNS 레코드는 TTL이 필수임.
- 높은 TTL은 네트워크 부하를 줄이지만, 변경 사항 반영이 느림.
- 낮은 TTL은 변경 사항 반영이 빠르지만, 요청이 많아질수록 비용이 증가함.
8강. 라우팅 정책 (단순) - 17강. 라우팅 정책 (대기시간)
Route 53 – Routing Policies
- Route 53의 라우팅 정책은 DNS 질의에 대한 응답 방식을 정의
- "Routing"이라는 용어는 로드 밸런서의 트래픽 라우팅과는 다름
- DNS는 트래픽을 직접 전달하는 것이 아니라 IP 주소로 응답하는 역할
Route 53이 지원하는 Routing Policy
- Simple
- Weighted
- Failover
- Latency-based
- Geolocation
- Multi-Value Answer
- Geoproximity (Route 53 Traffic Flow 사용)
Routing Policies – Simple
- 일반적으로 하나의 리소스로 트래픽 라우팅
- 하나의 레코드에 여러 값을 지정 가능
- 여러 값이 반환되면 클라이언트가 무작위로 하나 선택
- Alias 활성화 시 하나의 AWS 리소스만 지정 가능
- Health Check와 연동 불가
Routing Policies – Weighted
- 각 리소스에 트래픽이 가는 비율(%)을 제어
- 각 레코드에 상대적 가중치 할당
- 가중치 공식 : 트래픽(%) = 특정 레코드 가중치 / 모든 레코드 가중치 총합 (가중치 합이 100일 필요 없음)
- 레코드는 같은 이름과 타입을 가져야 함
- Health Check와 연동 가능
- 사용 사례: 리전 간 부하 분산, 새로운 버전 테스트
- 가중치 0 할당 시 해당 리소스로 트래픽 차단
- 모든 레코드가 가중치 0이면 모두 동일하게 반환
Routing Policies – Latency-based
- 사용자와 가장 가까운 리전의 리소스로 연결
- 사용자 지연(latency)이 중요한 경우 유용
- 사용자와 AWS 리전 간 트래픽의 지연 시간 기준
- 예: 독일 사용자가 미국 리전으로 연결될 수 있음 (가장 짧은 지연 시)
- Health Check와 연동 가능 (Failover 기능 포함)
요약 (Summary)
- Routing Policies 역할: DNS 쿼리에 대한 다양한 방식의 응답 제공
- Simple: 단순 응답, 무작위 선택 가능, 상태 점검 불가
- Weighted: 가중치에 따라 트래픽 분산, 상태 점검 가능
- Latency-based: 가장 짧은 지연 시간의 리소스로 연결, 상태 점검 가능
Route 53 라우팅 정책을 통해 트래픽 분산, 장애 대응, 지연 최소화 등 다양한 요구에 맞는 DNS 응답을 구성할 수 있다.
Route 53 – Health Checks
- HTTP Health Checks는 공용(public) 리소스에만 적용 가능
- Health Check는 자동 DNS 장애 조치(Failover) 기능 제공
- Health Check 유형 : 엔드포인트 모니터링 (애플리케이션, 서버, AWS 리소스 등), 다른 Health Check 모니터링 (Calculated Health Checks), CloudWatch Alarms 모니터링 (예: DynamoDB, RDS 알람, 사용자 정의 메트릭 등, Private 리소스에 유용)
- Health Checks는 CloudWatch 메트릭과 통합
Health Checks – 엔드포인트 모니터링 (Monitor an Endpoint)
- 약 15개의 글로벌 헬스체커가 엔드포인트 상태 확인
- 기본 설정
- 정상/비정상 임계치: 3 (기본값)
- 인터벌: 30초 (최소 10초, 비용 증가)
- 지원 프로토콜: HTTP, HTTPS, TCP
- 18% 이상의 헬스체커가 정상 보고 시 Healthy 판단, 아니면 Unhealthy
- 체크 위치 선택 가능
- 2xx, 3xx 상태 코드만 통과 (Pass)
- 응답 첫 5120 바이트 기준 Pass/Fail 설정 가능
- 라우터/방화벽에 헬스체커 IP 허용 필요
Route 53 – Calculated Health Checks
- 여러 Health Check 결과를 하나의 Health Check로 통합
- OR, AND, NOT 논리 연산 사용 가능
- 최대 256개의 하위(Child) Health Check 모니터링
- 일정 개수 이상의 Health Check가 통과하면 부모도 통과로 간주
- 유지보수 시 일부 실패 상태를 허용해 전체 장애 방지 가능
Health Checks – Private Hosted Zones
- Route 53 Health Check는 VPC 외부에서 수행
- Private VPC 또는 온프레미스 리소스 접근 불가
- CloudWatch Metric과 Alarm 생성 후, 해당 알람을 모니터링하는 Health Check 설정 가능
요약 (Summary)
- Health Check 역할: 엔드포인트 모니터링, 자동 장애 조치
- 유형: 엔드포인트, 계산형, CloudWatch Alarm 기반
- 적용 제한: Public 리소스 중심, Private은 CloudWatch 연계 필요
Route 53 Health Checks는 DNS 수준에서 가용성과 장애 복구를 자동화하기 위한 필수 기능이다.
Routing Policies – Failover (Active-Passive)
- 장애 조치(Disaster Recovery) 목적으로 사용
- Primary (Active) 인스턴스가 정상일 때 트래픽 전달
- Secondary (Passive) 인스턴스는 대기 상태, Primary 장애 시 사용
- Health Check 필수로 Primary 상태 감시
Routing Policies – Geolocation
- 사용자 위치 기반 라우팅 (Latency 기반과 다름)
- 대륙, 국가, 미국 주(State) 기준으로 설정 가능 (중복 시 가장 정확한 위치 우선)
- Default 레코드 설정 필요 (위치 매칭 실패 시 사용)
- 사용 사례: 웹사이트 지역화, 콘텐츠 제한, 로드 밸런싱
- Health Check와 연동 가능
Routing Policies – Geoproximity
- 사용자와 리소스의 지리적 거리 기반 라우팅
- Bias 값을 통해 트래픽 비율 조정 가능
- 확장 (1 ~ 99): 더 많은 트래픽 할당
- 축소 (-1 ~ -99): 더 적은 트래픽 할당
- 리소스 지정: AWS 리전, 비AWS 리소스 (위도, 경도)
- Route 53 Traffic Flow 필수
Routing Policies – IP-based Routing
- 클라이언트 IP 주소 기반 라우팅
- 고객 CIDR 리스트와 엔드포인트 매핑 제공
- 사용 사례: 성능 최적화, 네트워크 비용 절감
- 예: 특정 ISP 사용자를 특정 엔드포인트로 연결
Routing Policies – Multi-Value
- 여러 리소스 대상으로 트래픽 라우팅
- Route 53이 다중 값/리소스 반환
- Health Check와 연동 가능 (정상 리소스만 반환)
- 최대 8개의 정상 레코드 반환
- ELB 대체 아님, 단순 다중 값 제공 용도
요약 (Summary)
- Failover: 장애 조치, Active-Passive 구조
- Geolocation: 사용자 위치 기반
- Geoproximity: 거리와 비율 기반, Traffic Flow 필요
- IP-based: 클라이언트 IP 기반
- Multi-Value: 다중 값 반환, 간이 부하 분산
Route 53의 다양한 라우팅 정책을 통해 지리, 성능, 장애 대응 등 다양한 상황에 맞는 DNS 응답을 설계할 수 있다.
'Certificate > AWS SAA-C03' 카테고리의 다른 글
[AWS-SAA] 09. CloudFront 요약 (0) | 2025.03.28 |
---|---|
[AWS-SAA] 08. S3 요약 (0) | 2025.03.28 |
[AWS] AWS SAA-C03 취득 후기 (2) | 2025.03.27 |
[AWS-SAA] 06. RDS, Aurora & ElastiCache 요약 (1) | 2025.03.02 |
[AWS-SAA] 05. High Availability & Scalability 요약 (0) | 2025.02.22 |