CDN과 AWS CloudFront

초코칩·2024년 3월 14일
0

AWS Cloud

목록 보기
7/7
post-thumbnail

CDN이란?

콘텐츠 전송 네트워크(CDN)는 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크다. CDN은 콘텐츠 전송 네트워크 또는 콘텐츠 배포 네트워크를 의미할 수 있다.

사용자가 웹 사이트를 방문할 때 해당 웹 사이트 서버의 데이터는 사용자의 컴퓨터에 도달하기 위해 인터넷을 통해 이동해야 한다. 사용자가 해당 서버에서 멀리 떨어져 있는 경우 동영상 또는 웹 사이트 이미지와 같은 대용량 파일을 로드하는 데 시간이 오래 걸린다. 대신 웹 사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달할 수 있게 한다.

CDN 구성 요소

CDN의 내부 구현은 공급자 및 서비스에 따라 다르지만, 일반적으로 다음과 같은 핵심 구성 요소가 포함된다.

  1. Edge Servers (에지 서버): CDN의 핵심은 전 세계 여러 지역에 분산된 에지 서버다. 이 서버들은 사용자에 가까운 지역에 위치하며, 콘텐츠를 캐시하고 제공하여 웹 페이지 및 애플리케이션의 성능을 최적화한다.

한국 서울에는 8개의 엣지 로케이션이 존재하며, 리전별 엣지 캐시도 존재한다.

  1. Origin Servers (원본 서버): 에지 서버가 캐시된 데이터를 갖지 않거나 TTL(TIme-To-Live)이 만료된 경우, 원본 서버에서 데이터를 가져와 에지 서버에 업데이트한다. 이는 주로 동적인 콘텐츠에 적용된다.

  2. 캐싱 알고리즘: CDN은 어떤 데이터를 어떤 에지 서버에 캐싱할지 결정하기 위해 다양한 캐싱 알고리즘을 사용한다. 일반적으로는 가장 많이 요청된 콘텐츠를 캐싱하거나 최근에 업데이트된 데이터를 우선적으로 가져오는 등의 전략이 사용된다.

  3. 로드 밸런싱: CDN은 트래픽을 균형 있게 분산시키기 위해 로드 밸런싱을 사용한다. 사용자의 요청은 여러 에지 서버 중 하나로 전달되어 부하를 분산시킨다.

  4. 보안 기능: 일부 CDN은 DDoS 공격을 탐지하고 방어하는 기능을 제공하며, SSL/TLS 암호화를 지원하여 안전한 통신을 보장한다.

  5. 애널리틱스 및 모니터링: CDN은 트래픽 및 성능에 대한 통계를 수집하고 분석하여 사용자 경험을 개선하고 서비스의 효율성을 모니터링한다.

  6. 프로토콜 최적화: CDN은 HTTP/HTTPS 등의 프로토콜을 최적화하여 빠른 콘텐츠 전송을 지원한다. 일부 CDN은 이미지나 동영상 같은 미디어 콘텐츠에 특화된 최적화 기능도 제공한다.

이러한 구성 요소들은 CDN의 전반적인 목표인 웹 콘텐츠의 빠른 전송, 대규모 트래픽 처리, 안정성 및 보안을 달성하는 데 기여한다.

CDN 작동 원리

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

