[Practitioner] CDN 서비스

2020. 9. 3. 16:29AWS/Practitioner

1. CDN (Contents Delivery Network)

1) CDN

콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 데이터를 저장하여 제공하는 시스템이다. CDN을 이용하여 온라인 상의 대용량 콘텐츠를 저렴한 비용으로 빠르게 전송할 수 있도록 한다. 주요 ISP의 CND 서버에 콘텐츠를 분산시키고 유저의 네트워크 경로 상 가장 가까운 곳의 서버로부터 콘텐츠를 전송받도록 하여 트래픽이 특정 서버에 집중되지 않도록하는 서비스다.

2) 동작 원리

PC나 모바일 기기의 웹 브라우저에서 URL을 이용하여 웹 사이트에 접속 시도 시, 사용자에게 웹 페이지를 제공하기 위해 필요한 콘텐츠(HTML, CSS, 이미지, Javascript 등)를 서버에 요청한다. 대부분의 CDN 서비스는 콘텐츠에 대한 요청이 발생하면서 사용자와 가장 가까운 위치에 뱇치된 CDN 서버로 사용자를 접속시키며 요청된 파일을 사용자에게 전달한다. 서버가 파일을 찾는데 실패할 경우나 콘텐츠가 오래된 경우 원본 서버에서 파일을 조회하여 사용자에게 전달하고 이후 동일한 콘텐츠 요청을 받게 되면 캐싱된 데이터에서 콘텐츠를 전송하므로 보다 빠르게 전달할 수 있다.

3) 캐싱 종류

캐싱은 크게 Static과 Dynamic 캐싱으로 분류한다. Static 캐싱은 사용자의 요청이 없어도 원본 서버에 있는 콘텐츠를 운영자가 미리 캐시 서비스에 복사함으로 사용자가 캐시 서버에 접속하여 콘텐츠를 요청하면 캐시 서버가 콘텐츠를 전달하는 방식이다. 국산 CDN 업체의 서비스는 대표적으로 Pooq 동영상 서비스 및 넥슨, 엔씨소프트 게임 다운로드가 있다.

 

반면 Dynamic 캐싱은 최초의 캐시 서버에 콘텐츠가 존재하지 않지만, 사용자가 콘텐츠 요청 시 캐시 서버에 콘텐츠가 있는지 확인한다. 없으면 원본 서버에서 다운받아 사용자에게 전달하고, 동일 요청을 받게 되면 캐싱된 콘텐츠를 사용자에게 제공한다. 일정시간(TTL)이 지나면 캐싱된 파일이 사라질 수 있지만 필요한 경우 서버에서 콘텐츠를 확인 후 가져올 수 있다. Akamai, Amazon, CDNetworks 업체에서 이 방식을 지원한다.

 

 

 

2. Amazon CloudFront

1) Amazon CloudFront

Amazon CloudFront는 짧은 지연 시간과 빠른 전송 속도로 최종 사용자에게 데이터, 동영상, 애플리케이션 및 API를 안전하게 전송하는 글로벌 콘텐츠 전송 네트워크(CDN) 서비스이다. CloudFront는 AWS 글로벌 인프라와 직접 연결된 물리적 위치뿐만 아닌 DDoS와 같은 외부 공격을 완화하는 AWS Shield, 애플리케이션의 오리진인 S3, 애플리케이션의 오리진으로의 EC2 또는 ELB, 최종 사용자와 가까운 위치에서 사용자 정의 코드를 실행하도록 지원하는 Lambda@Edge 등의 서비스와 원활하게 연동되는 소프트웨어가 포함된다.

 

API, AWS Management Console, AWS CloudFormation, CLI 및 SDK와 같이 이미 익숙한 AWS 도구를 사용하여 몇 분 만에 CloudFront를 시작할 수 있다. CloudFront는 선결제 금액이나 장기 약정 없이 사용량에 따라 지불하는 간편한 요금 모델을 제공하고 CloudFront에 대한 지원은 기존 AWS Support 구독에 포함되어 있다.

 

즉, 고도로 프로그래밍 가능하고 안전한 콘텐츠 전송 네트워크이다. 정적/동적 콘텐츠 가속 서비스이고 HTTP/HTTPS 서비스, Custom SSL을 지원한다. 커스텀 오류 응답, 쿠키/헤더 원본 서버 전달, 다양한 통계 보고서, 콘텐츠 보안, API 호출 감사, 업로드 가속의 특징이 있다. 프리티어로는 데이터 송신 50GB와 HTTP/HTTPS 요청 200만 건 허용된다.

