전 세계에 콘텐츠를 배포하는 CDN 서비스인 CloudFront

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

CloudFront는 전 세계에 파일을 빠른 속도로 배포하는 CDN 서비스입니다.

프리 티어에서 사용 가능
CloudFront는 프리 티어에서 무료로 사용할 수 있습니다. 2014년 8월 기준으로 매달 50GB 데이터 전송, HTTP 및 HTTPS 요청 2,000,000건을 무료 사용할 수 있습니다.

CloudFront를 사용해야 하는 이유는 전송 속도 향상과 비용 절감에 있습니다. 전 세계를 대상으로 하는 서비스를 준비할 때, 세계 곳곳에 서버를 구축하는 것은 현실적으로 어렵습니다. 또한, AWS를 사용한다 하더라도 모든 리전에 EC2 인스턴스나 S3 버킷을 생성하는 것은 비효율적이며 비용도 많이 듭니다.

CloudFront는 2014년 8월 기준으로 약 51개의 에지 로케이션(캐시 서버)이 전 세계 주요지역에 위치하고 있습니다. 따라서 각 사용자들은 가장 가까운 에지 로케이션에서 파일을 받으므로 다운로드 속도가 빨라집니다.


그림 12-1 CloudFront 기본 개념도

EC2 인스턴스나 S3 버킷은 동작되는 장소가 리전에 한정적입니다. 따라서 멀리 떨어진 지역에서 접속할 경우 전송 속도가 상당히 느립니다. 이때 CloudFront를 이용하여 EC2 인스턴스, ELBElastic Load Balancing, S3 버킷의 내용을 에지 로케이션에 캐시Cache하면 빠른 성능을 낼 수 있습니다(AWS가 아닌 사용자가 직접 구축한 외부 웹 서버의 내용도 캐시할 수 있습니다).

사용자가 맨 처음 CloudFront 에지 로케이션에 접속했을 때, 원하는 파일이 있으면 에지 로케이션에서 바로 파일을 받게 됩니다. 하지만 파일이 없으면 에지 로케이션이 원본 파일이 있는 오리진에 접속하여 파일을 가져온 뒤 사용자에게 전달하게 됩니다.

에지 로케이션이 오리진에서 파일을 가져와서 캐시하게 되면 다른 사용자들도 이 캐시한 파일을 받게 됩니다. 또한, 에지 로케이션이 파일을 캐시하고 있는 동안에는 오리진에 다시 접속하지 않습니다. 캐시 파일이 유지되는 시간은 기본적으로 24시간이며 HTTP 헤더의 Cache-Control을 이용하여 시간을 조절할 수 있습니다. 그리고 에지 로케이션에 있는 파일이 즉각 갱신되어야 할 경우 무효화Invalidation 요청을 통해 캐시된 파일을 삭제시킬 수 있습니다.


그림 12-2 CloudFront에 파일이 캐시 된 상태에 따른 접속 흐름

캐시
캐시(Cache)는 컴퓨터 및 네트워크에 전반적으로 쓰이는 단어입니다. CPU에도 캐시 메모리라는 것이 있으며 캐시 서버라는 말을 많이 사용합니다. 캐시는 속도가 빠른 곳에 임시로 데이터를 저장하여 속도를 높이는 것을 뜻합니다.

한국 IT 환경에서 가장 가까운 AWS 리전은 바다건너 일본 도쿄에 있습니다. 일본이 우리나라에서 가까운 나라이긴 하지만 도쿄 리전은 서울에 있는 국내 서버들보다는 속도가 훨씬 느립니다. 따라서 서울에 CloudFront 에지 로케이션이 있으므로 웹 서비스나 게임 등의 파일 업데이트에는 CloudFront가 필수적입니다.

국내에서만 서비스할 때 지역 제한 기능을 활용하여 불필요한 지역의 트래픽으로 인한 비용을 절감할 수 있습니다.

CloudFront는 일반적인 CDN 서비스와는 다른 특징이 있습니다.

  • 동적 콘텐츠 전송(Dynamic Content Delivery)을 지원합니다.
    • URL 규칙에 따라 정적 페이지는 캐시하고, 동적 페이지는 바로 EC2 인스턴스로 접속하도록 구성할 수 있습니다.
    • HTTP GET 메서드 이외에도 HEAD, POST, PUT, DELETE, OPTIONS, PATCH 메서드를 지원합니다. 특히 POST, PUT, DELETE, OPTIONS, PATCH 메서드는 캐시되지 않고 곧바로 오리진으로 전달됩니다.
    • HTTP 쿠키를 지원합니다. CloudFront 에지 로케이션이 중간에서 쿠키를 전달해줍니다.
  • 동영상 전송을 위한 라이브 스트리밍 프로토콜을 지원합니다. Microsoft Smooth Streaming, Adobe RTMP Streaming 등의 다양한 프로토콜을 지원합니다. 자세한 내용은 링크 참조하기 바랍니다.
    http://aws.amazon.com/ko/cloudfront/streaming/
  • 선납금이나 최소 약정 사용량이 없고, 사용한 만큼 지불하면 됩니다. 자세한 요금은 AWS 사이트의 요금표(http://aws.amazon.com/ko/cloudfront/pricing/)를 참조하기 바랍니다.

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.