CloudFront란 무엇일까?
우선 CloudFront와 함께 다니는 단어가 CDN이다.
콘텐츠 전송 네트워크(Content Delievery Network)는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. 인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있다.
CDN의 목적은 높은 사용성과 효율로 사용자에게 컨텐츠를 전달함에 있다. CDN은 오늘날 인터넷에 존재하는 컨텐츠의 상당수를 서비스하고 있는데 이에는 웹 요소 (텍스트, 그래픽, 스크립트), 다운로드 가능한 요소 (미디어 파일, 소프트웨어, 문서), 애플리케이션 (전자상거래, 포털), 실시간 미디어, 주문형 스트리밍, 그리고 소셜 네트워크 등이 있다.
미디어 회사나 전자상거래 업체와 같은 콘텐츠 제공자는 그들의 컨텐츠를 사용자들에게 전달하기 위해서 CDN 회사에 사용료를 지불한다. 반대로, CDN은 ISP, 이동통신사업자, 그리고 네트워크 사업자들에게 데이터 센터에서의 서버 호스팅 비용을 지불한다. 더 나은 퍼포먼스와 사용성 이외에도 CDN은 컨텐츠 제공자의 서버의 트래픽을 덜어주어 컨텐츠 제공자의 비용을 줄여준다. 추가로, CDN은 대규모 분산 서버 장비로 공격 트래픽을 완화할 수 있으므로 컨텐츠 제공자에게 DoS 공격에 대해서 어느정도 보호해 줄 수 있다. 초기 대부분의 CDN은 CDN이 소유하고 동작하는 서버를 사용하는 컨텐츠만 서비스하였으나 최신 트랜드는 P2P기술을 이용하는 하이브리드 모델을 사용하는 것이다. 하이브리드 모델에서 컨텐츠는 지정된 서버 그리고 주변 컴퓨터(peer-user-owned)를 모두 사용한다.
그렇다면 Cloud Front는 무엇일까
CloudFront는 AWS에서 제공하는 CDN 서비스이다. 캐싱을 통해 사용자에게 좀 더 빠른 전송 속도를 제공함을 목적으로 한다.
CloudFront는 전 세계 어디서든 Edge Server(Location)을 두고 Client에 가장 가까운 Edge Server를 찾아 Latency를 최소화 시켜 빠른 데이터를 제공한다.
위 그림에서 알아야 할 항목은
Origin Server : 원본 데이터를 가지고 있는 서비스이다. 보통 AWS에서의 Origin Server는 S3, EC2 Instance이다.
Edge Server = Edge Location : AWS에서 실질적으로 제공하는 전 세계에 퍼져있는 서버이다. Edge Server에는 요청 받은 데이터에 대해서 같은 요청에 대해서 빠르게 응답해주기 위해 Cache 기능을 제공한다.
데이터 전송이 발생하는 과정은 아래와 같다.
1. 클라이언트로부터 Edge Server로의 요청이 발생한다.
2. Edge Server는 요청이 발생한 데이터에 대하여 캐싱 여부를 확인한다.
3-1. 사용자의 근거리에 위치한 Edge Server중 캐싱 데이터가 존재한다면 사용자의 요청에 맞는 데이터를 응답한다.
3-2. 사용자의 요청에 적합한 데이터가 캐싱되어 있지 않은 경우 Origin Server로 요청이 포워딩된다.
4. 요청 받은 데이터에 대해 Origin Server에서 획득한 후 Edge Server에 캐싱 데이터를 생성하고, 클라이언트로 응답이 발생한다.
CloudFront에서는 두가지 종류의 콘텐츠를 CDN으로 제공하고 있다.
1) Download Distribution : HTTP 프로토콜을 이용해서 다운로드할 수 있는 일반적인 이미지 혹은 정적 파일을 제공받을 수 있다.
2) Streaming Distribution : 스트리밍을 위해 사용할 수 있는 HTTP Proressive Download 방식이나 RTSP(Real Time Streaming Protocol)을 지원하는 동영상 콘텐츠를 서비스 받을 수 있다.
Edge Server의 Cache의 특징
- 기본적으로 한번 발생한 요청에 대해서는 Edge Server에 캐싱된 상태로 저장된다.
- Edge Server의 기본 TTL은 24시간이고, 사용자의 설정에 따라 변경이 가능하다. (TTL은 수정시 Edge Server에 반영되는 시간이 한시간 소요)
- 캐시 설정 후 반영 시간 떄문에 전체 데이터에 대한 TTL을 수정하는게 아닌, 각 개별 데이터에 대해서 invalidation API(특정 파일을 캐시에서 삭제하는 기능)을 통해 삭제할 수 있다.
- Invalidation API는 동시에 최대 3개의 요청을 발생시킬 수 있으며, 각 요청은 최대 1000개 까지 가능하다.
- Invalidation API는 Edge Node에 반영되기까지 5~19분 정도의 시간이 소요된다.
'[AWS] > STUDY' 카테고리의 다른 글
[AWS] Endpoint란 (0) | 2022.09.28 |
---|---|
[AWS] 트랜잭션 로그 (1) | 2022.09.13 |
[AWS] Route53 도메인 연결 (0) | 2022.08.15 |
[AWS] Route53이란 (0) | 2022.08.12 |
[AWS] 리눅스 파일 시스템 (0) | 2022.08.12 |
[AWS][Lex][Lambda] 1. Lex와 날씨 API (0) | 2022.08.01 |
[AWS] AWS CLI 구성하기 (0) | 2022.08.01 |
[AWS][초급] Lambda 더하기 테스트 (0) | 2022.07.26 |
댓글