사용자가 데이터를 요청할 때 CDN의 PoP에서는 다음과 같은 일련의 단계가 발생합니다. 아래는 간단한 과정입니다.

  1. DNS 조회(DNS Resolution): 사용자가 웹 브라우저나 다른 클라이언트에서 특정 도메인의 데이터를 요청하면, 해당 도메인의 DNS 조회가 발생한다. CDN은 도메인에 대한 IP 주소를 반환하는데, 이 IP 주소는 가장 가까운 PoP에 연결되어 있다.

  2. PoP로의 연결: DNS 조회를 통해 얻은 IP 주소를 사용자의 클라이언트가 해당 PoP에 연결한다. 사용자의 요청은 CDN의 인프라 내에서 해당 PoP로 라우팅된다.

  3. 엣지 서버로의 라우팅: PoP에 도착한 요청은 여러 엣지 서버 중 하나로 라우팅됩니다. 이 엣지 서버는 사용자에게 빠르게 응답하기 위해 캐시된 콘텐츠를 검색합니다.

  4. 캐시된 응답 전송: 캐시된 콘텐츠가 에지 서버에 존재하면, 해당 에지 서버에서 바로 클라이언트에 응답을 전송한다. 이로써 원본 서버까지 가는 대신 캐시된 데이터를 사용자에게 제공하여 빠른 응답을 가능케 한다.

  5. 원본 서버로의 요청(필요한 경우): 캐시된 데이터가 없거나 만료된 경우, 에지 서버는 원본 서버에서 새로운 데이터를 가져와 캐시를 갱신한 후 사용자에게 응답한다. 이 과정에서 필요한 경우 에지 서버는 원본 서버로부터 데이터를 가져오기 위한 요청을 수행한다.

PoP과 엣지 서버

  • 엣지 서버: 엣지 서버는 CDN에서 사용자에게 가장 가까운 지역에 위치한 서버를 나타낸다. 이 서버들은 전 세계 여러 지역에 분산되어 있어서 사용자들에게 더 빠르고 효율적인 웹 콘텐츠 전송을 가능하게 한다. 엣지 서버는 캐시된 콘텐츠를 저장하고 사용자에게 제공하며, 원본 서버로부터 데이터를 가져와 업데이트한다.

  • PoP(Point of Presence): PoP는 CDN이나 통신 네트워크에서 사용자 트래픽이 많이 발생하는 지역에 위치한 물리적인 위치나 데이터 센터를 나타낸다. PoP에는 여러 대의 엣지 서버가 포함될 수 있다. PoP는 사용자와 가까운 지역에 CDN 인프라를 배치하여 대역폭을 효과적으로 활용하고 전체 성능을 최적화하는 데 도움이 된다.

따라서, 엣지 서버는 PoP의 일부로 볼 수 있다. 여러 엣지 서버가 하나의 PoP에 속할 수 있으며, PoP는 일반적으로 특정 지리적 지역에 CDN 인프라를 배치하는 데 사용되는 용어다.

PoP의 IP 반환

DNS 조회에서 어떻게 가장 가까운 PoP(Point of Presence)의 IP 주소를 반환하는지에 대한 기본적인 방법은 다음과 같다.

  • 지역 기반 DNS 라우팅: 대부분의 CDN은 지역 기반 DNS 라우팅을 사용한다. CDN은 전 세계 여러 지역에 분산된 DNS 서버를 운영하고, 이 DNS 서버는 사용자의 지리적 위치에 따라 가장 가까운 PoP의 IP 주소를 반환한다. 사용자가 DNS 조회를 하면, 해당 위치에 가장 가까운 PoP의 IP 주소를 반환하여 사용자가 빠르게 콘텐츠를 받을 수 있도록 한다.

  • Anycast IP 주소 사용: 일부 CDN은 Anycast를 사용하여 하나의 IP 주소가 여러 위치에 할당되어 있는 것처럼 보이게 한다. 사용자의 DNS 조회는 Anycast IP 주소를 반환받고, 이 IP 주소는 사용자의 지리적 위치에 가장 가까운 PoP로 라우팅된다.

  • 기타 데이터 기반 라우팅 기술: 일부 CDN은 사용자의 지리적 위치 외에도 네트워크 상태, 대역폭, 지리적 거리 등 다양한 요인을 고려하여 DNS 조회 결과를 결정한다. 이를 통해 최적의 PoP로 사용자를 라우팅할 수 있다.

이러한 방법을 통해 CDN은 사용자에게 빠르고 효율적인 콘텐츠 전송을 가능케 하며, 지리적으로 분산된 PoP를 활용하여 웹 성능을 최적화한다.

캐싱

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

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

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

