

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 쿼리 성능을 개선하고 스캔 볼륨을 줄이기 위한 필드 인덱스 생성
<a name="CloudWatchLogs-Field-Indexing"></a>

효율적인 등식 기반 검색을 위해 로그 이벤트에 필드의 *필드 인덱스*를 생성할 수 있습니다. 그런 다음 CloudWatch Logs Insights 쿼리에서 필드 인덱스를 사용하면 쿼리는 인덱싱된 필드를 포함하지 않는 것으로 알려진 로그 이벤트 처리를 건너뛰려고 시도합니다. 이렇게 하면 필드 인덱스를 사용하는 쿼리의 스캔 볼륨이 줄어들어 결과를 더 빠르게 반환할 수 있습니다. 이를 통해 수천 개의 로그 그룹에서 페타바이트 단위의 총 로그를 빠르게 검색하고 관련 로그를 더 빠르게 파악할 수 있습니다. 인덱싱할 좋은 필드는 자주 쿼리해야 하는 필드입니다. 값의 카디널리티가 높은 필드도 필드 인덱스의 좋은 후보입니다. 이러한 필드 인덱스를 사용하는 쿼리는 대상 값과 매칭하는 로그 이벤트를 제한하기 때문에 더 빠르게 완료되기 때문입니다.

예를 들어, `requestId`에 대한 필드 인덱스를 생성했다고 가정해 보겠습니다. 그런 다음 해당 인덱싱된 필드와 쿼리된 값을 포함하는 것으로 알려진 로그 이벤트만 처리하거나 처리`requestId = {{value}}``requestId IN [{{value}}, {{value}}, ...]`하려고 시도하는 해당 로그 그룹에 대한 모든 CloudWatch Logs Insights 쿼리는 CloudWatch Logs가 과거에 해당 필드의 값을 감지했습니다.

필드 인덱스를 활용하여 더 많은 수의 로그 그룹에 대한 효율적인 쿼리를 생성할 수도 있습니다. `filterIndex` 명령 대신 쿼리에서 `filter` 명령을 사용하면 필드 인덱스가 있는 로그 이벤트에서 선택한 로그 그룹에 대해 쿼리가 실행됩니다. 이러한 쿼리는 최대 5개의 로그 그룹 이름 접두사를 지정하여 선택한 최대 10,000개의 로그 그룹을 스캔할 수 있습니다. CloudWatch 크로스 계정 관측성에서 모니터링 계정인 경우 모든 소스 계정을 선택하거나 개별 소스 계정을 지정하여 로그 그룹을 선택할 수 있습니다.

인덱스 필드는 대/소문자를 구분합니다. 예를 들어, `RequestId`의 필드 인덱스는 `requestId`가 포함된 로그 이벤트와 일치하지 않습니다.

필드 인덱스는 JSON 및 서비스 로그의 구조화된 로그 형식에만 지원됩니다.

CloudWatch Logs는 Standard 로그 클래스의 모든 로그 그룹에 대한 기본 필드 인덱스를 제공합니다. 기본 필드 인덱스는 다음 필드에 자동으로 사용할 수 있습니다.
+ `@logStream`
+ `@aws.region`
+ `@aws.account`
+ `@source.log`
+ `@data_source_name`
+ `@data_source_type`
+ `@data_format`
+ `traceId`
+ `severityText`
+ `attributes.session.id`

CloudWatch Logs는 특정 데이터 소스 이름 및 유형 조합에 대한 기본 필드 인덱스도 제공합니다. 기본 필드 인덱스는 다음 데이터 소스 이름 및 유형 조합에 대해 자동으로 사용할 수 있습니다.


| 데이터 소스 이름 및 유형 | 기본 필드 인덱스 | 
| --- | --- | 
| `amazon_vpc.flow` | `action`<br />`logStatus`<br />`region`<br />`flowDirection`<br />`type` | 
| `amazon_route53.resolver_query` | `query_type`<br />`transport`<br />`rcode` | 
| `aws_waf.access` | `action`<br />`httpRequest.country` | 
| `aws_cloudtrail.data`<br />` aws_cloudtrail.management` | `eventSource`<br />`eventName`<br />`awsRegion`<br />`userAgent`<br />`errorCode`<br />`eventType`<br />`managementEvent`<br />`readOnly`<br />`eventCategory`<br />`requestId` | 

기본 필드 인덱스는 정책 내에서 정의하는 사용자 지정 필드 인덱스에 추가됩니다. 기본 필드 인덱스는 [필드 인덱스 할당량](CloudWatchLogs-Field-Indexing-Syntax.md)에 포함되지 않습니다.

CloudWatch Logs는 인덱스 정책이 생성된 후 수집된 로그 이벤트만 인덱싱합니다. 정책이 생성되기 전에 수집된 로그 이벤트는 인덱싱하지 않습니다. 필드 인덱스를 생성한 후 각 매칭 로그 이벤트는 로그 이벤트의 수집 시간으로부터 30일 동안 인덱싱된 상태로 유지됩니다.

**참고**  
모니터링 계정에서 필드 인덱스 정책을 생성하는 경우 연결된 소스 계정의 로그 그룹에는 해당 정책이 사용되지 않습니다. 필드 인덱스 정책은 생성된 계정에만 적용됩니다.

이 섹션의 나머지 주제에서는 필드 인덱스를 생성하는 방법을 설명합니다. 쿼리에서 필드 인덱스 참조에 대한 자세한 내용은 [filterIndex](CWL_QuerySyntax-FilterIndex.md) 및 [필터](CWL_QuerySyntax-Filter.md)을 참조하세요.

**Topics**
+ [필드 인덱스 구문 및 할당량](CloudWatchLogs-Field-Indexing-Syntax.md)
+ [계정 수준 필드 인덱스 정책 생성](CloudWatchLogs-Field-Indexing-CreateAccountLevel.md)
+ [로그 그룹 수준 필드 인덱스 정책 생성](CloudWatchLogs-Field-Indexing-CreateLogGroupLevel.md)
+ [쿼리 생성 시 로그 그룹 선택 옵션](Field-Indexing-Selection.md)
+ [필드 인덱스 정책 삭제의 영향](CloudWatchLogs-Field-Indexing-Deletion.md)