본문 바로가기
CLOUD/AWS

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

by Rainbound-IT 2021. 8. 6.
반응형

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

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

  1. 사용자가 웹 사이트 또는 애플리케이션에 액세스하고 이미지 파일 및 HTML 파일 같은 하나 이상의 파일을 요청합니다.
  2. DNS가 요청을 최적으로 서비스할 수 있는 CloudFront POP(엣지 로케이션)로 요청을 라우팅합니다. 이 위치는 일반적으로 지연 시간과 관련해 가장 가까운 CloudFront POP이며, 요청을 엣지 로케이션으로 라우팅합니다.
  3. POP에서 CloudFront는 해당 캐시에 요청된 파일이 있는지 확인합니다. 파일이 캐시에 있으면 CloudFront는 파일을 사용자에게 반환합니다. 파일이 캐시에 없으면 다음을 수행합니다.
    1. CloudFront는 배포의 사양과 요청을 비교하고 파일에 대한 요청을 해당하는 파일 형식으로 사용자의 오리진 서버(예: 이미지 파일의 경우 Amazon S3 버킷 및 HTML 파일의 경우 HTTP 서버)에 전달합니다.
    2. 오리진 서버는 파일을 다시 엣지 로케이션으로 보냅니다.
    3. 오리진에서 첫 번째 바이트가 도착하면 CloudFront가 파일을 사용자에게 전달하기 시작합니다. CloudFront는 다음에 다른 사용자가 해당 파일을 요청할 때 엣지 로케이션의 캐시에 파일을 추가합니다.

 

CloudFront에서 리전 에지 캐시를 사용하는 방식

CloudFront POP(Point of Presence)(엣지 로케이션)는 많이 사용되는 콘텐츠를 최종 사용자에게 빠르게 제공할 수 있도록 합니다. CloudFront에는 또한 리전 엣지 캐시가 있어 POP에 있을 정도로 많이 사용되는 콘텐츠가 아닌 경우에도 최종 사용자가 보다 많은 콘텐츠를 가까이에서 액세스할 수 있도록 하여 콘텐츠의 성능을 개선하는 데 도움을 줍니다.

리전 엣지 캐시는 모든 유형의 콘텐츠, 특히 시간이 지나면서 점차 사용되지 않게 되는 콘텐츠에 유용합니다. 이러한 콘텐츠의 예로는 동영상, 사진 또는 아트워크와 같은 사용자 생성 콘텐츠, 제품 사진 및 동영상과 같은 전자 상거래 자산, 갑자기 사용자가 많아질 수 있는 뉴스 및 이벤트 관련 콘텐츠 등이 있습니다.

리전 캐시 작동 방식

리전 엣지 캐시는 최종 사용자가 쉽게 접할 수 있도록 전역으로 배포되는 CloudFront 위치입니다. 최종 사용자에게 콘텐츠를 직접 제공하는 전역 엣지 로케이션인 POP와 오리진 서버 사이에 위치합니다. 객체의 사용도가 떨어지면 개별 POP가 이러한 객체를 제거하여 보다 많이 사용되는 콘텐츠가 해당 공간을 사용하도록 합니다. 리전 엣지 캐시는 개별 POP보다 캐시가 더 큽니다. 따라서 객체가 가장 가까운 리전 엣지 캐시 위치에 더 오래 캐시 상태로 유지됩니다. 따라서 더 많은 콘텐츠를 최종 사용자와 가까운 거리가 유지할 수 있으므로 CloudFront가 오리진 서버로 돌아가야 할 필요성이 줄어들고 최종 사용자를 위한 전반적인 성능도 향상됩니다.

최종 사용자가 웹 사이트나 애플리케이션을 통해 요청하면, DNS는 이 요청을 사용자의 요청을 가장 잘 처리할 수 있는 POP로 라우팅합니다. 일반적으로 지연 시간을 기준으로 가장 가까운 CloudFront 엣지 로케이션이 여기에 해당합니다. POP에서 CloudFront는 해당 캐시에 요청된 파일이 있는지 확인합니다. 파일이 캐시에 있으면 CloudFront는 파일을 사용자에게 반환합니다. 파일이 캐시에 없으면, POP가 가장 가까운 리전 엣지 캐시로 이동하여 객체를 가져옵니다.

리전 엣지 캐시 위치에서 CloudFront는 해당 캐시에 요청된 파일이 있는지 다시 확인합니다. 파일이 캐시에 있으면 CloudFront가 파일을 요청한 POP에 전달합니다. 리전 엣지 캐시 위치에서 첫 번째 바이트가 도착하면 CloudFront가 파일을 사용자에게 전달하기 시작합니다. CloudFront는 다음에 다른 사용자가 해당 파일을 요청할 때 POP의 캐시에 파일을 추가합니다.

파일이 POP 또는 리전 엣지 캐시 위치에서 캐싱되지 않는 경우, CloudFront는 배포의 사양과 요청을 비교하고 파일에 대한 요청을 오리진 서버로 전달합니다. 오리진 서버가 파일을 리전 엣지 캐시 위치로 다시 보낸 이후, 해당 파일이 POP에 전달되고, CloudFront가 파일을 사용자에게 전달합니다. 이 경우 CloudFront는 다음 번에 최종 사용자가 해당 파일을 요청할 때 POP 뿐만 아니라 리전 엣지 캐시 위치의 캐시에도 파일을 추가합니다. 이를 통해 리전의 모든 POP에서 로컬 캐시를 공유하도록 하고, 오리진 서버에 요청이 여러 번 제출되지 않습니다. CloudFront는 또한 오리진 서버와의 연결을 계속 유지하므로 최대한 빨리 오리진으로부터 해당 파일을 가져올 수 있습니다.

참고

  • 리전 엣지 캐시는 POP에 기능 패리티를 둡니다. 예를 들어, 캐시 무효화 요청이 들어오면 객체가 만료되기 전에 POP 캐시 및 리전 엣지 캐시 모두에서 객체가 제거됩니다. 다음에 최종 사용자가 객체를 요청할 때, CloudFront에서는 최신 버전의 객체를 가져오도록 오리진에 반환합니다.
  • 프록시 메서드 PUT/POST/PATCH/OPTIONS/DELETE는 POP에서 오리진으로 바로 이동하며 리전 엣지 캐시를 통해 프록시되지 않습니다.
  • 요청 시 결정된 동적 요청은 리전 엣지 캐시를 통과하지 않고 오리진으로 직접 이동합니다.
반응형

'CLOUD > AWS' 카테고리의 다른 글

Amazon ElastiCache for Redis 란?  (0) 2021.08.06
AWS 자습서 사이트  (0) 2021.08.06
Amazon ElastiCache  (0) 2021.08.05
Amazon CloudFront  (0) 2021.08.05
캐싱서비스 (AWS)  (0) 2021.08.05

댓글