인프라/클라우드
[클라우드] AWS의 DNS와 CDN (Route53, CloudFront)
다다x_x
2025. 6. 14. 09:50
- DNS (Domain Name System)
- 도메인 구조
- DNS 서버 종류
- DNS 레코드 유형
- AWS Route53
- Route53의 라우팅 정책
- CDN (Contents Delivery Network)
- CDN 환경
- CDN 캐싱 방식
- AWS CloudFront
- CloudFront 구성
- CloudFront 기능
DNS (Domain Name System)
네트워크통신주소(IP등)와 문자주소(도메인)을 매핑/연결하는 서비스
도메인 구조
- 루트 도메인
- 마지막에 위치하는 온점
- 모든 도메인 주소의 가장 마지막에는 온점 (생략하고 사용)
- 탑 레벨 도메인 (TLD, Top Level Domain)
- 도메인 주소에서 가장 상위에 위치한 도메인
- com, .co.kr, .org 등
- 세컨드 레벨 도메인 (SLD, Second Level Domain)
- 상위 TLD에서 유일하게 존재하고 식별하는 도메인 영역
- 일반적으로 도메인 이름은 SLD와 TLD를 합친 형태
- 서브 도메인
- 도메인을 용도에 따라 앞에 명칭을 부여해서 분류
DNS 서버 종류
도메인 영역별로 DNS 네임 서버를 분류해서 관리
- 루트 네임 서버
- 루트 도메인을 관리
- DNS 요청에 대해 TLD에 해당하는 네임 서버 정보를 응답
- 전 세계에 13개만 존재 (a.root-servers.net.~m.root-servers.net.).
- TLD 네임 서버
- TLD를 관리
- TLD 영역에서 식별되는 모든 SLD를 관리하여 DNS 요청에 대해 SLD 네임 서버 정보를 응답
- 해당 도메인에 대한 DNS 요청이 있으면 SLD 네임 서버 주소를 알려줌
- SLD 네임 서버
- 실질적인 도메인 이름을 관리, 실제 도메인의 최종 관리 서버 (권한 있는 네임 서버)
- 도메인 주소에 대한 IP 주소를 확인하는 가장 마지막 단계
- DNS 해석기
- 사용자와 네임 서버 사이에서 중계자 역할을 수행하는 목적
- 사용자가 DNS 해석기로 DNS 요청을 하면, DNS 해석기가 DNS 네임 서버와 정보를 주고받아 도메인 주소를 해석하여, 최종적으로 IP 주소를 사용자에게 반환
DNS 레코드 유형
DNS 레코드는 도메인에 대한 요청 처리 방법을 정의한 것
용도에 따라 DNS 레코드 유형을 분류
- A
- 도메인 이름을 IPv4 주소로 매핑
- 도메인 A IPv4주소
- AAAA
- 도메인 이름을 IPv6 주소로 매핑
- 도메인 AAA IPv6주소
- NS
- 도메인 이름의 네임 서버 주소로 매핑
- 도메인 NS 네임서버주소
- CNAME
- 도메인 이름의 별칭을 지정, 다른 도메인 이름을 정의
- 도메인1로 질의하면 도메인2로 응답
- 도메인1 CNAME 도메인2
Route53
AWS에서 제공하는 관리형 DNS 서비스
- 도메인 이름 등록
- 등록대행소
- 도메인 이름의 TLD에 해당하는 등록소
- 도메인 등록대행소에 도메인 이름 등록을 요청하면 도메인 등록 작업을 대행
- 등록대행소
- 호스팅 영역 생성
- Amazon Route 53이 등록된 도메인 이름에 대한 SLD 네임 서버(권한 있는 네임 서버) 수행을 위해 필요
- 호스팅 영역의 네임 서버들은 고가용성을 위해 다수의 서버 (마치 네임 서버들의 Zone을 구성하는 개념)
- 레코드 작성
- DNS 레코드는 다양한 형태의 라우팅 정책을 연결하여, 도메인 요청에 대한 응답 방식을 정의
- DNS 레코드를 정의하여 도메인에 대한 요청 처리 방법을 정의
Route53의 라우팅 정책
DNS 요청에 어떻게 응답할지 정의하는 다양한 라우팅 정책이 존재
- 단순 라우팅 정책
- 랜덤한 대상을 선택하고 응답
- 가중치 기반 라우팅 정책
- 대상의 가중치를 지정하여 비중에 따라, 대상을 선택하고 응답
- 지연 시간 기반 라우팅 정책
- 다수의 리전에 대상 자원
- 사용자와 인접한 리전을 기준으로 대상 자원의 리전까지 지연 시간을 파악
→ 낮은 지연 시간의 대상을 선택하고 응답
- 장애 조치 라우팅 정책
- 다수의 대상 자원에 대해 액티브와 패시브로 분류하고 대상 상태를 주기적으로 검사
- 액티브 대상이 통신 불가능할 때는 패시브 대상을 액티브로 승격
→ 액티브 대상을 선택하고 응답
액티브 대상이 통신 불가능할 때는 패시브 대상을 액티브로 승격
CDN (Contents Delivery Network)
콘텐츠 제공자와 사용자가 지리적으로 멀리 떨어져 있는 환경에서 콘텐츠를 빠르게 전달하는 네트워크 기술
콘텐츠 형태가 대용량이나 실시간성을 요구하는 현재 추세에서 중요한 이슈
CDN 환경
CDN 기술 핵심은 캐시 서버를 지역적으로 분산하고 콘텐츠를 동기화하여 분산 처리
- 원본 콘텐츠를 가지고 있는 오리진(origin) 서버에서 사용자에게 콘텐츠를 전달
- 오리진 서버에 높은 부하가 발생
- 지리적으로 멀리 떨어져 있는 사용자에게 콘텐츠를 전달할 때, 지연 시간 증가
⇒ 콘텐츠를 효율적이고 원활하게 제공하는 데 어려움
- 지역적으로 분산된 캐시 서버에 콘텐츠를 동기화
- 사용자는 인접한 캐시 서버로 콘텐츠를 전달받아 빠르고 효율적인 서비스를 이용
CDN 캐싱 방식
캐싱 : 오리진 서버의 원본 콘텐츠를 지역적으로 분산된 캐시 서버로 전달하고 콘텐츠를 저장
Cache Miss (캐시 미스) : 캐시 서버에 콘텐츠를 가지고 있지 않은 상태
Cache Hit (캐시 히트) : 콘텐츠를 가지고 있는 상태
- 정적 캐싱
- 정적 콘텐츠 : 변경되거나 수정되지 않는 콘텐츠
- 별도의 사용자 요청이 없어도 오리진 서버에서 캐시 서버로 미리 콘텐츠를 복사
- 사용자가 캐시 서버로 콘텐츠를 요청하면 TTL 동안 바로 응답할 수 있는 Cache Hit 상태로 동작
- 동적 캐싱
- 동적 콘텐츠 : 사용자 요청이나 정보에 따라 즉석에서 생성되는 콘텐츠
- 캐시 서버에서 콘텐츠를 보관하지 않고 Cache Miss 상태로 동작
CloudFront
AWS에서 제공하는 CDN 서비스
정적 콘텐츠나 동적 콘텐츠를 사용자에게 빠르게 배포하도록 지원하는 서비스
전 세계에 분포된 엣지 로케이션(edge location)이라는 곳에 콘텐츠를 캐싱 사용자 요청에 따라 가장 지연 시간이 낮은 엣지 로케이션이 응답
CloudFront 구성
AWS의 글로벌 엣지 네트워크를 이용하여 오리진 대상의 콘텐츠를 전 세계에 위치한 엣지 로케이션과 리전 엣지 캐시에 캐싱하여 CDN 서비스를 제공
- 오리진
- 원본 콘텐츠를 가지고 있는 대상
- 온프레미스의 일반 서버나 AWS 서비스의 EC2, ELB, S3 등
- Distribution
- 오리진과 엣지 중간에서 콘텐츠를 배포하는 역할을 수행하는 CloudFront의 독립적인 단위
- 웹 서비스 전용의 Web Distribution과 스트리밍 전용의 RTMP Distribution으로 분류
- 리전 엣지 캐시
- 오리진과 엣지 로케이션 사이에 위치
- 빈번하게 사용되는 콘텐츠에 대해 캐싱하는 큰 단위의 엣지 영역
- 엣지 로케이션에서 오리진으로 콘텐츠를 요청하는 상황을 줄여 효율적으로 CDN 서비스를 제공
- 엣지 로케이션
- Distribution으로 배포되는 콘텐츠를 캐싱하는 작은 단위의 엣지 영역
- 사용자 입장에서 가장 인접한 엣지 로케이션이 콘텐츠를 전달
CloudFront 기능
- 정적 및 동적 콘텐츠 처리
- 정적 콘텐츠와 동적 콘텐츠에 최적화된 캐싱 동작을 제공
- HTTPS 기능
- 오리진 대상이 HTTPS를 지원하지 않아도 Amazon CloudFront가 알아서 HTTPS 통신을 중계
- 사용자와 CloudFront는 HTTPS로 통신하고 CloudFront와 오리진은 HTTP로 통신 가능
- 다수의 오리진 선택 기능
- CloudFront의 단일 Distribution 환경에서 다수의 오리진을 지정/선택하여 콘텐츠를 분산 처리 가능
- 접근 제어
- 서명된 URL과 쿠키(cookie)로 사용자 인증을 지원하여 인증된 사용자만 접근할 수 있도록 지원
참조
김원일,『AWS 교과서』, 길벗(2023), 7장