

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 日間の保持期間を指定します。2 番目のルールは、`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` – データライフサイクルポリシーを削除します。

次の ID ベースのアクセスポリシーにより、ユーザーはすべてのデータライフサイクルポリシーを表示し、リソースパターン `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>

ポリシー内またはポリシー間に、複数のデータライフサイクルポリシールールが同時に存在する場合があります。この場合、複数のルールに*共通する*インデックスが存在するのであれば、そのインデックスに対してより具体的なリソース名やパターンを持つルールのほうが、同じインデックスに対してより一般的なリソース名やパターンを持つルールよりも優先されます。

例えば、次のポリシーでは、1 つのインデックス `index/sales/logstash` に 2 つのルールが適用されます。この場合、`index/sales/log*` が `index/sales/logstash` に対する最長の一致なので 2 番目のルールが優先されます。そのため、OpenSearch Serverless はインデックスの保存期間を設定しません。

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

## ポリシー構文
<a name="serverless-lifecycle-syntax"></a>

1 つ以上の*ルール*を指定します。これらのルールは OpenSearch Serverless インデックスのデータライフサイクル設定を定義します。

各ルールには以下の要素が含まれます。`MinIndexRetention` または `NoMinIndexRetention` を指定できますが、両方を指定することはできません。


| Element | 説明 | 
| --- | --- | 
| リソースタイプ | ルールが適用されるリソースのタイプ。データライフサイクルポリシーでサポートされる唯一のオプションは index です。 | 
| [リソース]  | リソース名やパターンのリスト。パターンはプレフィックスとワイルドカード (\$1) で構成されており、関連付けられたアクセス許可を複数のリソースに適用することができます。例えば、index/<collection-name\$1pattern>/<index-name\$1pattern>。 | 
| MinIndexRetention | ドキュメントをインデックスに保持する最小期間: 日 (d) または時間 (h)。下限は 24h で、上限は 3650d です。 | 
| NoMinIndexRetention | true の場合、OpenSearch Serverless はドキュメントを無期限に保持します。 | 

次の例では、最初のルールが `autoparts-inventory` パターン (`index/autoparts-inventory/*`) のすべてのインデックスに適用され、削除やアーカイブなどのアクションが発生する前に、少なくとも 20 日間データを保持することを義務付けます。

2 番目のルールは、`auto*/gear` パターン (`index/auto*/gear`) に一致するインデックスをターゲットとし、最小保持期間を 24 時間に設定します。

3 番目のルールは特に `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>

を使用してデータライフサイクルポリシーを作成するには AWS CLI、以下のオプションを指定して [create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/create-lifecycle-policy.html) コマンドを使用します。
+ `--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>

を使用してデータライフサイクルポリシーを更新するには AWS CLI、[update-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/update-lifecycle-policy.html) コマンドを使用します。

リクエストに `--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>

を使用してデータライフサイクルポリシーを削除するには AWS CLI、[delete-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/opensearchserverless/delete-lifecycle-policy.html) コマンドを使用します。

**Example**  

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