CloudFront 및 엣지 함수 지표 보기 - Amazon CloudFront

CloudFront 및 엣지 함수 지표 보기

CloudFront 콘솔에서 CloudFront 배포 및 엣지 함수에 대한 운영 지표를 볼 수 있습니다.

CloudFront에서 CloudFront 및 엣지 함수 지표를 보려면
  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 엽니다.

  2. 탐색 창에서 모니터링을 선택합니다.

  3. 특정 CloudFront 배포 또는 엣지 함수의 활동에 대한 그래프를 보려면 그래프를 선택한 후 View distribution metrics(배포 지표 보기) 또는 View metrics(지표 보기)를 선택합니다.

  4. 다음을 수행하여 그래프를 사용자 지정할 수 있습니다.

    1. 그래프에 표시된 정보의 시간 범위를 변경하려면 1h(1시간), 3h(3시간) 또는 다른 범위를 선택하거나 사용자 지정 범위를 지정합니다.

    2. CloudFront가 그래프의 정보를 업데이트하는 빈도를 변경하려면 새로 고침 아이콘 옆에 있는 아래쪽 화살표를 선택하고 새로 고침 속도를 선택합니다. 기본 새로 고침 빈도는 1분이지만 다른 옵션을 선택할 수 있습니다.

  5. CloudFront 콘솔에서 CloudFront 그래프를 보려면 대시보드에 추가를 선택합니다. CloudWatch 콘솔에서 그래프를 보려면 미국 동부(버지니아 북부) 리전을 사용해야 합니다.

기본 CloudFront 배포 지표

다음 기본 지표는 모든 CloudFront 배포에 포함되며, 추가 비용은 들지 않습니다.

요청

모든 HTTP 메서드와 HTTP 및 HTTPS 요청에 대해 CloudFront에서 수신한 최종 사용자 요청의 총 수입니다.

다운로드된 바이트

GET, HEAD, OPTIONS 요청에 대해 최종 사용자가 다운로드한 총 바이트 수입니다.

업로드된 바이트

뷰어가 POSTPUT 요청을 사용하여 CloudFront에 업로드한 총 바이트 수입니다.

4xx 오류 발생률

응답의 HTTP 상태 코드가 4xx인 모든 최종 사용자 요청의 백분율입니다.

5xx 오류 발생률

응답의 HTTP 상태 코드가 5xx인 모든 최종 사용자 요청의 백분율입니다.

총 오류 발생률

응답의 HTTP 상태 코드가 4xx 또는 5xx인 모든 최종 사용자 요청의 백분율입니다.

이러한 지표는 CloudFront 콘솔의 모니터링 페이지에서 각 CloudFront 배포에 대해 그래프로 표시됩니다. 각 그래프에서 합계는 1분 간격으로 표시됩니다. 그래프를 보는 것 외에도 지표 보고서를 CSV 파일로 다운로드할 수도 있습니다.

추가 CloudFront 배포 지표 활성화

기본 지표 외에도 추가 비용이 드는 추가 지표를 활성화할 수 있습니다. 비용에 관한 자세한 내용은 추가 CloudFront 지표에 대한 비용 추정 단원을 참조하십시오.

각 배포에 대해 다음 추가 지표를 개별적으로 활성화해야 합니다.

캐시 적중률

CloudFront가 캐시에서 콘텐츠를 제공하는 캐시 가능한 모든 요청의 비율입니다. HTTP POSTPUT 요청, 오류는 캐시 가능한 요청으로 간주되지 않습니다.

오리진 지연 시간

CloudFront에서 요청을 수신한 시점부터 CloudFront 캐시가 아닌 오리진에서 제공되는 요청에 대해 네트워크(최종 사용자 아님)에 대한 응답을 제공하기 시작한 시점까지 소요되는 총 시간입니다. 이것을 첫 번째 바이트 대기 시간 또는 time-to-first-byte라고도 합니다.

상태 코드별 오류 발생률

응답의 HTTP 상태 코드가 4xx 또는 5xx 범위의 특정 코드인 모든 최종 사용자 요청의 백분율입니다. 이 지표는 오류 코드 401, 403, 404, 502, 503, 504에 모두 사용할 수 있습니다.

AWS CloudFormation, AWS Command Line Interface(AWS CLI) 또는 CloudFront API를 사용하여 CloudFront 콘솔에서 추가 지표를 활성화할 수 있습니다.

