개요

성능 측정은 웹 애플리케이션의 속도를 개선할 기회를 식별하기 위한 출발점입니다. 측정된 성능은 CDN을 사용한 콘텐츠 전송 품질과 웹 애플리케이션 설계 방식의 영향을 받습니다. 이 문서에서는 콘텐츠 전송 성능을 측정하는 모범 사례를 중점적으로 다룹니다. 이 방법은 CDN을 벤치마킹(예: 새 CDN 출시), 멀티 CDN 아키텍처에서 CDN 전환, 단순히 지속적인 CDN 구성 변경(예: HTTP/3과 같은 새 프로토콜 출시)에 중요합니다. 가장 관련성이 높고 정확한 CDN 성능 데이터를 얻으려면 테스트 조건, 즉 측정 기법 및 테스트 조건을 신중하게 선택해야 합니다.

Amazon CloudFront Flash 토론: 모범 사례

측정 기법

애플리케이션 레벨 성능 측정을 위한 합성 테스트

합성 테스트는 운영자가 웹 애플리케이션을 로드하는 사용자의 시나리오를 시뮬레이션하는 측정 기법입니다. Chrome의 Lighthouse와 같은 도구를 사용하여 운영자의 컴퓨터에서, Webpagetest.org와 같은 도구를 사용하여 데이터 센터에서, 또는 CatchpointCloudWatch Synthetics와 같은 도구를 사용하여 전 세계 데이터 센터 및 ISP 백본에 배포된 정교한 프로브 네트워크에서 간단하게 수행할 수 있습니다.

이 접근 방식은 웹 애플리케이션 코드의 성능(예: Javascript가 페이지 로드에 미치는 영향)을 이해하는 데 유용합니다. 코드 릴리스 프로세스의 여러 단계(예: 사전 프로덕션 환경에서의 합성 테스트)에서 코드 업데이트 후 애플리케이션 성능의 개선 또는 퇴보를 모니터링하는 데 권장되는 접근 방식입니다.

그러나 CDN의 성능을 측정할 때는 합성 테스트가 부족합니다. 예를 들어 합성 테스트 프로브는 일반적으로 모든 CDN의 라우팅 시스템이 최적화되어 있지 않은 실제 사용자 트래픽을 전달하지 않는 네트워크에 위치합니다. 또한 합성 테스트로 생성된 트래픽은 실제 트래픽 로드에 비해 상대적으로 낮으며, 이는 CDN이 트래픽을 증가시켜 네트워크를 워밍업하는 방식을 잘 반영하지 못합니다. 이러한 이유로 CDN을 벤치마킹할 때는 Real User Measurement(RUM) 기법을 사용하는 것이 좋습니다. 읽어보기

CDN 수준 성능 측정을 위한 Real User Measurement

CloudFront와 같은 CDN의 성능을 측정하려면 CloudWatch RUM과 같은 도구를 사용하여 Real User Measurement(RUM) 기법을 사용하는 것이 좋습니다. RUM은 사용자의 관점에서 웹 애플리케이션의 성능에 대한 가장 정확한 데이터를 제공합니다. CloudWatch RUM을 사용하면 CDN 성능이 최대 Largest Content Paint(LCP) 지표와 같은 애플리케이션의 Core Web Vitals에 어떤 영향을 미치는지 이해할 수 있습니다. 또한 RUM을 사용하여 CDN 성능을 비즈니스 KPI(예: 사용자 방문 횟수, 판매 등)와 연관시킬 수 있습니다. CloudWatch RUM을 사용하려면 웹 페이지에 Javascript 태그를 추가해야 합니다. Javascript는 연결 단계 분석(DNS 조회, TCP 연결 등) 또는 Core Web Vitals을 포함한 페이지 로드 시간과 같은 브라우저 API에서 데이터를 수집한 다음 대시보드 작성을 위해 CloudWatch RUM으로 전송합니다. 브라우저 유형, 사용자 국가 또는 특정 페이지 ID와 같은 특정 차원을 기준으로 필터링하여 CDN 성능을 분석할 수 있습니다.

CDN에서 이러한 차원 중 하나(예: 특정 페이지 또는 지리적 리전)에서 지연 시간을 표시하는 경우 외부 차원 내 요청의 네트워킹 지표를 자세히 분석합니다. TCP 연결 시간이 느리면 라우팅이 최적이 아님을 나타낼 수 있으며, 캐시 미스(cache miss) 시 첫 번째 바이트까지의 시간이 느리면 오리진 속도가 느림을 나타낼 수 있습니다. CloudFront 서버 측 문제 해결과 CloudWatch RUM을 함께 사용하면 범위를 더 좁히고 지연 시간 문제를 파악할 수 있습니다.

Amazon CloudWatch 기반 실제 사용자 모니터링

CDN 벤치마킹 모범 사례

CloudFront와 같은 CDN을 벤치마킹하기 위한 편견 없는 테스트 조건을 설정하려면 다음 모범 사례를 살펴보세요.

  • 트래픽의 상당 부분(최소 20%)을 각 CDN으로 전송하여 대규모 CDN의 실제 성능을 측정합니다. CloudFront와 같은 CDN은 워밍 시 대규모 성능에서 더 나은 성능을 보여줍니다(예: 캐시 채우기, TCP 연결 풀 워밍, ISP가 캐시한 DNS 항목) .
  • 모든 CDN에 대해 동일한 조건에서 벤치마킹 테스트를 수행합니다. 비슷한 양의 트래픽을 각 CDN에 동시에 동일한 사용자 기반에 전송합니다.
  • 적절한 시간 동안 테스트를 수행합니다. 예를 들어 롱테일(long tail) 콘텐츠를 전송하는 경우 CDN이 캐시를 채우고 캐시 적중률을 안정적인 상태로 높이는 데 며칠이 걸릴 수 있습니다.
  • 압축, 이미지 최적화, 프로토콜(HTTP/3 vs H2, TLS1.3 vs TLS1.2, IPv6 vs IPv4), 오리진 가속화(Origin Shield) 등과 같은 동일한 기능으로 CDN을 구성합니다.

NS1의 Pulsar 또는 Citrix Intelligent Traffic Management와 같은 트래픽 조정을 위한 일부 타사 솔루션에는 애플리케이션 외부 소스에서 수집한 자체 RUM 데이터가 포함되어 있습니다. 이러한 도구를 사용하는 경우 CDN 성능 벤치마킹을 고려할 때 다음과 같은 사항을 고려하세요.

  • CDN은 동일한 조건에서 테스트되나요? 유사한 구성 및 최적화.
  • 각 차원에 대해 얼마나 많은 데이터 요소가 수집되나요? 데이터 포인트가 많을수록 벤치마킹이 더 정확해집니다(CDN 워밍, 통계 오류 등).
  • 테스트된 개체가 애플리케이션과 동일한 특성을 가지고 있나요?(예: 정적 vs 동적, 소형 객체 vs 대형 객체, 인기 있는 객체 vs 인기 없는 객체 등...)
  • 이러한 도구 중 일부는 자체 CDN에서 RUM 테스트를 수행할 수 있는 가능성을 제공합니다. 사용자가 CDN에서 경험하게 될 성능을 더 잘 반영할 수 있으므로 이 옵션을 고려해 보세요.
  • 애플리케이션과 관련된 성능 지표(지연 시간, 처리량, P50 vs P90)와 가용성을 가장 적절하게 조합하여 사용하세요. 예를 들어 대형 객체 다운로드는 지연 시간보다 처리량에 더 민감합니다.

리소스

이 페이지의 내용이 도움이 되었나요?