본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] CDN (AWS CloudFront vs Cloudflare)

by BTC_222 2022. 6. 8.

💙베하💙 누구든 탑승할 수 있는  팀입니다!!💨😉

지난주에 이어 이번 주에는 aws의 CDN에 대해서 알아보았습니다!

CDN

세계는 지금 넷플릭스, 왓챠를 비롯해 유튜브, 틱톡 등 끊임없이 쏟아지는 콘텐츠 홍수 속에 살고 있습니다. OTT 서비스는 전례 없는 호황기를 맞았고, AI, 사물인터넷, 자율 주행 등 대용량의 데이터를 주고받는 신기술이 하루가 멀다고 등장하고 있습니다.

 

이렇게 폭발적으로 증가한 데이터를 지연 없이 처리하기 위해서는 데이터를 분산해서 전달하는 기술이 필수적입니다. 이에 지리적으로 먼 거리에 떨어져 있는 사용자에게 지연 없이 콘텐츠를 분산해 전달할 수 있는 CDN 서비스가 등장하였습니다.

 

CDN 이란?

CDN(Contents Delivery Network)은 웹 페이지, 이미지, 비디오 등의 정적 콘텐츠를 유저의 물리적 위치와 가까운 프록시 서버에 캐싱하여 전송 속도를 높여줍니다. 이들은 지리적으로 분산된 여러 개의 서버를 가지고 있습니다. 전 세계 데이터센터에 파일 복사본을 임시로 저장합니다. 따라서 유저는 가까운 서버를 통해 콘텐츠가 로딩될 때까지 기다릴 필요 없이 영상 감상, 소프트웨어 다운로드, SNS 포스팅 등 다양한 작업을 원활하게 진행할 수 있습니다. 

 

쉽게 ATM을 생각해도 됩니다. 여러 곳에 ATM을 설치하면 은행에서 긴 줄을 서서 기다릴 필요없이 가까운 곳에 있는 ATM을 사용하여 유저는 빠르고 효율적으로 현금을 찾을 수 있습니다.

 

또한 CDN은 보안을 강화해 DDos 공격과 같은 보안 문제와 악의적 공격자를 차단하는 기능도 제공해줍니다.

 

CDN 활용 사례

온라인 동영상 스트리밍 서비스를 제공하는 넷플릭스(Netflix)는 전 세계의 사용자들에게 안정적인 서비스를 제공하기 위해 2011년에 자체 CDN을 구축했습니다. 넷플릭스의 서비스 범위가 전 세계에 걸쳐 있고, 구독자의 절반 이상이 미국 외의 지역에 분포하고 있어 콘텐츠를 안정적이고 빠르게 세계 각지로 전달하기 위해서는 CDN 기술이 필수적이기 때문입니다.

 

이와 더불어 세계 최대 숙박 공유 서비스인 에어비앤비(Airbnb) 또한 CDN 기술을 활용해 전 세계 고객에게 언제 어디서나 숙박 시설과 각종 액티비티를 예약할 수 있는 서비스 환경을 구축했습니다.

 

국내에서는 NC소프트나 카카오게임즈 같은 온라인 게임 기업이 CDN을 활용, 북미나 유럽과 같이 지리적으로 먼 지역의 사용자에게 안정적이고 빠른 게임 플레이 환경을 제공하고 있습니다.

 

서버 성능 개선하는 방법

IT 서비스를 추상적으로 그려보면 Computing Delivery로 이루어져 있다고 볼 수 있습니다. 즉, 앱 혹은 웹 서비스는 연산과 전달(요청, 응답)을 반복하는 작업이라는 뜻입니다. 웹 서비스 성능을 개선하기 위해서는 이 두 가지 작업을 최대한 빠르고 효율적으로 처리해줘야 합니다.

 

서버와 클라이언트 DB를 간략하게 추상화해서 그려보면 클라이언트 요청으로부터 응답까지 걸리는 시간을 응답시간이라 할 수 있습니다. 응답 시간을 다시 서버를 기준으로 나눠보면 대기 시간, 처리 시간으로 분류할 수 있습니다. 그리고 이러한 요청을 초당 몇 개 처리하는 지에 대한 단위를 TPS라고 합니다.

 

서버 성능을 개선하기 위해서 가장 중요한 지표 2가지는 응답 시간 처리량입니다. 

 

응답 시간은 클라이언트가 어떤 요청을 해서 그 요청에 대한 처리 결과를 받을 때 까지의 시간을 의미합니다. 응답 시간은 서버에서 요청을 처리하는 시간 + 클라이언트와 서버 간의 데이터 전달 시간(대기 시간)으로 구성되어 있습니다.

 

처리량은 흔히 TPS(Transaction Per Second; 초당 처리할 수 있는 요청 개수)라는 수치로 많이 표현하는 데, 이 수가 높을 수록 많은 요청을 처리한다고 보면 됩니다.

응답 시간 = 대기 시간 + 처리 시간이므로,  성능을 올리기 위해서 처리 시간 혹은 대기 시간을 줄여줘야 합니다.

  • 처리 시간을 줄이기 위해서는 쿼리 튜닝, 캐시, 하드웨어 업그레이드 등의 방법이 있습니다.
  • 대기 시간을 줄이기 위해서는 응답 크기 줄이기, 트래픽 분리하기, 대역폭 늘리기 등이 있습니다.

 

