카테고리 없음

[AWS] Cloudfront

알 수 없는 사용자 2023. 4. 6. 10:20

베하 ~~~~~~~~~~~~

수 지 타 산 입니다.

본격적으로 봄이 오기 전 

비가 오는 요즘입니다

앞으로 다가올 따뜻한 날씨를 기대하며

오늘은 cloudfront에 대해 공부할게요

팔로팔로팔로미


CloudFront란?

CloudFront는 AWS에서 제공하는 CDN 서비스 입니다. 캐싱을 통해 사용자에게 좀 더 빠른 전송 속도를 제공함을 목적으로 합니다. CloudFront는 전 세계 이곳저곳에 Edge Server(Location)을 두고 Client에 가장 가까운 Edge Server를 찾아 Latency를 최소화시켜 빠른 데이터를 제공합니다.

클라우드프론트는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스이다. CloudFront는 CDN 서비스와 이외에도 기본 보안 기능(Anti-DDoS)을 제공한다.

 

 

Edge Server, Origin Sever, Cache 이게 다 무엇인지 알아보기 전에, 그림 한 장 보시죠!

 

CloudFront가 서비스 되는 과정

CloudFront를 사용함에 있어 관련되는 키워드들은 다음과 같습니다.

 

- 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으로 제공해 주나요?

- Downlad Distribution : HTTP 프로토콜을 이용해서 다운로드할 수 있는 일반적인 이미지 혹은 정적 파일을 제공받을 수 있습니다.

 

- 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~10분 정도의 시간이 소요됩니다.

 

 

아.. CloudFront를 설정하는 방법에 대해서 설명하려 했는데 이것저것 정리하다 보니까 정작 설정하는 방법에 대해서는 하나도 적질 못헀네요 다음 편에서 실제로 AWS Console을 통해 CloudFront를 설정하는 방법에 대해서 알아보도록 하겠습니다.

 

 

CloudFront 동작방식

CloudFront는 AWS 백본 네트워크를 통해 콘텐츠를 가장 효과적으로 서비스할 수 있는 엣지로 각 사용자 요청을 라우팅하여 콘텐츠 배포 속도를 높인다.

일반적으로 CloudFront 엣지가 최종 사용자에게 가장 빨리 제공한다.

  1. 콘텐츠가 엣지 로케이션에 없는 경우
    • CloudFront는 콘텐츠의 최종 버전에 대한 소스로 지정된 오리진(Amazon S3 버킷, MediaPackge 채널, HTTP 서버(예 : 웹 서버)등) 에서 콘텐츠를 검색
    • 컨텐츠를 제공하는 근원에서 제공받아 전달
  2. 콘텐츠가 엣지 로케이션에 있는 경우
    • 바로 전달

 

CloudFront 장점

  • AWS 네트워크를 사용하면 사용자의 요청이 반드시 통과해야 하는 네트워크의 수가 줄어들어 성능이 향상
  • 파일의 첫 바이트를 로드하는 데 걸리는 지연 시간이 줄어들고 데이터 전송 속도가 빨라진다.
  • 파일(객체)의 사본이 전 세계 여러 엣지 로케이션에 유지(또는 캐시)되므로 안정성과 가용성이 향상
  • 보안성 향상
    • 오리진 서버에 대한 종단 간 연결의 보안이 보장됨(https)
    • 서명된 URL 및 쿠키 사용 옵션으로 자체 사용자 지정 오리진에서 프라이빗 콘텐츠를 제공하도록 할 수 있음

여기까지 cloudfront에 대해 알아봤습니다

AWS의 CDN 기능인 cloudfront를 

사업체에서는 꽤 많이 이용하신답니다

알아두면 좋겠죠?

그럼 다음주에도 만나요

제에에에에에바아아아알