AWS CloudFront에서의 기본 TTL(Time-To-Live)은 24시간이다. 이는 캐시된 객체가 24시간 동안 유효하다는 것을 의미한다. 캐시 객체의 TTL은 원본 서버에서 제공된 응답 헤더 중 Cache-Control 또는 Expires 헤더에 따라 동적으로 설정될 수 있다. 만약 원본 서버가 Cache-Control 헤더를 포함하고 있다면, CloudFront는 해당 헤더를 사용하여 TTL을 설정한다. Cache-Control 헤더에 max-age 또는 s-maxage 디렉티브가 있으면, 해당 값이 TTL로 사용된다.
원본 서버가 Cache-Control 헤더를 포함하지 않거나 max-age 및 s-maxage 디렉티브가 없다면, Expires 헤더 값을 사용하여 TTL을 계산힌다.

동적 가속

동적 가속은 웹 애플리케이션과 클라이언트 사이의 중개 CDN 서버로 인해 발생하는 동적 웹 콘텐츠 요청에 대한 서버 응답 시간을 단축하는 것이다. 사용자 요청이 있을 때마다 콘텐츠가 변경될 수 있기 때문에 동적 웹 콘텐츠에서는 캐싱이 제대로 작동하지 않는다. CDN 서버는 모든 동적 요청에 대해 오리진 서버와 다시 연결해야 하지만 자신과 오리진 서버 간의 연결을 최적화하여 프로세스를 가속화한다.

클라이언트가 인터넷을 통해 웹 서버로 직접 동적 요청을 보내는 경우 네트워크 지연 시간으로 인해 요청이 손실되거나 지연될 수 있다. 보안 검증을 위해 연결을 열고 닫는 데에도 시간이 걸릴 수 있다. 반면, 근처의 CDN 서버가 요청을 오리진 서버로 전달할 경우, 신뢰할 수 있는 지속적인 연결이 이미 설정되었을 것이다. 예를 들어 다음과 같은 기능을 통해 이들 간의 연결을 더욱 최적화할 수 있다.

  • 지능형 라우팅 알고리즘
  • 오리진에 대한 지리적 근접성
  • 클라이언트 요청을 처리할 수 있으므로 클라이언트 요청을 줄일 수 있다.

엣지 로직 계산

클라이언트와 서버 간의 통신을 단순화하는 논리적 계산을 수행하도록 CDN 에지 서버를 프로그래밍할 수 있다. 예를 들어 이 서버는 다음을 수행할 수 있다.

  • 사용자 요청을 검사하고 캐싱 동작을 수정한다.
  • 잘못된 사용자 요청을 확인하고 처리한다.
  • 응답하기 전에 콘텐츠를 수정하거나 최적화한다.

웹 서버와 네트워크 엣지 간에 애플리케이션 로직을 배포하면 개발자가 오리진 서버의 컴퓨팅 요구 사항을 오프로드하고 웹 사이트 성능을 높이는 데 도움이 된다.

CDN 장단점

장점

콘텐츠 전송 네트워크(CDN)는 웹 사이트 성능을 높이고 핵심 네트워크 인프라를 지원하는 여러 가지 이점을 제공한다.

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

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

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

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

단점

  • 비용: CDN 서비스는 추가 비용이 발생할 수 있다. 특히, 대규모 트래픽을 처리하는 경우에는 비용이 증가할 수 있다.

  • 설정 및 유지 관리 복잡성: CDN을 설정하고 관리하는 것은 초기에 복잡할 수 있다. 또한 CDN 공급자에 따라 설정 및 관리가 다를 수 있다.

  • 동적 컨텐츠의 캐싱 문제: 일부 동적 콘텐츠는 캐싱이 어려울 수 있다. 동적인 콘텐츠의 경우에는 적절한 캐싱 전략을 수립해야 한다.

  • 데이터 신선도 유지: TTL 값이 너무 짧으면 캐시된 데이터를 자주 갱신해야 하므로, 캐시의 효과가 감소할 수 있다. 반면에 TTL 값이 너무 길면 업데이트된 데이터를 반영하기까지의 시간이 길어질 수 있다.

