본문으로 바로가기

Contents

    개요

    운영 중인 Cloudfront에서 서빙되고 있는 콘텐츠의 캐싱이 얼마만큼 되었는지 확인할 수 있는 방법을 알아보고 각각의 지표가 무엇을 의미하는 것 인지 알아본다.

    객체 캐싱 확인

    먼저 Cloudfront의 캐싱율을 확인하기 전에 내가 서빙하고 있는 콘텐츠가 사용자에게 제대로 캐싱되고 있는지의 여부를 확인해 보자. 캐싱이 제대로 되고 있는지의 여부는 콘텐츠의 HTTP 헤더값을 보면 된다.

    • 웹 브라우저개발자 도구콘텐츠 요청

     

     

    x-cache 헤더의 Value값이 ‘Hit from Cloudfront’인지 확인하고 agecache-control 헤더의 Value 값을 확인하면 된다.

    Cloudfront의 캐싱율 확인

    객체가 제대로 캐싱되고 있는지 확인했으면 캐싱율이 어느 정도인지 확인해 보자.

    • Cloudfront인기 객체 (Popular objects) 메뉴

    해당 메뉴에서 Cloudfront의 배포별로 캐싱이 얼마만큼 되었는지 확인할 수 있다.

    지표 설명

    인기객체 메뉴에서 확인할 수 있는 지표에 대한 설명이다.

    지표 설명
    객체 (Object) 객체에 대한 Endpoint URL을 나타낸다.
    요청 (Reqeusts) 객체에 대한 총 요청 수를 나타낸다.
    검색결과 (Hits) Edge Location에서 캐싱된 객체가 제공된 사용자 요청 수이다.
    검색결과 % (Hits %) 검색 결과 (Hits)를 백분율로 표시한 값이다.
    누락 (Misses) Edge Location에 객체를 찾지 못한 사용자 요청 수이다.
    누락된 바이트 (Bytes from misses) Edge Location에 객체를 찾지 못하여 사용자에게 제공된 Byte이다.
    바이트 합계 (Total bytes) 객체에 대해 최종 사용자에게 제공한 총 바이트 수이다.
    불완전한 다운로드 (Incomplete downloads) 객체에 대해 사용자가 다운로드를 시작했으나 완료되지 못한 최종 사용자 요청 수이다. (일반적으로 다른 링크를 클릭하거나 브라우저를 닫는 등의 동작으로 사용자가 요청을 취소한 경우임)
    2xx HTTP Status Code가 2xx(성공)인 요청
    3xx HTTP Status Code가 3xx(추가 작업 필요)인 요청
    4xx HTTP Status Code가 4xx(클라이언트 오류)인 요청
    5xx HTTP Status Code가 5xx(서버 오류)인 요청

    캐싱율 확인하기

    해당 지표에서 검색결과 지표와 검색결과 % 지표가 캐싱율과 직결되는 지표인데 만약 해당 지표가 낮을 경우 제대로 캐싱이 되고 있지 않다는 것이다.

     

    캐싱 설정이 잘 안 된 예

    객체에 대한 캐싱이 제대로 설정되지 않은 예

    위 같은 경우는 아예 캐싱설정이 안 되었다고 봐도 무방하다.

     

     

    캐싱 설정이 잘된 예

    객체에 대한 캐싱이 제대로 설정된 예

    위 사진처럼 유저가 캐싱된 객체를 요청할 때마다 검색결과가 올라간다.

    검색 결과 %가 100%에 가까우면 가까울수록 캐싱율이 높다고 말할 수 있다.

     

    캐싱율을 높일 수 있는 방법

    AWS 공식 문서에서는 캐싱율을 높일 수 있는 방법으로 총 7가지의 방법을 소개하고 있다.

    • CloudFront에서 객체를 캐싱하는 시간 지정
    • Origin Shield 사용
    • 쿼리 문자열 파라미터 기반 캐싱
    • 쿠키 값 기반 캐싱
    • 요청 헤더 기반 캐싱
    • 압축이 불필요할 때 Accept-Encoding 헤더 제거
    • HTTP를 사용한 미디어 콘텐츠 제공

     

    자세한 내용은 아래의 AWS 공식 문서를 참고하자.

     

    Reference