

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

# Amazon OpenSearch Service의 데이터 인덱싱
<a name="indexing"></a>

Amazon OpenSearch Service에서는 REST API를 사용하기 때문에 문서를 인덱싱하는 방법이 무수히 많습니다. [curl](https://curl.haxx.se/) 같은 표준 클라이언트를 사용해도 되고, HTTP 요청을 보낼 수 있는 프로그래밍 언어를 사용해도 됩니다. OpenSearch Service는 상호 작용 과정을 한층 더 간소화하기 위해 각종 프로그래밍 언어용 클라이언트도 갖추고 있습니다. 고급 사용자는 바로 [Amazon OpenSearch Service로 스트리밍 데이터 로드](integrations.md) 단원으로 건너뛸 수 있습니다.

Amazon OpenSearch Ingestion을 사용하여 데이터를 수집하는 것이 좋으며, 이는 OpenSearch Service 내에 구축된 완전 관리형 데이터 수집기입니다. 자세한 내용은 [Amazon OpenSearch Ingestion](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ingestion.html)을 참조하세요.

인덱싱에 대한 소개는 [OpenSearch 설명서](https://docs.opensearch.org/latest/opensearch/index-data/)를 참조하세요.

## 인덱스에 대한 이름 지정 제약 조건
<a name="indexing-naming"></a>

OpenSearch Service 인덱스에는 다음과 같은 이름 지정 제약 조건이 있습니다.
+ 모든 문자는 소문자여야 합니다.
+ 인덱스 이름은 `_` 또는 `-`로 시작할 수 없습니다.
+ 인덱스 이름에는 공백, 쉼표, `:`, `"`, `*`, `+`, `/`, `\`, `|`, `?`, `#`, `>` 또는 `<`가 포함될 수 없습니다.

인덱스, 유형 또는 문서 ID 이름에는 민감한 정보를 포함하지 않습니다. OpenSearch Service는 URI(Uniform Resource Identifier)에 이러한 이름을 사용합니다. 서버 및 애플리케이션에서 흔히 HTTP 요청을 로깅하는데, 그럴 경우 URI에 민감한 정보가 포함된다면 불필요한 데이터 노출이 발생할 수 있습니다.

```
2018-10-03T23:39:43 198.51.100.14 200 "GET https://{{opensearch-domain}}/dr-jane-doe/flu-patients-2018/202-555-0100/ HTTP/1.1"
```

연결된 JSON 문서를 볼 수 있는 [권한](ac.md)이 없는 경우에도 이 가짜 로그 줄을 통해, Doe 박사의 환자 중 전화번호가 202-555-0100인 환자가 2018년에 독감에 걸린 적이 있음을 유추할 수 있습니다.

OpenSearch Service가 인덱스 이름에서 실제 또는 특정 IP 주소를 감지하는 경우(예: `my-index-12.34.56.78.91`) IP 주소를 마스킹합니다. `_cat/indices` 호출 시 다음 응답을 산출합니다.

```
green open my-index-x.x.x.x.91    soY19tBERoKo71WcEScidw 5 1 0 0   2kb  1kb
```

불필요한 혼동을 방지하기 위해, 인덱스 이름에 IP 주소를 포함하지 마십시오.

## 응답 크기 감소
<a name="indexing-size"></a>

`_index` 및 `_bulk` API의 응답에는 많은 정보가 포함되어 있습니다. 이 정보는 요청을 해결하거나 재시도 로직을 구현하는 데 유용할 수 있지만 상당한 대역폭을 사용할 수 있습니다. 이 예제에서 32바이트 문서를 인덱싱하면 339바이트의 응답이 발생합니다(헤더 포함).

```
PUT {{opensearch-domain}}/more-movies/_doc/1
{"title": "Back to the Future"}
```

**응답**

```
{
  "_index": "more-movies",
  "_type": "_doc",
  "_id": "1",
  "_version": 4,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 2,
    "failed": 0
  },
  "_seq_no": 3,
  "_primary_term": 1
}
```

이 응답 크기는 최소한으로 보일 수 있지만 하루에 1,000,000개의 문서(초당 약 11.5개 문서)를 인덱싱하는 경우 응답당 339바이트는 매월 10.17GB의 다운로드 트래픽으로 작동합니다.

데이터 전송 비용에 대한 우려가 있는 경우 `filter_path` 파라미터를 사용하여 OpenSearch Service 응답의 크기를 줄입니다. 하지만 실패한 요청을 식별하거나 재시도하는 데 필요한 필드를 필터링하지 않도록 주의합니다. 이러한 필드는 클라이언트에 따라 다릅니다. `filter_path` 파라미터는 모든 OpenSearch Service REST API에 대해 작동하지만 `_index` 및 `_bulk` API와 같이 자주 호출하는 API에 특히 유용합니다.

```
PUT {{opensearch-domain}}/more-movies/_doc/1?filter_path=result,_shards.total
{"title": "Back to the Future"}
```

**응답**

```
{
  "result": "updated",
  "_shards": {
    "total": 2
  }
}
```

필드를 포함하는 대신 `-` 접두사가 있는 필드를 제외할 수 있습니다. `filter_path`는 와일드카드도 지원합니다.

```
POST {{opensearch-domain}}/_bulk?filter_path=-took,-items.index._*
{ "index": { "_index": "more-movies", "_id": "1" } }
{"title": "Back to the Future"}
{ "index": { "_index": "more-movies", "_id": "2" } }
{"title": "Spirited Away"}
```

**응답**

```
{
  "errors": false,
  "items": [
    {
      "index": {
        "result": "updated",
        "status": 200
      }
    },
    {
      "index": {
        "result": "updated",
        "status": 200
      }
    }
  ]
}
```

## 인덱스 코덱
<a name="indexing-codecs"></a>

인덱스 코덱은 인덱스에 저장된 필드를 압축하여 디스크에 저장하는 방법을 결정합니다. 인덱스 코덱은 압축 알고리즘을 지정하는 정적 `index.codec` 설정에 의해 제어됩니다. 이 설정은 인덱스 샤드 크기 및 작업 성능에 영향을 줍니다.

지원되는 코덱 목록과 성능 특성은 OpenSearch 설명서의 [지원되는 코덱](https://opensearch.org/docs/latest/im-plugin/index-codecs/#supported-codecs)을 참조하세요.

인덱스 코덱을 선택할 때는 다음 사항을 고려하세요.
+ 기존 색인의 코덱 설정을 변경하는 문제를 피하려면 새 코덱 설정을 사용하기 전에 비프로덕션 환경에서 대표적인 워크로드를 테스트하세요. 자세한 내용은 [인덱스 코덱 변경](https://opensearch.org/docs/latest/im-plugin/index-codecs/#changing-an-index-codec)을 참조하세요.
+ [k-NN](https://opensearch.org/docs/latest/search-plugins/knn/index/) 또는 [보안 분석](https://opensearch.org/docs/latest/security-analytics/index/) 인덱스에 대해 [Zstandard 압축 코덱](https://opensearch.org/docs/latest/im-plugin/index-codecs/)(`"index.codec": "zstd"` 또는 `"index.codec": "zstd_no_dict"`)을 사용할 수 없습니다.