[AWS] CloudFront에 대해 알아보자

effiRin·2023년 2월 5일
0

AWS

목록 보기
2/5
post-thumbnail

CloudFront에 대해 알기 전에 CDN 서버가 무엇인지 알아야 한다.
CDN 서버는 CloudFront의 상위 개념, 즉 CloudFront는 CDN 서버의 한 종류이기 때문.



CDN 서버란?

  • CDN이란?
    • CDN은 Content Delivery Network의 줄임말로, 콘텐츠 전송 네트워크를 의미한다.
    • 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장(캐싱)하여 제공하는 시스템이다.
    • 먼 지역에서 내 서비스에 접근하는 사용자에게도 컨텐츠를 빠른 속도로 제공해줄 수 있다.
    • 인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하기 때문에 병목 현상이 발생하지 않는다.
      (출처 : https://kimcoder.tistory.com/384)

  • CDN 서버의 목적

    콘텐츠 전송 네트워크(CDN)의 주 목적은 대기 시간을 줄이거나 네트워크 설계로 인해 발생하는 통신 지연을 줄이는 것입니다. 인터넷의 글로벌하고 복잡한 특성으로 인해 웹 사이트(서버)와 사용자(클라이언트) 간의 통신 트래픽은 아주 먼 물리적 거리를 이동해야 합니다.
    CDN은 클라이언트와 웹 사이트 서버 간에 중간 서버를 두어 효율성을 높입니다. 이러한 CDN 서버는 클라이언트-서버 통신의 일부를 관리합니다. 웹 서버에 대한 웹 트래픽을 줄이고, 대역폭 소비를 줄이며, 애플리케이션의 사용자 환경을 개선합니다.


  • CDN의 장점

    1. 페이지 로드 시간 단축
    페이지 로드 시간이 너무 느리면 웹 사이트 트래픽이 감소할 수 있습니다. CDN은 반송률을 줄이고 사용자가 사이트에서 보내는 시간을 늘릴 수 있습니다.

    2. 대역폭 비용 절감
    들어오는 모든 웹 사이트 요청은 네트워크 대역폭을 사용하기 때문에 대역폭 비용이 상당히 높습니다. 캐싱 및 기타 최적화를 통해 CDN은 오리진 서버가 제공해야 하는 데이터의 양을 줄여 웹 사이트 소유자의 호스팅 비용을 절감할 수 있습니다.

    3. 콘텐츠 가용성 제고
    한 번에 너무 많은 방문자가 방문하거나 네트워크 하드웨어 오류가 발생하면 웹 사이트가 중단될 수 있습니다. CDN 서비스는 더 많은 웹 트래픽을 처리하고 웹 서버의 로드를 줄일 수 있습니다. 또한 하나 이상의 CDN 서버가 오프라인으로 전환되면 다른 운영 서버가 해당 서버를 대체하여 서비스가 중단되지 않도록 할 수 있습니다.

    4. 웹 사이트 보안 강화
    분산 서비스 거부(DDoS) 공격은 대량의 가짜 트래픽을 웹 사이트로 전송하여 애플리케이션이 작동 중지되도록 만들려고 시도합니다. CDN은 여러 중간 서버 간에 로드를 분산하여 오리진 서버에 미치는 영향을 줄임으로써 이러한 트래픽 급증을 처리할 수 있습니다.


  • CDN의 작동 방법 中 '캐싱'에 대해

    CND은 여러 지리적 위치에 접속 지점(POP) 또는 CDN 엣지 서버 그룹을 설정하는 방식으로 작동합니다. 지리적으로 분산된 이 네트워크는 캐싱, 동적 가속 및 엣지 로직 계산의 원리를 기반으로 작동합니다.

    캐싱

    캐싱은 더 빠른 데이터 액세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스입니다. 컴퓨팅에서 캐싱의 원리는 모든 유형의 메모리 및 스토리지 관리에 적용됩니다. CDN 기술에서 이 용어는 네트워크의 여러 서버에 정적 웹 사이트 콘텐츠를 저장하는 프로세스를 의미합니다.

    CDN에서 캐싱은 다음과 같이 작동합니다.

    1. 지리적으로 멀리 떨어진 웹 사이트 방문자는 사이트에서 정적 웹 콘텐츠를 처음 요청합니다.
    2. 요청이 웹 애플리케이션 서버 또는 오리진 서버에 도달합니다. 오리진 서버는 원격 방문자에게 응답을 보냅니다. 또한 해당 방문자와 지리적으로 가장 가까운 CDN POP에 응답 복사본을 보냅니다.
    3. CDN POP 서버는 복사본을 캐싱된 파일로 저장합니다.
    4. 다음에 해당 방문자 또는 해당 위치에 있는 다른 방문자가 동일한 요청을 하면, 오리진 서버가 아닌 캐싱 서버가 응답을 보냅니다.

(출처 : CDN이란 무엇인가요? - CDN 설명 - AWS)





CloudFront란?

CDN(Contents Delivery Network)의 한 종류이다.

CDN은 콘텐츠 전송 네트워크(CDN)는 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크입니다.
사용자가 웹 사이트를 방문할 때 해당 웹 사이트 서버의 데이터는 사용자의 컴퓨터에 도달하기 위해 인터넷을 통해 이동해야 합니다. 사용자가 해당 서버에서 멀리 떨어져 있는 경우 동영상 또는 웹 사이트 이미지와 같은 대용량 파일을 로드하는 데 시간이 오래 걸립니다. 대신 웹 사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달합니다.


요약하자면,

  • CloudFront는 AWS에서 운영하는 콘텐츠 전송 네트워크(CDN)로, Cache 서버로써의 역할을 제공한다.
  • AWS는 전 세계에 서버가 흩어져 있기 때문에 CDN으로써 동작할 수 있는 것이다.
    (출처 : https://kimcoder.tistory.com/384)



CloudFront에서 사용자에게 콘텐츠를 제공하는 방법

먼저, Origin Server, Edge Server(Edge Location)가 뭘까?

[AWS 파헤치기] #2 CloudFront(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 기능을 제공합니다.


사용자가 객체를 요청하고 받기까지의 과정

CloudFront에서 콘텐츠를 제공하는 방법

콘텐츠를 제공하도록 CloudFront를 구성한 후에 사용자가 객체를 요청하면 다음과 같은 결과를 얻습니다.

1. 사용자가 웹 사이트 또는 애플리케이션에 액세스하고 이미지 파일 및 HTML 파일 같은 하나 이상의 객체에 대한 요청을 보냅니다.

2. DNS가 요청을 최적으로 서비스할 수 있는 CloudFront POP(엣지 로케이션)로 요청을 라우팅합니다. 이 위치는 일반적으로 지연 시간과 관련해 가장 가까운 CloudFront POP이며, 요청을 엣지 로케이션으로 라우팅합니다.

3. CloudFront는 해당 캐시에 요청된 객체가 있는지 확인합니다. 객체가 캐시에 있으면 CloudFront는 객체를 사용자에게 반환합니다.
객체가 캐시에 없으면 CloudFront가 다음을 수행합니다.

a. CloudFront는 배포의 사양과 요청을 비교하고 요청을 해당하는 객체로 사용자의 원본 서버(예: Amazon S3 버킷 또는 HTTP 서버)에 전달합니다.
b. 원본 서버는 객체를 다시 엣지 로케이션으로 보냅니다.
c. 오리진에서 첫 번째 바이트가 도착하면 CloudFront가 객체를 사용자에게 전달하기 시작합니다. CloudFront는 다음에 다른 사용자가 객체를 요청할 때 캐시에 해당 객체를 추가합니다.

  • 참고

    리전 엣지 캐시는 POP에 기능 패리티를 둡니다. 예를 들어, 캐시 무효화 요청이 들어오면 객체가 만료되기 전에 POP 캐시 및 리전 엣지 캐시 모두에서 객체가 제거됩니다. 다음에 최종 사용자가 객체를 요청할 때, CloudFront에서는 최신 버전의 객체를 가져오도록 오리진에 반환합니다.



CloudFront 사용법

[CloudFront] CloudFront 기본 사용법

이 글 참고하기!



profile
모종삽에서 포크레인까지

0개의 댓글