Console
추가 지표를 활성화하려면
  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v4/home에서 CloudFront 콘솔을 엽니다.

  2. 탐색 창에서 모니터링을 선택합니다.

  3. 추가 지표를 활성화할 배포를 선택한 다음 배포 지표 보기를 선택합니다.

  4. Manage additional metrics(추가 지표 관리)를 선택합니다.

  5. Manage additional metrics(추가 지표 관리) 창에서 Enabled(활성화됨)를 켭니다. 추가 지표를 활성화한 후에는 Manage additional metrics(추가 지표 관리) 창을 닫을 수 있습니다.

    추가 지표를 활성화하면 그래프로 표시됩니다. 각 그래프에서 합계는 1분 간격으로 표시됩니다. 그래프를 보는 것 외에도 지표 보고서를 CSV 파일로 다운로드할 수도 있습니다.

CloudFormation

CloudFormation에서 추가 지표를 활성화하려는 경우 AWS::CloudFront::MonitoringSubscription 리소스 유형을 사용합니다. 다음 예는 추가 지표를 활성화하는 AWS CloudFormation 템플릿 구문을 YAML 형식으로 보여줍니다.

Type: AWS::CloudFront::MonitoringSubscription Properties: DistributionId: EDFDVBD6EXAMPLE MonitoringSubscription: RealtimeMetricsSubscriptionConfig: RealtimeMetricsSubscriptionStatus: Enabled
CLI

AWS Command Line Interface(AWS CLI)를 사용하여 추가 지표를 관리하려면 다음 명령 중 하나를 사용합니다.

배포에 대한 추가 지표를 활성화하려면
  • 다음 예제에서처럼 create-monitoring-subscription 명령을 사용합니다. EDFDVBD6EXAMPLE을 추가 지표를 활성화할 배포의 ID로 바꿉니다.

    aws cloudfront create-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE --monitoring-subscription RealtimeMetricsSubscriptionConfig={RealtimeMetricsSubscriptionStatus=Enabled}
배포에 대해 추가 지표가 활성화되어 있는지 여부를 확인하려면
  • 다음 예제에서처럼 get-monitoring-subscription 명령을 사용합니다. EDFDVBD6EXAMPLE을 확인할 배포의 ID로 바꿉니다.

    aws cloudfront get-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE
배포에 대한 추가 지표를 비활성화하려면
  • 다음 예제에서처럼 delete-monitoring-subscription 명령을 사용합니다. EDFDVBD6EXAMPLE을 추가 지표를 비활성화할 배포의 ID로 바꿉니다.

    aws cloudfront delete-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE
API

CloudFront API를 사용하여 추가 지표를 관리하려면 다음 API 연산 중 하나를 사용합니다.

이러한 API 작업에 대한 자세한 내용은 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

추가 CloudFront 지표에 대한 비용 추정

배포에 대한 추가 지표를 활성화하면 CloudFront는 미국 동부(버지니아 북부) 리전의 CloudWatch에 최대 8개의 지표를 전송합니다. CloudWatch는 각 지표에 대해 낮은 정액제 요금을 부과합니다. 이 요금은 지표당 한 달에 한 번만 청구됩니다(배포당 최대 8개 지표). 이는 정액제 요금이므로 CloudFront 배포가 보내거나 받는 요청 또는 응답 수에 관계없이 비용이 동일하게 유지됩니다. 지표당 청구되는 요금은 Amazon CloudWatch 요금 페이지CloudWatch 요금 계산기를 참조하십시오. CloudWatch API를 사용하여 지표를 검색할 때 추가 API 요금이 적용됩니다.

기본 Lambda @Edge 함수 지표

CloudWatch 지표를 사용하여 Lambda@Edge 함수의 문제를 실시간으로 모니터링할 수 있습니다. 이러한 지표에 대한 추가 요금은 없습니다.

Lambda@Edge 함수를 CloudFront 배포의 캐시 동작에 연결하면 Lambda가 CloudWatch에 지표를 자동으로 전송하기 시작합니다. 지표는 모든 Lambda 리전에서 사용할 수 있지만 CloudWatch 콘솔에서 지표를 보거나 CloudWatch API에서 지표 데이터를 가져오려면 미국 동부(버지니아 북부) 리전(us-east-1)을 사용해야 합니다. 지표 그룹 이름은 AWS/CloudFront/distribution-ID 형식으로 지정됩니다. 여기서 distribution-ID는 Lambda@Edge 함수에 연결된 CloudFront 배포의 ID입니다. CloudWatch 지표에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.

다음 기본 지표는 CloudFront 콘솔의 모니터링 페이지에서 각 Lambda@Edge 함수에 대해 그래프로 표시됩니다.

  • 5xxLambda@Edge의 오류 발생률

  • Lambda 실행 오류

  • 잘못된 Lambda 응답

  • Lambda 제한

그래프에는 호출 수, 오류 수, 제한 수 등이 포함되어 있습니다. 각 그래프에서 합계는 1분 간격으로 표시되며 AWS 리전별로 그룹화됩니다.