CDN 고려사항

  • 비용: CDN은 보통 제3 사업자에 의해 운영되며, CDN으로 들어가고 나가는 데이터 전송 양에 따라 요금을 내게 된다. 자주 사용되지 않는 컨텐츠를 캐싱하는 것은 이득이 크지 않으므로 CDN에서 빼는 것을 고려하자.

  • TTL: time-sensitive한 컨텐츠의 경우 만료 시점을 잘 정해야 한다. 너무 길지도 않고 짧지도 않아야 하는데, 너무 길면 컨텐츠의 신선도는 떨어지고 너무 짧으면 원본 서버에 빈번히 접속해야 한다.

  • CDN 장애 대처 방안: CDN 자체가 죽었을 경우 애플리케이션이 어떻게 동작해야 하는지 고려해야 한다. 가령 일시적으로 CDN이 응답하지 않을 경우, 해당 문제를 감지하여 원본 서버로부터 직접 컨텐츠를 가져오도록 클라이언트를 구성하는 것이 필요할 수 있다.

  • 컨텐츠 무효화: 아직 만료되지 않은 컨텐츠라 하더라도 아래 방법으로 무효화가 가능하다.

    • CDN 서비스 사업자가 제공하는 API를 이용하여 컨텐츠 무효화
    • 컨텐츠의 다른 버전을 서비스하도록 오브젝트 버저닝 이용. 컨텐츠의 새로운 버전을 지정하기 위해서는 URL 마지막에 버전 번호를 인자로 준다. (image.png?v=2)

CDN 용도

콘텐츠 전송 네트워크(CDN)는 일반적인 웹 사이트 기능을 개선하고 고객 만족도를 높인다.

고속 콘텐츠 전송

정적 및 동적 인터넷 콘텐츠 전송을 결합하여 CDN을 사용하여 고객에게 글로벌 고성능 전체 사이트 환경을 제공할 수 있다. 예를 들어 위성 링크 통신에 대한 의존도를 최소화하고 보다 저렴하고 가용성이 높으며 안전한 글로벌 분산 네트워크 플랫폼을 구축하기 위해 Amazon의 CDN 서비스인 Amazon CloudFront를 Amazon S3와 함께 사용할 수 있다.

실시간 스트리밍

CDN은 고품질의 풍부한 미디어 파일을 안정적이고 비용 효율적으로 제공할 수 있도록 지원한다. 비디오 및 오디오를 스트리밍하는 기업은 CDN을 사용하여 대역폭 비용 절감, 확장성 향상, 제공 시간 단축이라는 세 가지 과제를 해결한다.

다중 사용자 확장

CDN은 다수의 동시 사용자를 지원하는 데 도움이 된다. 웹 사이트 리소스는 한 번에 제한된 수의 클라이언트 연결만 관리할 수 있다. CDN은 애플리케이션 서버에서 로드 일부를 가져옴으로써 이 수를 빠르게 확장할 수 있다.

AWS Cloudfront

엣지 컴퓨팅

Amazon CloudFront는 CloudFront 함수 및 AWS Lambda@Edge를 통해 프로그래밍 가능한 보안 엣지 CDN 컴퓨팅 기능을 제공한다.

CloudFront 함수

