

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

# Amazon OpenSearch Serverless를 통한 데이터 수명 주기 정책 사용
<a name="serverless-lifecycle"></a>

Amazon OpenSearch Serverless의 데이터 수명 주기 정책은 OpenSearch Serverless가 시계열 컬렉션에 데이터를 보존하는 기간을 정의합니다. 예를 들어 OpenSearch Serverless가 로그 데이터를 삭제하기 전에 30일 동안 로그 데이터를 보존하도록 정책을 설정할 수 있습니다.

 AWS 계정의 시계열 컬렉션 내에 있는 각 인덱스마다 별도의 정책을 구성할 수 있습니다. OpenSearch Serverless는 정책에서 지정한 기간 동안은 최소한 문서를 보존합니다. 그런 다음 일반적으로 48시간 이내 또는 보존 기간의 10% 이내 중 더 긴 기간을 기준으로 최선을 다해 자동으로 문서를 삭제합니다.

시계열 컬렉션만 데이터 수명 주기 정책을 지원합니다. 검색 및 벡터 검색 컬렉션은 그렇지 않습니다.

**Topics**
+ [데이터 수명 주기 정책](#serverless-lifecycle-policies)
+ [필수 권한](#serverless-lifecycle-permissions)
+ [정책 우선순위](#serverless-lifecycle-precedence)
+ [정책 구문](#serverless-lifecycle-syntax)
+ [데이터 수명 주기 정책 생성](#serverless-lifecycle-create)
+ [데이터 수명 주기 정책 업데이트](#serverless-lifecycle-update)
+ [데이터 수명 주기 정책 삭제](#serverless-lifecycle-delete)

## 데이터 수명 주기 정책
<a name="serverless-lifecycle-policies"></a>

데이터 수명 주기 정책에서는 일련의 규칙을 지정합니다. 데이터 수명 주기 정책을 사용하면 이러한 규칙과 일치하는 인덱스 또는 컬렉션과 관련된 데이터의 보존 기간을 관리할 수 있습니다. 이러한 규칙은 인덱스 또는 인덱스 그룹에 있는 데이터의 보존 기간을 정의합니다. 각 규칙은 리소스 유형(`index`), 보존 기간, 보존 기간이 적용되는 리소스 목록(인덱스)으로 구성됩니다.

다음 형식 중 하나를 사용하여 보존 기간을 정의합니다.
+ `"MinIndexRetention": "24h"`— OpenSearch Serverless는 지정된 기간 동안 인덱스 데이터를 시간 또는 일 단위로 보존합니다. 이 기간을 `24h`부터 `3650d`까지 설정할 수 있습니다.
+ `"NoMinIndexRetention": true`— OpenSearch Serverless는 인덱스 데이터를 무기한 보존합니다.

다음 샘플 정책에서 첫 번째 규칙은 컬렉션 `marketing` 내 모든 인덱스의 보존 기간을 15일로 지정합니다. 두 번째 규칙은 `finance` 컬렉션에서 `log`로 시작하는 모든 인덱스 이름에 보존 기간을 설정하지 않고 무기한 보존하도록 지정합니다.

```
{
   "lifeCyclePolicyDetail": {
      "type": "retention",
      "name": "my-policy",
      "policyVersion": "MTY4ODI0NTM2OTk1N18x",
      "policy": {
         "Rules": [
            {
            "ResourceType":"index",
            "Resource":[
               "index/marketing/*"
            ],
            "MinIndexRetention": "15d"
         },
         {
            "ResourceType":"index",
            "Resource":[
               "index/finance/log*"
            ],
            "NoMinIndexRetention": true
         }
         ]
      },
      "createdDate": 1688245369957,
      "lastModifiedDate": 1688245369957
   }
}
```

다음 샘플 정책 규칙에서 OpenSearch Serverless는 계정 내 모든 컬렉션에 대해 모든 인덱스의 데이터를 무기한 보존합니다.

```
{
   "Rules": [
      {
         "ResourceType": "index",
         "Resource": [
            "index/*/*"
         ]
      }
   ],
   "NoMinIndexRetention": true
}
```

## 필수 권한
<a name="serverless-lifecycle-permissions"></a>

OpenSearch Serverless의 수명 주기 정책은 다음 AWS Identity and Access Management (IAM) 권한을 사용합니다. IAM 조건을 지정하여 사용자를 특정 컬렉션 및 인덱스와 연결된 데이터 수명 주기 정책으로 제한할 수 있습니다.
+ `aoss:CreateLifecyclePolicy` - 데이터 수명 주기 정책 생성.
+ `aoss:ListLifecyclePolicies` – 현재 계정의 모든 데이터 수명 주기 정책을 나열합니다.
+ `aoss:BatchGetLifecyclePolicy`— 계정 또는 정책 이름과 관련된 데이터 수명 주기 정책을 확인합니다.
+ `aoss:BatchGetEffectiveLifecyclePolicy`— 주어진 리소스(`index`는 지원되는 유일한 리소스임)에 대한 데이터 수명 주기 정책을 확인합니다.
+ `aoss:UpdateLifecyclePolicy`— 주어진 데이터 수명 주기 정책을 수정하고 해당 보존 설정 또는 리소스를 변경합니다.
+ `aoss:DeleteLifecyclePolicy` - 데이터 수명 주기 정책 삭제.

다음 자격 증명 기반 액세스 정책을 통해 사용자는 모든 데이터 수명 주기 정책을 보고 리소스 패턴 `index/application-logs`로 정책을 업데이트할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aoss:UpdateLifecyclePolicy"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aoss:collection": "application-logs"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "aoss:ListLifecyclePolicies",
                "aoss:BatchGetLifecyclePolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 정책 우선순위
<a name="serverless-lifecycle-precedence"></a>

데이터 수명 주기 정책 규칙이 정책 내에서 또는 정책 간에 중복되는 상황이 있을 수 있습니다. 이 경우 인덱스에 대해 보다 구체적인 리소스 이름이나 패턴을 사용하는 규칙이 두 규칙에 *모두* 공통되는 모든 인덱스에 대해 보다 일반적인 리소스 이름 또는 패턴으로 규칙을 재정의합니다.

예를 들어, 다음 정책에서는 인덱스 `index/sales/logstash`에 두 가지 규칙이 적용됩니다. 이 경우 `index/sales/log*`이 `index/sales/logstash`와 가장 길게 일치하므로 두 번째 규칙이 우선시됩니다. 따라서 OpenSearch Serverless는 인덱스에 보존 기간을 설정하지 않습니다.

```
{
      "Rules":[
         {
            "ResourceType":"index",
            "Resource":[
               "index/sales/*",
            ],
            "MinIndexRetention": "15d"
         },
         {
            "ResourceType":"index",
            "Resource":[
               "index/sales/log*",
            ],
            "NoMinIndexRetention": true
         }
      ]
   }
```

## 정책 구문
<a name="serverless-lifecycle-syntax"></a>

하나 이상의 **규칙을 입력합니다. 이러한 규칙은 OpenSearch Serverless 인덱스의 데이터 수명 주기 설정을 정의합니다.

각 규칙에는 다음 요소가 포함됩니다. 각 규칙에 `MinIndexRetention` 또는 `NoMinIndexRetention`을 제공할 수 있지만 둘 다 제공할 수는 없습니다.


| 요소 | 설명 | 
| --- | --- | 
| 리소스 유형 | 규칙이 적용되는 리소스 유형입니다. 데이터 수명 주기 정책에 지원되는 유일한 옵션은 index입니다. | 
| 리소스 | 리소스 이름 및/또는 패턴 목록. 패턴은 접두사와 와일드카드(\$1)로 구성되며, 연결된 권한을 여러 리소스에 적용할 수 있도록 합니다. 예를 들어 index/<collection-name\$1pattern>/<index-name\$1pattern>입니다. | 
| MinIndexRetention | 문서를 인덱스에 보존하는 최소 기간은 d일 또는 h시간입니다. 하한은 24h이고 상한은 3650d입니다. | 
| NoMinIndexRetention | true인 경우 OpenSearch Serverless는 문서를 무기한 보존합니다. | 

다음 예에서 첫 번째 규칙은 `autoparts-inventory` 패턴(`index/autoparts-inventory/*`) 아래의 모든 인덱스에 적용되며, 삭제 또는 아카이빙과 같은 작업이 발생하기 전에 최소 20일 동안 데이터를 보존해야 합니다.

두 번째 규칙은 `auto*/gear` 패턴(`index/auto*/gear`)과 일치하는 인덱스를 대상으로 하여 최소 보존 기간을 24시간으로 설정합니다.

세 번째 규칙은 `tires` 인덱스에만 적용되며 최소 보존 기간이 없습니다. 즉, 이 인덱스의 데이터를 즉시 삭제하거나 보관하거나 다른 기준에 따라 보관할 수 있습니다. 이러한 규칙은 보존 기간이 다르거나 보존 제한이 없는 인덱스 데이터의 보존을 관리하는 데 도움이 됩니다.

```
{
  "Rules": [
    {
      "ResourceType": "index",
      "Resource": [
        "index/autoparts-inventory/*"
      ],
      "MinIndexRetention": "20d"
    },
    {
      "ResourceType": "index",
      "Resource": [
        "index/auto*/gear"
      ],
      "MinIndexRetention": "24h"
    },
    {
      "ResourceType": "index",
      "Resource": [
        "index/autoparts-inventory/tires"
      ],
      "NoMinIndexRetention": true
    }
  ]
}
```

## 데이터 수명 주기 정책 생성
<a name="serverless-lifecycle-create"></a>

데이터 수명 주기 정책을 생성하려면 지정된 기준에 따라 데이터의 보존 및 삭제를 관리하는 규칙을 정의합니다.

### 콘솔
<a name="serverless-lifecycle-create-console"></a>

**데이터 수명 주기 정책을 생성하려면**

1. [https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home) Amazon OpenSearch Service 콘솔에 로그인합니다.

1. 왼쪽 탐색 창에서 **데이터 수명 주기 정책**을 선택합니다.

1. **데이터 수명 주기 정책 생성**을 선택합니다.

1. 정책 이름으로 알아보기 쉬운 이름을 입력합니다.

1. **데이터 수명 주기**에서 **추가**를 선택하고 정책의 컬렉션과 인덱스를 선택합니다.

   먼저 인덱스가 속한 컬렉션을 선택합니다. 그런 다음 목록에서 인덱스를 선택하거나 인덱스 패턴을 입력합니다. 모든 컬렉션을 소스로 선택하려면 별표(`*`)를 입력합니다.

1. **데이터 보존**에서 데이터를 무기한 보존하도록 선택하거나, **무제한(삭제하지 않음)**을 선택 취소하고 OpenSearch Serverless가 Amazon S3에서 데이터를 자동으로 삭제하는 기간을 지정할 수 있습니다.

1. **저장**을 선택한 다음 **생성**을 선택합니다.

### AWS CLI
<a name="serverless-lifecycle-create-cli"></a>

를 사용하여 데이터 수명 주기 정책을 생성하려면 다음 옵션과 함께 [create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/create-lifecycle-policy.html) 명령을 AWS CLI사용합니다.
+ `--name` - 정책의 이름입니다.
+ `--type` - 정책의 유형입니다. 현재 사용 가능한 유일한 값은 `retention`입니다.
+ `--policy` - 데이터 수명 주기 정책입니다. 이 파라미터는 인라인 정책과 .json 파일을 모두 허용합니다. 인라인 정책은 JSON 이스케이프 문자열로 인코딩해야 합니다. 정책을 파일로 제공하려면 `--policy file://my-policy.json` 형식을 사용합니다.

**Example**  

```
aws opensearchserverless create-lifecycle-policy \
  --name my-policy \
  --type retention \
  --policy "{\"Rules\":[{\"ResourceType\":\"index\",\"Resource\":[\"index/autoparts-inventory/*\"],\"MinIndexRetention\": \"81d\"},{\"ResourceType\":\"index\",\"Resource\":[\"index/sales/orders*\"],\"NoMinIndexRetention\":true}]}"
```

## 데이터 수명 주기 정책 업데이트
<a name="serverless-lifecycle-update"></a>

데이터 보존 또는 삭제 요구 사항의 변경 사항을 반영하도록 기존 규칙을 수정하여 데이터 수명 주기 정책을 업데이트할 수 있습니다. 이를 통해 데이터 관리 요구 사항이 변화함에 따라 정책을 조정할 수 있습니다.

정책을 업데이트하는 시점과 OpenSearch Serverless가 새 보존 기간을 적용하기 시작하는 시점 사이에 몇 분의 지연 시간이 있을 수 있습니다.

### 콘솔
<a name="serverless-lifecycle-update-console"></a>

**데이터 수명 주기 정책을 업데이트하려면**

1. [https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home) Amazon OpenSearch Service 콘솔에 로그인합니다.

1. 왼쪽 탐색 창에서 **데이터 수명 주기 정책**을 선택합니다.

1. 업데이트할 데이터 수명 주기 정책을 선택한 다음 **편집**을 선택합니다.

1. 시각적 편집기 또는 JSON 편집기를 사용하여 정책을 수정합니다.

1. **저장**을 선택합니다.

### AWS CLI
<a name="serverless-lifecycle-update-cli"></a>

를 사용하여 데이터 수명 주기 정책을 업데이트하려면 [update-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/update-lifecycle-policy.html) 명령을 AWS CLI사용합니다.

요청에 `--policy-version` 파라미터를 포함해야 합니다. [list-lifecycle-policies](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/list-lifecycle-policies.html) 또는 [batch-get-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/batch-get-lifecycle-policy.html) 명령을 사용하여 정책 버전을 검색할 수 있습니다. 다른 사용자가 변경한 내용을 실수로 덮어쓰지 않도록 최신 정책 버전을 포함하는 것이 좋습니다.

다음 요청은 새 정책 JSON 문서로 데이터 수명 주기 정책을 업데이트합니다.

**Example**  

```
aws opensearchserverless update-lifecycle-policy \
  --name my-policy \
  --type retention \
  --policy-version MTY2MzY5MTY1MDA3Ml8x \
  --policy file://my-new-policy.json
```

## 데이터 수명 주기 정책 삭제
<a name="serverless-lifecycle-delete"></a>

데이터 수명 주기 정책을 삭제하면, OpenSearch Serverless는 일치하는 인덱스에 해당 정책을 더 이상 적용하지 않습니다.

### 콘솔
<a name="serverless-lifecycle-delete-console"></a>

**데이터 수명 주기 정책을 삭제하려면**

1. [https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home) Amazon OpenSearch Service 콘솔에 로그인합니다.

1. 왼쪽 탐색 창에서 **데이터 수명 주기 정책**을 선택합니다.

1. 삭제하려는 정책을 선택한 다음 **삭제**를 선택하고 삭제를 확인합니다.

### AWS CLI
<a name="serverless-lifecycle-delete-cli"></a>

를 사용하여 데이터 수명 주기 정책을 삭제하려면 [delete-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/delete-lifecycle-policy.html) 명령을 AWS CLI사용합니다.

**Example**  

```
aws opensearchserverless delete-lifecycle-policy \
  --name my-policy \
  --type retention
```