2) Global Edge 서비스

글로벌 사용자를 대상으로 보다 적은 지연 시간으로 콘텐츠를 제공하기 위해 42개국 84개 도시에서 216개 CDN PoP의 글로벌 네트워크를 보유하고 있다. 전세계 모든 글로벌 CDN 서비스 벤더 중 가장 빠르게 성장하고 있는 글로벌 CDN 서비스 제공자이다.

3) CloudFront 연결 가능한 오리진 서비스

Amazon CloudFront는 오리진으로 여러 AWS 리소스와 Custom 시스템 사용을 지원한다. S3 Bucket이나 EC2 인스턴스, ELB 또는 사용자 지정 오리진을 지정할 수 있다.

4) 콘텐츠 제공 방식

사용자가 웹 사이트 또는 애플리케이션에 액세스하고 이미지 파일 및 HTML 파일 같은 하나 이상의 객체를 요청한다. DNS가 요청을 최적으로 서비스할 수 있는 CloudFront Edge 로케이션(가장 가까운 위치)으로 요청을 라우팅한다. Edge 로케이션에서 CloudFront는 해당 캐시에 요청된 파일이 있는지 확인하고 있다면 파일을 사용자에게 반환한다. (캐시에 없을 경우, 원본 서버에 요청을 하고 사용자에게 반환)

5) 정적 콘텐츠에 대한 캐싱 서비스와 비디오 스트리밍 서비스

CloudFront는 전세계를 대상으로 온디맨드미디어 스트리밍 서비스를 제공한다. 온디맨드 스트리밍 서비스를 위해 CloudFront를 사용하면 MPEG DASH, Apple HLS, Microsoft Smooth Streaming, CMAF 등과 같은 일반적인 형식의 동영상 스트리밍 서비스를 제공한다. 또한 Amazon Elemental Media Convert와 같은 서비스를 사용하여 라이브 스트리밍 서비스를 제공할 수 있다.

정적인 콘텐츠에 대해 전송 속도를 높일 수 있도록 Amazon Global 백본 네트워크와 Edge 서버를 활용하여 웹 사이트에 방문하는 사용자에게 빠르고 안전한 환경을 제공할 수 있다. S3 Bucket을 사용하여 정적 콘텐츠 서비스를 제공할 수 있고 OAI를 이용하여 콘텐츠에 대한 접근을 손쉽게 제한할 수 있다.

6) 동적 콘텐츠에 대한 캐싱 서비스

CloudFront는 웹 사이트의 전체 서비스에 해당하는 이미지, 동영상 등의 정적 파일 외에도 동적인 파일에 대해서도 캐싱할 수 있다. 이중 빈번하게 갱신되거나 동적인 업데이트가 필요한 페이지나 콘텐츠에 대해서도 TTL을 설정하여 캐싱을 지원한다.

7) 다양한 보안 서비스

보안 설명
Amazon Shield (Layer 3,4 단계 보호) 무료로 DDoS 공격을 차단한다.
Amazon WAF (Layer 7 단계 보호) 유료로 웹 트래픽 모니터링 및 차단을 한다.
Signed URL / Cookie 유료 콘텐츠에 대한 사용자나 특정 인증을 통과한 사용자에게만 콘텐츠를 제공하기 위해 Private 콘텐츠에 대해서 안전하게 접근할 수 있도록 한다.
HTTPS Redirection, SSL 인증서 연동 서비스 보안을 위해 SSL을 통한 HTTPS 환경을 구성하고 Customer의 SSL 인증서를 등록하거나 Amazon의 자체 SSL 서비스 ACM과 연동하여 추가적인 SSL 인증서의 구매 비용 없이 무료로 제공하므로 ELB에서도 사용가능하며 등록/업데이트 갱신은 모두 AWS 내부에서 무료로 제공한다.

8) 비용 최적화

S3 Bucket, EC2 인스턴스, ELB와 같은 서비스를 사용하게 되면 사용자에게 데이터를 전송하는데 필요한 Network out 비용을 지불한다. 하지만 Amazon CloudFront를 사용하게 되면 기존 S3 Bucket, EC2 인스턴스, ELB와 같은 서비스에서 사용자에게 데이터를 전송할 때 지불되는 Network out에 대한 데이터 전송 비용을 지불하지 않으며 CloudFront 사용료에 댛나 부분만 지불한다.


[참고] 아마존 웹 서비스 AWS Discovery Book

[참고] AWS - Practice - Practitioner CloudFront

728x90