CloudFront 함수는 HTTP 헤더 조작, URL 다시 쓰기/리디렉션, 캐시 키 정규화와 같이 높은 확장성과 지연 시간에 민감한 작업에 적합하다. 이러한 유형의 단기 실행 경량 작업은 종종 예측할 수 없으며 사용량이 급증하는 트래픽을 지원한다. 예를 들어, CloudFront 함수를 사용하여 수신 요청의 Accept-Language 헤더에 따라 사이트의 언어 특정 버전으로 요청을 리디렉션할 수 있다. 이러한 함수는 모든 CloudFront 엣지 로케이션에서 실행되므로, 일반적으로 1밀리초 미만으로 지연 시간 오버헤드를 최소화하며 초당 수백만 건의 요청으로 즉시 확장할 수 있다. 또한 지연 시간이 짧은 글로벌 키 값 데이터 스토어인 CloudFront KeyValueStore를 활용하여 CloudFront Functions 내에서 조회 데이터를 저장하고 검색할 수 있다. CloudFront KeyValueStore를 사용하면 독립적인 데이터 업데이트를 허용하여 CloudFront Functions를 보다 쉽게 사용자 지정할 수 있다.

Lambda@Edge

AWS Lambda@Edge는 다양한 컴퓨팅 요구 사항과 사용자 지정을 지원하는 범용 서버리스 컴퓨팅 기능이다. Lambda@Edge는 아래와 같은 컴퓨팅 집약적 작업에 가장 적합하다.

  • 완료하는 데 시간이 더 오래 걸리는 작업(밀리초에서 초 단위까지)
  • 외부 타사 라이브러리에 종속성이 존재
  • 다른 AWS 서비스(예: S3, DynamoDB)와 통합이 필요한 작업
  • 데이터 처리를 위해 네트워크 호출이 필요한 컴퓨팅

널리 사용되는 몇 가지 고급 사용 사례로는, HLS 스트리밍 매니페스트 조작, 타사 권한 부여 및 봇 탐지 서비스와의 통합, 엣지에서 단일 페이지 앱(SPA)의 서버 측 렌더링(SSR) 등이 포함된다.

요금 정책

CloudFront에서 인터넷으로 데이터 송수신 (Region-to-Region)

CloudFront의 한 Region에서 다른 Region으로 데이터를 전송할 때마다 요금이 부과된다.

CloudFront는 가용 영역에 대한 개념보다 큰 개념인 Region으로 데이터 송수신 트래픽 비용을 부과하기 때문에 가용 영역에 대한 데이터 송수신의 개념은 존재하지 않습니다. 따라서 가용 영역에 대한 송수신의 요금 부과는 없다.

Client에서 CloudFront로 대한민국, 홍콩, 인도네시아가 포함된 Region에서는 0.120$ 정도가 부과됩니다.

처음 10TB는 위의 내용과 동일하고 10TB 이상일 경우 할인된 요금이 순차적으로 적용됩니다.

CloudFront에서 Origin으로 데이터 전송 (CloudFront-to-Origin)

CloudFront의 오리진으로 등록된 S3등과 같은 AWS 서비스로 데이터를 전송할때 트래픽 요금이 발생합니다. 대한민국이 포함되어 있는 region으로의 데이터 전송은 0.060$ 정도가 부과됩니다.

CloudFront의 엣지 로케이션에서의 HTTP / HTTPS 요청 횟수 당 요금 (Client-to-CloudFront)

CloudFront로 요청하는 HTTP / HTTPS에 대해서 트래픽 요금이 발생합니다.

대한민국이 포함되어있는 region에서는 HTTP는 10000개 요청당 0.0090$(약 한화 11원 : 2021년 12월 기준)의 트래픽 요금이 발생합니다.

대한민국이 포함되어있는 region에서는 HTTPS는 10000개 요청당 0.0120$(약 한화 14원 : 2021년 12월 기준)의 트래픽 요금이 발생합니다.

Region과 가용 영역과는 별도로 엣지 로케이션은 전 세계 주요 도시 곳곳에 분포되어 있다고 합니다.

엣지 로케이션의 경우 CloudFront만을 위한 공간입니다.

이를 바탕으로 위의 도표를 보면, HTTP / HTTPS 요청에 대한 비용이 위와 정확하게 일치하지는 않고 Client의 요청을 받은 엣지 로케이션에 따라 비용이 달라질 수 있다는 것을 명시하고 있습니다.

CloudFront Functions

