본문 바로가기
AWS

DevOps Day 31 (4.18) AWS_서비스 노출

by Jackykim 2023. 4. 20.

CloudFront

CloudFront 세계 티어 1,2,3 이동통신사와 협력하여 네트워크에 연결된 글로벌 CDN(Content Delivery Network) 서비스로써 저지연성과 고속전송 속성을 지닌 콘텐츠 배포 기능을 제공하며, 콘텐츠 사용자와 가까운 지역(엣지 로케이션) 네트워크망을 구축하고, 지역별 엣지 캐시를 통해 사용자 경험 수준을 높일 있게 합니다.

 

핵심 개념
- 엣지 로케이션 CloudFront 엣지 로케이션이라 부르는 글로벌 데이터센터 네트워크를 통해 콘텐츠를 배포합니다.
-
지역별 엣지 캐시 지역별 엣지 캐시는 오리진 서버와 엣지 로케이션 사이에 위치해 사용자에게 직접 콘텐츠를 전송합니다. 가장 인기가 많은 객체를 유지하고 가장 인기가 없는 객체는 삭제됩니다.

 

활용 시나리오
- 정적 콘텐츠 캐싱 CloudFront 가장 대표적인 활용방식 입니다. 사진, 영상, 자바스크립트, 스타일시트 등의 정적 콘텐츠 전송 속도를 높여주고 사용자는 엣지 로케이션을 통해 요청한 콘텐츠를 제공 받습니다.

- 동적 콘텐츠 네트워크 최적화를 통한 동적 콘텐츠 가속화 기능을 제공하며, EC2 서버에서 실행 중인 애플리케이션 또는 웹사이트를 CloudFront 통합할 있습니다.

- DDoS 공격 대응 CloudFront OSI 모델의 L3, L4, L7 보호할 있는 AWS Shield, WAF 통합해 DDoS 공격을 방어할 있습니다.

- 강화된 보안성 CloudFront SSL(HTTPS)방식의 보안 기능을 제공하며, 보안이 강화된 API, SSL/TSL 적용, advanced SSL 기능을 자동으로 적용할 있습니다. 더불어 모든 인프라와 프로세스는 중요 콘텐츠의 보안 수준을 유지하기 위해 PCI, DDS, HIPAA, ISO 규정을 준수합니다.

 

적용 방식
-
경로 패턴 매칭 : 사용자는 웹사이트 또는 애플리케이션의 URL 경로 패턴에 따라 다양한 캐시 제어 동작을 설정할 있습니다. 사용자는 이와 같은 경로 패턴에 따라 HTTP/HTTPS 프로토콜 설정, 헤어 또는 캐싱 옵션 설정, 쿠키 쿼리 문자열 포워딩 설정, 접근 제한등의 방식으로 특정 오리진으로 요청을 전송할 있습니다.

 

- 헤더 : 헤더 값을 통해 요청 헤더를 오리진 캐시로 포워딩 있으므로, 디바이스의 헤더를 확인한 그에 맞는 동작을 적용할 있습니다.

 

- 쿼리(query) 문자열 쿠키 : 애플리케이션 일부는 오리진으로 정보를 전달하기 위해 쿼리 문자열을 사용합니다. 쿼리 문자열은 요청의 일부로, ? 기호 다음에 나오며, 하나 이상의 파라미터를 & 기호로 연결해 사용합니다.

 

- 서명 URL, 서명 쿠키 : 정적 콘텐츠를 S3 버킷에 옮긴 뒤에는 CloudFront 서명 URL 방식을 통해 해당 콘텐츠에 대한 비인가 접근을 막을 있습니다. 서명 URL 이용해 서버가 S3 버킷의 콘텐츠에 접근할 있는 시간 또는 방식을 제어 있으며, 사용자가 특정 콘텐츠에 대한 접근을 요청할 경우 접속 시간 제약이 설정된 서명 URL 링크를 전달 받게 됩니다. 서명 쿠키는 다수 객체에 대한 접근 제어, URL 변경 없이 동일 객체에 대한 접근 제어를 해야할 유용합니다.

 

지역 제한 기능
사용자가 콘텐츠에 대한 요청을 하면 CloudFront 사용자의 위치에 상관 없이 콘텐츠를 전송합니다. 특정 국가의 콘텐츠 요청을 거부하려면 다음과 같은 지역 제한 기능을 사용하면 됩니다.
-
접속 허용 국가 목록인 화이트리스트를 기반으로 요청 콘텐츠에 대한 접근을 허용하는 방법
-
접속 금지 국가 목록인 블랙리스트를 기반으로 요청 콘텐츠에 대한 접근을 거절하는 방법

 

오류 처리 기능 : 콘텐츠 요청에 대해 오리진 서버가 HTTP 4xx, 5xx 상태 코드를 반환하면 사용자에게 커스텀 오류 페이지를 제공할 있습니다.

 

Route 53
Route53 관리형 DNS(Domain Name Service) 서비스 입니다. Route53 사용자의 요청을 EC2 인스턴스, ELB 로드밸런서, S3 버킷 AWS 내의 인프라에 연결시켜주며, AWS 외부의 인프라에도 연결 시킬 있습니다. Route53 리전과 독립적으로 작동하기 때문에 다수의 리전을 교차해 연결할 있고, 다수의 리전과 VPC간의 DNS 주소변환도 가능합니다.

Route 53 지원하는 주용 DNS 기록 타입 :
- A(
주소기록)
- AAAA(IPv6
주소기록)
- CNAME(
캐노니컬 네임 기록)
- CAA(
인증 권한 증명)
- MX(
메일 교환 기록)
- NAPTR(
네임 권한 포인터 기록)
- NS(
네임 서버 기록)
- PTR(
포인터 기록)
- SOA(
권한 시작 기록)
Route53
알리아스(Alias Records, 또는 에이펙스 Zone Apex) 지원합니다.

 

지원하는 라우팅 정책
가중치 라운드 로빈(Weighted Round Robin) : 하나의 웹사이트를 위한 여러 대의 웹서버 같은 경우처럼, 동일한 기능을 수행하는 여러 개의 리소스를 보유하고 있다면 Route53 이용해서 리소스 별로 트래픽을 분산 시킬 있으며 방법이 가중치 라운드 로빈입니다.

 

지연 기반 라우팅(Latency-Based Routing) : 특정 리소스에 대한 DNS 쿼리 요청 , Route53 이용해 신속하게 응답할 있는 방법이 지연 시간 기반 라우팅입니다. 이를 통해 글로벌 사용자를 확보한 애플리케이션의 성능을 높일 있습니다.

 

장애 대응 라우팅(Failover Routing) : 능동적 혹은 수동적 페일오버 , 장애 대응을 통해 가용 리소스 쪽으로 트래픽을 라우팅 하고 싶다면 Route 53 장애 대응 라우팅을 이용합니다. 장애가 발생되면 장애 대응 라우팅을 통해 정상적으로 작동중인 리전으로 트래픽 라우팅이 가능합니다.

 

지역 DNS 라우팅(Geo DNS Routing) : 사용자의 지역에 따라 DNS 쿼리에 응답하도록 하려면 지역 DNS 라우팅을 이용합니다. Route 53 지역 DNS 라우팅은 요청 발신지를 기준으로 가장 가까운 엔드포인트로 트래픽을 라우팅하며, 지역에 특화된 콘텐츠 서비스를 제공하거나 특정 지역에서 금지 규정이 있는 콘텐츠는 배포되지 않도록 있습니다.