여기서 CDN은 트래픽을 분리해서 대기 시간을 줄여줍니다.

 

AWS CloudFront vs CloudFlare

대표적은 CDN 클라우드 서비스로는 Cloudflare와 AWS에서 제공하는 CloudFront가 있습니다. 이 둘은 CDN 기능을 제공하지만 근본적으로 다른 방식으로 작동합니다.

 

Cloudflare 및 AWS CloudFront는 데이터 사본을 배포하기 위해 대규모 데이터 센터 네트워크를 제공하고 있습니다. Cloudflare는 150대가 위치해 있는 반면 AWS CloudFront는 140대가 위치해 있습니다.

 

데이터 전달

Cloudflare는 역방향 프록시(Reverse Proxy) 아키텍처를 사용하여 데이터를 관리합니다. 클라우드 공급자의 기본 이름 서버를 사용하는 대신 웹과 앱은 Cloudflare의 이름 서버를 사용하도록 설정해줘야 합니다. 데이터 요청은 트래픽 라우팅을 방법을 결정하는 Cloudflare 서버를 통과하게 됩니다.

 

AWS CloudFront에서는 이름 서버 설정에 대한 설정이 따로 필요없습니다. 기본 이름 서버를 사용하면 됩니다. 대신 배포하려는 데이터 복사본을 설정해줘야 합니다. 데이터 배포에 Special URL이 있으며 관리자는 이 URL을 사용하여 CloudFront CDN으로 요청을 보낼 수 있습니다. 이 툴은 데이터 요청의 지리적 출처에 따라 CloudFront URL 요청에 응답해야 하는 네트워크 내의 서버를 결정합니다.

 

URL을 통한 접근성 

Cloudflare에는 Special URL이 필요하지 않지만 Amazon CloudFront 콘텐츠는 구성된 URL을 통해서만 액세스할 수 있습니다. 이는 Cloudflare가 CDN을 통해 "example.com"과 같은 사이트에 대한 요청을 라우팅할 수 있음을 의미합니다. Amazon CloudFront를 사용하면 CDN을 통해 라우팅되도록 요청이 "alongurlfullofrandomcharacters.example.com"과 같은 항목으로 대신 전달됩니다. 

 

이러한 Special URL 구성으로 인해 Amazon CloudFront는 Cloudflare보다 설정이 더 복잡합니다. Cloudflare는 이름 서버를 올바른 위치로 지정하는 것 외에는 거의 필요하지 않습니다.

 

분산 서비스 거부(DDoS) 보호

Cloudflare는 기본 CDN 기능뿐만 아니라 Magic Transit 기능을 통한 Anit-DDoS 보호와 같은 추가 기능을 제공합니다. Amazon CloudFront는 DDoS 보호 서비스로 설계되지 않았습니다. 대신 AWS Shield를 사용해야 합니다.

 

표로 정리해보면 다음과 같습니다. Cloudflare 프리 티어는 대역폭에 제한이 없습니다. 어떻게 무제한으로 제공할 수 있냐는 질문에 대한 Cloudflare CEO의 답변을 보면 여러 이유를 나열해놨지만 경쟁력을 높이고 홍보하기 위함이 커보입니다.

 

  Cloudflare AWS CloudFront
네트워크 아키텍처 리버스 프록시 전통적인 CDN
기본 설정 방법 Nameserver Special URLs
서버 개수 대략 150대 (21년 기준) 대략 140대 (21년 기준)
주요 기능 CDN과 Ddos 방어 CDN
마켓 포지셔닝 Standalone 플랫폼 AWS 클라우드 서비스 중 일부
freetier 무제한 대역폭 비용 무료 매달 1TB 데이터 전송, 천만건 요청, 2백만건 함수 호출 무료 (참고)
선택 시 고려사항

AWS CloudFront

일반적으로 CloudFront는 다음과 같은 경우에 사용하면 좋습니다.

  • 이미 다른 AWS 서비스를 사용 중입니다.
  • CDN으로 일부 데이터만 처리하면 됩니다.
  • 그리고 사용자가 "ugly" CloudFront URL을 볼 수 없도록 설정할 수 있습니다.

 

Cloudflare

Cloudflare는 다음과 같은 경우에 사용하면 좋습니다.

  • 간단한 설정이 좋습니다.
  • CDN으로 거의 모든 콘텐츠를 관리합니다.
  • CDN 이상의 추가 네트워킹 및 보안 기능이 필요합니다.

 

다음번엔 더욱 유익한 내용으로 찾아오겠습니다.

날씨가 많이 더워지고 있는데 얼음 나눠먹어요~,~

 

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

[AWS] IAM - policy  (0) 2022.06.09
AWS Data Lifecycle Manager  (0) 2022.06.08
[AWS] VPC 방화벽 (1. 보안 그룹 편)  (0) 2022.06.05
[AWS] IAM  (0) 2022.06.02
AWS Snow Family  (2) 2022.06.02

댓글