

# Amazon CloudWatch를 사용한 CloudFront 지표 모니터링
<a name="monitoring-using-cloudwatch"></a>

Amazon CloudFront는 Amazon CloudWatch와 통합되어 배포 및 엣지 함수([Lambda@Edge 및 CloudFront Functions 모두](edge-functions.md))에 대한 운영 지표를 자동으로 게시합니다. 이러한 지표를 사용하여 문제를 해결, 추적 및 디버깅할 수 있습니다. 이러한 지표 중 다수는 CloudFront 콘솔에서 일련의 그래프로 표시되며 CloudFront API 또는 CLI를 사용하여 액세스할 수도 있습니다. 이러한 모든 지표는 [CloudWatch 콘솔](https://console.aws.amazon.com/cloudwatch/home)에서 또는 CloudWatch API 또는 CLI를 통해 사용할 수 있습니다. CloudFront 지표는 [CloudWatch 할당량(이전에는 한도라고 함)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)이 적용되지 않아 추가 비용이 발생하지 않습니다.

CloudFront 배포에 대한 기본 지표 외에도 추가 비용이 드는 추가 지표를 활성화할 수 있습니다. 추가 지표는 CloudFront 배포에 적용되며, 각 배포에 대해 개별적으로 활성화해야 합니다. 비용에 관한 자세한 내용은 [추가 CloudFront 지표에 대한 비용 추정](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional-pricing) 단원을 참조하십시오.





CloudFront 콘솔이나 CloudWatch 콘솔, API 또는 CLI에서 이러한 지표에 따라 경보를 설정할 수도 있습니다. 예를 들어, 응답의 HTTP 상태 코드가 `5xxErrorRate`\$1`500`(경계값 포함) 범위에 있는 모든 최종 사용자 요청의 백분율을 나타내는 `599` 지표에 따라 경보를 설정할 수 있습니다. 오류 발생률이 일정 시간 동안 일정 값에 도달하면(예: 연속 5분 동안 요청의 5%), 경보가 트리거됩니다. 경보를 만들 때 경보의 값과 시간 단위를 지정합니다.

**참고**  
CloudFront 콘솔에서 CloudWatch 경보를 생성하면 미국 동부(버지니아 북부) 리전(`us-east-1`)에 경보가 하나 생성됩니다. CloudWatch 콘솔에서 경보를 생성하는 경우 동일한 리전을 사용해야 합니다. CloudFront는 글로벌 서비스이므로 이 서비스에 대한 지표는 미국 동부(버지니아 북부)로 전송됩니다.
경보를 생성하는 데는 [표준 CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/)이 적용됩니다.

**Topics**
+ [CloudFront 및 엣지 함수 지표 보기](viewing-cloudfront-metrics.md)
+ [지표에 대한 경보 생성](receiving-notifications.md)
+ [지표 데이터를 CSV 형식으로 다운로드](cloudwatch-csv.md)
+ [CloudFront의 지표 유형](programming-cloudwatch-metrics.md)

# CloudFront 및 엣지 함수 지표 보기
<a name="viewing-cloudfront-metrics"></a>

CloudFront 콘솔에서 CloudFront 배포 및 [엣지 함수](https://aws.amazon.com/cloudfront/features/#Edge_Computing)에 대한 운영 지표를 볼 수 있습니다.

**CloudFront에서 CloudFront 및 엣지 함수 지표를 보려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

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

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

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

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

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

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

**Topics**
+ [기본 CloudFront 배포 지표](#monitoring-console.distributions)
+ [추가 CloudFront 배포 지표 활성화](#monitoring-console.distributions-additional)
+ [기본 Lambda @Edge 함수 지표](#monitoring-console.lambda-at-edge)
+ [기본 CloudFront Functions 지표](#monitoring-console.cloudfront-functions)

## 기본 CloudFront 배포 지표
<a name="monitoring-console.distributions"></a>

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

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

**다운로드된 바이트**  
`GET` 및 `HEAD` 요청에 대해 뷰어가 다운로드한 총 바이트 수입니다.

**업로드된 바이트**  
뷰어가 `OPTIONS`, `POST` 및 `PUT` 요청을 사용하여 CloudFront에 업로드한 총 바이트 수입니다.

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

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

**총 오류 발생률**  
응답의 HTTP 상태 코드가 `4xx` 또는 `5xx`인 모든 최종 사용자 요청의 백분율입니다.

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

## 추가 CloudFront 배포 지표 활성화
<a name="monitoring-console.distributions-additional"></a>

기본 지표 외에도 추가 비용이 드는 추가 지표를 활성화할 수 있습니다. 비용에 관한 자세한 내용은 [추가 CloudFront 지표에 대한 비용 추정](#monitoring-console.distributions-additional-pricing) 단원을 참조하십시오.

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

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

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

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

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

------
#### [ Console ]

**추가 지표를 활성화하려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

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

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

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

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

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

------
#### [ CloudFormation ]

CloudFormation에서 추가 지표를 활성화하려는 경우 `AWS::CloudFront::MonitoringSubscription` 리소스 유형을 사용합니다. 다음 예는 추가 지표를 활성화하는 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 연산 중 하나를 사용합니다.
+ 배포에 대한 추가 지표를 활성화하려면 [CreateMonitoringSubscription](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateMonitoringSubscription.html)을 사용합니다.
+ 배포에 대해 추가 지표가 활성화되어 있는지 여부를 확인하려면 [GetMonitoringSubscription](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetMonitoringSubscription.html)을 사용합니다.
+ 배포에 대한 추가 지표를 비활성화하려면 [DeleteMonitoringSubscription](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DeleteMonitoringSubscription.html)을 사용합니다.

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

------

### 추가 CloudFront 지표에 대한 비용 추정
<a name="monitoring-console.distributions-additional-pricing"></a>

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

## 기본 Lambda @Edge 함수 지표
<a name="monitoring-console.lambda-at-edge"></a>

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 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.

다음 기본 지표는 CloudFront 콘솔의 **모니터링** 페이지에서 각 Lambda@Edge 함수에 대해 그래프로 표시됩니다.
+ `5xx`Lambda@Edge의 오류 발생률
+ Lambda 실행 오류
+ 잘못된 Lambda 응답
+ Lambda 제한

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

조사할 오류가 급증할 경우 함수를 선택한 다음 AWS 리전별로 로그 파일을 확인하여, 어떤 함수가 문제를 야기했는지 및 어느 AWS 리전에서 발생했는지 파악할 수 있습니다. Lambda@Edge 오류 문제 해결에 대한 자세한 내용은 다음 단원을 참조하십시오.
+ [실패 유형을 결정하는 방법](lambda-edge-testing-debugging.md#lambda-edge-testing-debugging-failure-type)
+ [에서 콘텐츠 전송 디버깅을 위한 4단계AWS](https://aws.amazon.com/blogs/networking-and-content-delivery/four-steps-for-debugging-your-content-delivery-on-aws/)

## 기본 CloudFront Functions 지표
<a name="monitoring-console.cloudfront-functions"></a>

CloudFront 함수는 사용자가 기능을 모니터링할 수 있도록 운영 지표를 Amazon CloudWatch로 전송합니다. 이러한 지표를 보면 문제 해결, 추적 및 디버깅에 도움이 될 수 있습니다. CloudFront 함수는 다음과 같은 지표를 CloudWatch에 게시합니다.
+ **간접 호출** (`FunctionInvocations`) — 지정된 기간 동안 함수가 시작된(호출된) 횟수입니다.
+ **유효성 검사 오류** (`FunctionValidationErrors`) — 지정된 기간 동안 함수에서 생성된 유효성 검사 오류의 수입니다. 유효성 검사 오류는 함수가 성공적으로 실행되지만 잘못된 데이터(잘못된 [이벤트 객체](functions-event-structure.md))를 반환할 때 발생합니다.
+ **실행 오류** (`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를 사용하여 이러한 지표를 기반으로 경보를 설정할 수도 있습니다. 예를 들어 함수를 실행하는 데 걸린 사용 가능한 시간의 백분율을 나타내는 실행 시간(`FunctionComputeUtilization`) 지표를 기반으로 경보를 설정할 수 있습니다. 실행 시간이 특정 시간 동안 특정 값에 도달할 때. 예를 들어, 15분 연속 사용 가능한 시간의 70% 이상을 선택하면 경보가 트리거됩니다. 경보를 만들 때 경보의 값과 시간 단위를 지정합니다.

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

CloudWatch API를 사용하여 이러한 지표를 얻는 방법에 대한 자세한 내용은 [CloudFront의 지표 유형](programming-cloudwatch-metrics.md) 섹션을 참조하세요.

# 지표에 대한 경보 생성
<a name="receiving-notifications"></a>

CloudFront 콘솔에서 특정 CloudFront 지표에 따라 Amazon Simple Notification Service(SNS)에서 사용자에게 알리도록 경보를 설정할 수 있습니다.

**지표에 대한 경보를 생성하려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. 탐색 창에서 **경보(Alarms)**를 선택하세요.

1. **경보 생성**을 선택하세요.

1. **세부 정보**에서 다음을 지정합니다.

   1. **경보 이름** - 경보의 이름입니다.

   1. **배포** - 경보를 생성하는 CloudFront 배포입니다.

1. **조건**에서 다음을 지정합니다.

   1. **지표** - 경보를 생성하는 데 사용할 지표입니다.

   1. **"IF" <condition>** – CloudWatch에서 경보를 트리거하고 Amazon SNS 주제로 알림을 전송하는 시점의 임계값입니다. 예를 들어, `5xx` 오류 발생률이 1%를 넘는 경우 알림을 받으려면 다음과 같이 지정할 수 있습니다.

      **5xx 오류 발생률** **> 1**

   1. **"FOR" 연속 기간** – 경보가 트리거되기 전에 조건이 충족되어야 하는 기간입니다. 값을 선택할 때 일시적 문제에 대해서는 경보가 발생하지 않지만 지속되거나 실제 문제에 대해서는 경보가 발생하도록 값을 적절하게 조정해야 합니다.

   1. (선택 사항) **알림** - 이 지표가 경보를 트리거할 경우 알림을 보낼 Amazon SNS 주제입니다.

1. **경보 생성**을 선택하세요.

**참고**  
조건 값을 입력할 때는 문장 부호 없이 정수를 사용합니다. 예를 들어, 천을 지정하려면 **1000**을 입력합니다.
`4xx`, `5xx` 및 총 오류 발생률은 지정하는 값이 백분율입니다.
요청, 다운로드한 바이트 및 업로드한 바이트는 지정하는 값이 단위입니다. 예를 들면 1073742000 바이트입니다.

Amazon SNS 주제 생성 방법에 대한 자세한 내용은 **Amazon Simple Notification Service 개발자 안내서의 [Amazon SNS 주제 생성](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)을 참조하세요.

# 지표 데이터를 CSV 형식으로 다운로드
<a name="cloudwatch-csv"></a>

CloudFront 배포에 대한 CloudWatch 지표 데이터를 CSV 형식으로 다운로드할 수 있습니다.

**지표 데이터를 CSV 형식으로 다운로드하려면**

1. AWS Management Console에 로그인한 다음 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

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

1. 배포를 선택한 다음 **배포 지표 보기**를 선택합니다.

1. **CSV 다운로드**를 선택한 다음 기간(예: **지난 1일(1시간))**을 선택합니.

1. 파일을 다운로드한 후 파일을 열면 다음 정보를 볼 수 있습니다.

**Topics**
+ [보고서에 대한 정보](#cloudwatch-csv-header)
+ [지표 보고서의 데이터](#cloudwatch-csv-data)

## 보고서에 대한 정보
<a name="cloudwatch-csv-header"></a>

보고서의 처음 몇 줄에는 다음 정보가 포함됩니다.

**버전**  
CloudFront 보고 버전입니다.

**보고서**  
보고서의 이름입니다.

**DistributionID**  
보고서를 실행한 배포의 ID입니다.

**StartDateUTC**  
보고서 실행 기간에 해당하는 날짜 범위의 시작 일시를 협정 세계시(UTC)로 표시합니다.

**EndDateUTC**  
보고서 실행 기간에 해당하는 날짜 범위의 종료 일시를 협정 세계시(UTC)로 표시합니다.

**GeneratedTimeUTC**  
보고서를 실행 날짜 및 시간을 협정 세계시(UTC)로 표시합니다.

**Granularity**  
보고서 각 행의 기간입니다(예: `ONE_MINUTE`).

## 지표 보고서의 데이터
<a name="cloudwatch-csv-data"></a>

이 보고서에는 다음 값이 포함됩니다.

**DistributionID**  
보고서를 실행한 배포의 ID입니다.

**FriendlyName**  
배포의 대체 도메인 이름(CNAME)입니다(있는 경우). 배포에 대체 도메인 이름이 없으면 목록에 배포에 대한 원래 도메인 이름이 포함됩니다.

**TimeBucket**  
데이터가 적용되는 시간 또는 날짜를 협정 세계시(UTC)로 표시합니다.

**요청**  
해당 기간 동안의 전체 HTTP 상태 코드(예: `200`, `404` 등)와 전체 메소드(예: `GET`, `HEAD`, `POST` 등)의 총 요청 수입니다.

**BytesDownloaded**  
해당 기간 동안 지정한 배포에 대해 최종 사용자가 다운로드한 바이트 수입니다.

**BytesUploaded**  
해당 기간 동안 지정한 배포에 대해 최종 사용자가 업로드한 바이트 수입니다.

**TotalErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `4xx` 또는 `5xx` 오류였던 요청의 백분율입니다.

**4xxErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `4xx` 오류였던 요청의 백분율입니다.

**5xxErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `5xx` 오류였던 요청의 백분율입니다.

배포에 대해 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)한 경우에는 보고서에 다음과 같은 추가 값도 포함됩니다.

**401ErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `401` 오류였던 요청의 백분율입니다.

**403ErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `403` 오류였던 요청의 백분율입니다.

**404ErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `404` 오류였던 요청의 백분율입니다.

**502ErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `502` 오류였던 요청의 백분율입니다.

**503ErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `503` 오류였던 요청의 백분율입니다.

**504ErrorRatePct**  
해당 기간 동안 지정한 배포에 대해 HTTP 상태 코드가 `504` 오류였던 요청의 백분율입니다.

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

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

# CloudFront의 지표 유형
<a name="programming-cloudwatch-metrics"></a>

CloudWatch API 또는 AWS Command Line Interface(AWS CLI)를 사용하여, 빌드한 프로그램이나 애플리케이션의 CloudFront 지표를 가져올 수 있습니다. 원시 데이터를 사용하여 사용자 지정 대시보드, 사용자 고유의 경고 도구 등을 만들 수 있습니다.

자세한 내용은 **AWS CLI 명령 참조의 [get-metric-data](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html) 또는 **Amazon CloudWatch API 참조의 [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html) API 작업을참조하세요.

**Topics**
+ [모든 CloudFront 지표에 대한 값](#cloudfront-metrics-global-values)
+ [CloudFront 배포 지표에 대한 값](#cloudfront-metrics-distribution-values)
+ [CloudFront 함수 지표에 대한 값](#cloudfront-metrics-function-values)

**참고**  
CloudWatch API에서 CloudFront 지표를 가져오려면 미국 동부(버지니아 북부) 리전(`us-east-1`)을 사용해야 합니다. 또한 각 지표의 특정 값과 유형을 알아야 합니다.

## 모든 CloudFront 지표에 대한 값
<a name="cloudfront-metrics-global-values"></a>

다음 값은 모든 CloudFront 지표에 적용됩니다.

**`Namespace`**  
`Namespace`의 값은 항상 `AWS/CloudFront`입니다.

**측정 기준**  
각 CloudFront 지표에는 다음의 차원이 있습니다.    
**`DistributionId`**  
지표를 가져오려는 CloudFront 배포의 ID입니다.  
**`FunctionName`**  
(CloudFront 함수에서) 지표를 가져오려는 함수 이름입니다.  
이 차원은 함수에만 적용됩니다.  
**`Region`**  
`Region`의 값은 항상 `Global`입니다. CloudFront는 글로벌 서비스이기 때문입니다.

## CloudFront 배포 지표에 대한 값
<a name="cloudfront-metrics-distribution-values"></a>

다음 목록의 정보를 사용하여 CloudWatch API에서 특정 CloudFront 배포 지표에 대한 세부 정보를 얻을 수 있습니다. 이러한 지표 중 일부는 배포에 대한 추가 지표를 활성화한 경우에만 사용할 수 있습니다.

**참고**  
각 지표에 대해 하나의 통계, `Average` 또는 `Sum`만 적용할 수 있습니다. 다음 목록은 해당 지표에 적용할 수 있는 통계를 지정합니다.

**4xx 오류 발생률**  
응답의 HTTP 상태 코드가 `4xx`인 모든 최종 사용자 요청의 백분율입니다.  
+ 지표 이름: `4xxErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**401 오류 발생률**  
응답의 HTTP 상태 코드가 `401`인 모든 최종 사용자 요청의 백분율입니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `401ErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**403 오류 발생률**  
응답의 HTTP 상태 코드가 `403`인 모든 최종 사용자 요청의 백분율입니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `403ErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**404 오류 발생률**  
응답의 HTTP 상태 코드가 `404`인 모든 최종 사용자 요청의 백분율입니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `404ErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**5xx 오류 발생률**  
응답의 HTTP 상태 코드가 `5xx`인 모든 최종 사용자 요청의 백분율입니다.  
+ 지표 이름: `5xxErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**502 오류 발생률**  
응답의 HTTP 상태 코드가 `502`인 모든 최종 사용자 요청의 백분율입니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `502ErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**503 오류 발생률**  
응답의 HTTP 상태 코드가 `503`인 모든 최종 사용자 요청의 백분율입니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `503ErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**504 오류 발생률**  
응답의 HTTP 상태 코드가 `504`인 모든 최종 사용자 요청의 백분율입니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `504ErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**다운로드된 바이트**  
`GET` 및 `HEAD` 요청에 대해 뷰어가 다운로드한 총 바이트 수입니다.  
+ 지표 이름: `BytesDownloaded`
+ 유효한 통계: `Sum`
+ 단위: `None`

**업로드된 바이트**  
뷰어가 `OPTIONS`, `POST` 및 `PUT` 요청을 사용하여 CloudFront에 업로드한 총 바이트 수입니다.  
+ 지표 이름: `BytesUploaded`
+ 유효한 통계: `Sum`
+ 단위: `None`

**캐시 적중률**  
CloudFront가 캐시에서 콘텐츠를 제공하는 캐시 가능한 모든 요청의 비율입니다. HTTP `POST` 및 `PUT` 요청, 오류는 캐시 가능한 요청으로 간주되지 않습니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `CacheHitRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**오리진 지연 시간**  
CloudFront에서 요청을 수신한 시점부터 CloudFront 캐시가 아닌 오리진에서 제공되는 요청에 대해 네트워크(최종 사용자 아님)에 대한 응답을 제공하기 시작하는 시점까지 소요되는 총 시간(밀리초)입니다. 이것을 *첫 번째 바이트 대기 시간* 또는 *time-to-first-byte*라고도 합니다. 이 지표를 가져오려면 먼저 [추가 지표를 활성화](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)해야 합니다.  
+ 지표 이름: `OriginLatency`
+ 유효한 통계: `Percentile`
+ 단위: `Milliseconds`
CloudWatch API에서 `Percentile` 통계를 확인하려면 `ExtendedStatistics`가 아닌 `Statistics` 파라미터를 사용합니다. 자세한 내용은 *Amazon CloudWatch API 참조*의 [GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html) 또는 [AWS SDK](https://docs.aws.amazon.com/#sdks) 관련 참조 설명서를 참조하세요.

**요청**  
모든 HTTP 메서드와 HTTP 및 HTTPS 요청에 대해 CloudFront에서 수신한 최종 사용자 요청의 총 수입니다.  
+ 지표 이름: `Requests`
+ 유효한 통계: `Sum`
+ 단위: `None`

**총 오류 발생률**  
응답의 HTTP 상태 코드가 `4xx` 또는 `5xx`인 모든 최종 사용자 요청의 백분율입니다.  
+ 지표 이름: `TotalErrorRate`
+ 유효한 통계: `Average`
+ 단위: `Percent`

## CloudFront 함수 지표에 대한 값
<a name="cloudfront-metrics-function-values"></a>

다음 목록의 정보를 사용하여 CloudWatch API에서 특정 CloudFront 함수 지표에 대한 세부 정보를 얻을 수 있습니다.

**참고**  
각 지표에 대해 하나의 통계, `Average` 또는 `Sum`만 적용할 수 있습니다. 다음 목록은 해당 지표에 적용할 수 있는 통계를 지정합니다.

**호출**  
지정된 기간 동안 함수가 시작된(호출된) 횟수입니다.  
+ 지표 이름: `FunctionInvocations`
+ 유효한 통계: `Sum`
+ 단위: `None`

**유효성 검사 오류**  
지정된 기간 동안 함수에서 생성된 유효성 검사 오류의 수입니다. 유효성 검사 오류는 함수가 성공적으로 실행되지만 잘못된 데이터(잘못된 이벤트 객체)를 반환할 때 발생합니다.  
+ 지표 이름: `FunctionValidationErrors`
+ 유효한 통계: `Sum`
+ 단위: `None`

**실행 오류**  
지정된 기간 동안 발생한 실행 오류의 수입니다. 함수가 성공적으로 완료되지 않을 때 실행 오류가 발생합니다.  
+ 지표 이름: `FunctionExecutionErrors`
+ 유효한 통계: `Sum`
+ 단위: `None`

**컴퓨팅 사용률**  
함수가 실행되는 데 걸린 시간(0\$1100)의 최대 허용 시간의 백분율입니다. 예를 들어, 값이 35이면 함수가 최대 허용 시간의 35%에서 완료되었음을 의미합니다.  
+ 지표 이름: `FunctionComputeUtilization`
+ 유효한 통계: `Average`
+ 단위: `Percent`

**제한**  
지정된 기간 동안 함수가 제한된 횟수입니다.  
+ 지표 이름: `FunctionThrottles`
+ 유효한 통계: `Sum`
+ 단위: `None`