CloudFront Functions는 CloudFront 엣지 로케이션에서 간단한 JavaScript 코드를 실행할 수 있는 서버리스 스크립팅 플랫폼입니다.

호출 요금은 호출 1백만 개당 0.10 USD(호출당 0.0000001 USD)입니다.

전체 함수에서 총 호출 수에 대해 요금이 부과됩니다. CloudFront Functions는 글로벌 CloudFront 이벤트에 대한 응답으로 함수를 실행할 때마다 간접 호출 횟수를 계산합니다.

CloudFront KeyValueStore

CloudFront KeyValueStore는 지연 시간이 짧은 글로벌 키-값 데이터 스토어입니다. KeyValueStore를 사용하면 CloudFront 엣지 로케이션에서 가벼운 컴퓨팅을 실행할 때 상태 저장 데이터에 액세스하여 지연 시간, 성능 및 개발자 경험을 개선할 수 있습니다.

CloudFront Functions 내의 읽기 비용은 읽기 100만 건당 0.03 USD(읽기 1건당 0.00000003 USD에 해당)입니다. 요금은 모든 함수의 전체 읽기 횟수를 기준으로 적용됩니다. CloudFront KeyValueStore는 CloudFront Functions 간접 호출이 있을 때마다 함수 코드 내에서 읽은 횟수를 계산합니다.

CloudFront Functions 내 읽기를 포함하지 않는 모든 API 작업의 경우 비용은 API 요청 1,000개당 1 USD입니다.

Lambda@Edge

Lambda@Edge는 다양하고 복잡한 사용자 지정 기능을 구현하기 위한 완전히 프로그래밍 가능한 서버리스 엣지 컴퓨팅 환경입니다. Lambda@Edge 함수는 리전 엣지 캐시(일반적으로 클라이언트가 도달한 CloudFront 엣지 로케이션에 가장 가까운 AWS 리전 내)에서 실행됩니다.

전체 함수에서 총 요청 수에 대해 요금이 부과됩니다. Lambda@Edge는 글로벌 Amazon CloudFront 이벤트에 대한 응답으로 함수를 실행할 때마다 요청 횟수를 계산합니다.

요청 요금은 1백만 건당 0.60 USD(요청당 0.0000006 USD)입니다.

기간은 코드가 실행되는 순간부터 반환 또는 종료될 때까지 시간입니다. 사용한 GB/초당 0.00005001 USD가 부과됩니다. 예를 들어 Lambda@Edge 함수가 실행될 때마다 128MB의 메모리를 할당하면, 기간 비용은 사용된 128MB-초당(1ms 단위로 측정) 0.00000625125 USD가 됩니다.

예를 들어, Lambda@Edge 함수에서 호출당 사용 가능한 128MB의 메모리를 할당하면 기간 비용은 사용한 128MB/초당 0.00000625125 USD가 됩니다. Lambda@Edge 함수는 1밀리초 단위로 측정됩니다. 현재 Lambda@Edge에는 프리 티어가 없습니다.

CloudFront Cache hit ratio 증가 방법

CloudFront의 캐시 적중룔, 어떻게하면 높일 수 있을까? AWS 가이드에서는 총 7가지가 있다고 한다.

  • CloudFront에서 객체를 캐시하는 기간 지정
  • Origin Shield 사용
  • 쿼리 문자열 매개 변수를 기반으로 한 캐싱
  • 쿠키 값에 따른 캐싱
  • 요청 헤더 기반 캐싱
  • 압축이 필요하지 않은 경우 Accept-Encoding 헤더 제거
  • HTTP를 사용하여 미디어 콘텐츠 제공

7가지 중 3가지 정도만 자세히 알아보도록 하겠습니다.
(다소 양이 방대하기때문에 나머지는 최하단 Docs 링크 추가해두었으니 참고 부탁드립니다.)

Ref

https://aws.amazon.com/ko/what-is/cdn/
https://jw910911.tistory.com/110
https://manvscloud.com/?p=416

profile
초코칩처럼 달콤한 코드를 짜자

0개의 댓글