조사할 오류가 급증할 경우 함수를 선택한 다음 AWS 리전별로 로그 파일을 확인하여, 어떤 함수가 문제를 야기했는지 및 어느 AWS 리전에서 발생했는지 파악할 수 있습니다. Lambda@Edge 오류 문제 해결에 대한 자세한 내용은 다음 단원을 참조하십시오.

기본 CloudFront Functions 지표

CloudFront 함수는 사용자가 기능을 모니터링할 수 있도록 운영 지표를 Amazon CloudWatch로 전송합니다. 이러한 지표를 보면 문제 해결, 추적 및 디버깅에 도움이 될 수 있습니다. CloudFront 함수는 다음과 같은 지표를 CloudWatch에 게시합니다.

  • 간접 호출 (FunctionInvocations) — 지정된 기간 동안 함수가 시작된(호출된) 횟수입니다.

  • 유효성 검사 오류 (FunctionValidationErrors) — 지정된 기간 동안 함수에서 생성된 유효성 검사 오류의 수입니다. 유효성 검사 오류는 함수가 성공적으로 실행되지만 잘못된 데이터(잘못된 이벤트 객체)를 반환할 때 발생합니다.

  • 실행 오류 (FunctionExecutionErrors) — 지정된 기간 동안 발생한 실행 오류의 수입니다. 함수가 성공적으로 완료되지 않을 때 실행 오류가 발생합니다.

  • 컴퓨팅 활용률 (FunctionComputeUtilization) — 함수가 실행되는 데 걸린 시간의 최대 허용 시간의 백분율입니다. 예를 들어, 값이 35이면 함수가 최대 허용 시간의 35%에서 완료되었음을 의미합니다. 이 측정 단위는 0에서 100 사이의 숫자입니다.

    이 값이 100에 도달하거나 100에 가까워지면 함수가 허용된 실행 시간을 사용했거나 거의 사용한 것이므로 후속 요청의 제한 현상이 발생할 수 있습니다. 함수가 80% 이상의 사용률로 실행되는 경우 함수를 검토하여 실행 시간을 줄이고 사용률을 높이는 것이 좋습니다. 예를 들어 오류만 기록하고, 복잡한 정규식 식을 단순화하거나, 복잡한 JSON 객체의 불필요한 구문 분석을 제거하고 싶을 수 있습니다.

  • 제한(FunctionThrottles) - 지정된 기간 동안 함수가 제한된 횟수입니다. 함수는 다음과 같은 이유로 제한될 수 있습니다.

    • 함수가 실행에 허용된 최대 시간을 지속적으로 초과함

    • 함수에서 컴파일 오류가 발생함

    • 초당 요청 수가 비정상적으로 많음

또한 CloudFront KeyValueStore는 다음과 같은 운영 지표를 Amazon CloudWatch에 전송합니다.

  • 읽기 요청(KvsReadRequests) - 지정된 기간 동안 함수가 키 값 저장소에서 성공적으로 읽은 횟수입니다.

  • 읽기 오류(KvsReadErrors) - 지정된 기간 동안 함수가 키 값 저장소에서 읽지 못한 횟수입니다.

이러한 모든 지표는 미국 동부(버지니아 북부) 리전(us-east-1), CloudFront 네임스페이스의 CloudWatch에 게시됩니다. CloudWatch 콘솔에서 이러한 지표를 볼 수도 있습니다. CloudWatch 콘솔에서 함수별 또는 배포당 함수별 지표를 볼 수 있습니다.

CloudWatch를 사용하여 이러한 지표를 기반으로 경보를 설정할 수도 있습니다. 예를 들어 함수를 실행하는 데 걸린 사용 가능한 시간의 백분율을 나타내는 실행 시간(FunctionComputeUilization) 지표를 기반으로 경보를 설정할 수 있습니다. 실행 시간이 특정 시간 동안 특정 값에 도달할 때. 예를 들어, 15분 연속 사용 가능한 시간의 70% 이상을 선택하면 경보가 트리거됩니다. 경보를 만들 때 경보의 값과 시간 단위를 지정합니다.

참고

CloudFront Functions는 프로덕션 요청 및 응답에 대한 응답으로 실행되는 LIVE 스테이지의 함수에 대해서만 지표를 CloudWatch로 전송합니다. 함수를 테스트할 때 CloudFront는 지표를 CloudWatch로 보내지 않습니다. 테스트 출력에는 오류, 컴퓨팅 사용률 및 함수 로그(console.log() 명령문)에 대한 정보가 포함되지만 이 정보는 CloudWatch로 전송되지 않습니다.

CloudWatch API를 사용하여 이러한 지표를 얻는 방법에 대한 자세한 내용은 Amazon CloudWatch API를 사용하여 지표 가져오기 섹션을 참조하세요.