

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

# Amazon OpenSearch Ingestion を使用したセルフマネージド OpenSearch クラスターからのデータの移行
<a name="configure-client-self-managed-opensearch"></a>

Amazon OpenSearch Ingestion パイプラインをセルフマネージド OpenSearch または Elasticsearch で使用して、Amazon OpenSearch Service ドメインと OpenSearch Serverless コレクションにデータを移行できます。OpenSearch Ingestion は、セルフマネージド OpenSearch と Elasticsearch からのデータの移行のためのパブリックネットワーク設定とプライベートネットワーク設定の両方をサポートしています。

## パブリック OpenSearch クラスターからの移行
<a name="self-managaged-opensearch-public"></a>

OpenSearch Ingestion パイプラインを使用して、セルフマネージド OpenSearch クラスターまたは Elasticsearch クラスターからパブリック設定でデータを移行できます。つまり、ドメイン DNS 名はパブリックに解決できます。これを行うには、ソースとして セルフマネージド OpenSearch または Elasticsearch、宛先として OpenSearch Service または OpenSearch Serverless を使用して OpenSearch Ingestion パイプラインを設定します。これにより、セルフマネージド型ソースクラスターから AWSマネージド型送信先ドメインまたはコレクションにデータが効果的に移行されます。

### 前提条件
<a name="self-managaged-opensearch-public-prereqs"></a>

OpenSearch Ingestion パイプラインを作成する前に、次の手順を実行します。

1. 移行するデータを含むセルフマネージド OpenSearch または Elastisearch クラスターを作成し、パブリック DNS 名を設定します。手順については、OpenSearch ドキュメントの「[Create a cluster](https://opensearch.org/docs/latest/tuning-your-cluster/)」を参照してください。

1. データの移行先となる OpenSearch Service ドメインまたは OpenSearch Serverless コレクションを作成します。詳細については、「[OpenSearch Service ドメインの作成](createupdatedomains.md#createdomains)」および「[コレクションの作成](serverless-create.md)」を参照してください。

1. でセルフマネージドクラスターの認証を設定します AWS Secrets Manager。[AWS Secrets Manager シークレットのローテーション](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)の手順に従って、シークレットのローテーションを有効にします。

1. [リソースベースのポリシー](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-types-resource)をドメインにアタッチするか、[データアクセスポリシー](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html)をコレクションにアタッチします。これらのアクセスポリシーにより、OpenSearch Ingestion は自己管理型クラスターからドメインまたはコレクションにデータを書き込むことができます。

   次のドメインアクセスポリシーの例では、次の手順で作成するパイプラインロールに、ドメインへのデータの書き込みが許可されています。必ず独自の ARN で `resource` を更新してください。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::444455556666:role/pipeline-role"
         },
         "Action": [
           "es:DescribeDomain",
           "es:ESHttp*"
         ],
         "Resource": [
           "arn:aws:es:us-east-1:111122223333:domain/domain-name"
         ]
       }
     ]
   }
   ```

------

   コレクションまたはドメインへの書き込みデータにアクセスするための正しいアクセス許可を持つ IAM ロールを作成するには、「[Amazon OpenSearch Ingestion のロールとユーザーの設定](pipeline-security-overview.md)」を参照してください。

### ステップ 1: パイプラインロールを設定する
<a name="self-managed-opensearch-public-pipeline-role"></a>

OpenSearch パイプラインの前提条件を設定したら、パイプライン設定で使用する[パイプラインロールを設定](pipeline-security-overview.md#pipeline-security-sink)し、OpenSearch Service ドメインまたは OpenSearch Serverless コレクションに書き込むアクセス許可と、Secrets Manager からシークレットを読み取るアクセス許可を追加します。

### ステップ 2: パイプラインを作成する
<a name="self-managed-opensearch-public-pipeline"></a>

そして、ソースに OpenSearch を指定する OpenSearch Ingestion パイプラインを次のように設定できます。

複数の OpenSearch Service ドメインをデータの宛先として指定できます。この機能を使用すると、条件付きルーティングや、受信データを複数の OpenSearch Service ドメインに複製することができます。

ソース OpenSearch または Elasticsearch クラスターから OpenSearch Serverless VPC コレクションにデータを移行することもできます。パイプライン設定内にネットワークアクセスポリシーを指定していることを確認します。

```
version: "2"
opensearch-migration-pipeline:
  source:
    opensearch:
      acknowledgments: true
      host: [ "https://my-self-managed-cluster-name:9200" ]
      indices:
        include:
          - index_name_regex: "include-.*"
        exclude:
          - index_name_regex: '\..*'
      authentication:
        username: ${aws_secrets:secret:username}
        password: ${aws_secrets:secret:password}
        scheduling:
           interval: "PT2H"
           index_read_count: 3
           start_time: "2023-06-02T22:01:30.00Z"
  sink:
  - opensearch:
      hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com"]
      aws:
          region: "us-east-1"
          #Uncomment the following lines if your destination is an OpenSearch Serverless collection
          #serverless: true
          # serverless_options:
          #     network_policy_name: "network-policy-name"
      index: "${getMetadata(\"opensearch-index\")}"
      document_id: "${getMetadata(\"opensearch-document_id\")}"
      enable_request_compression: true
      dlq:
        s3:
          bucket: "bucket-name"
          key_path_prefix: "apache-log-pipeline/logs/dlq"
          region: "us-east-1"
extension:
  aws:
    secrets:
      secret:
        secret_id: "my-opensearch-secret"
        region: "us-east-1"
        refresh_interval: PT1H
```

事前設定されたブループリントを使用して、このパイプラインを作成できます。詳細については、「[ブループリントの使用](pipeline-blueprint.md)」を参照してください。

## VPC 内の OpenSearch クラスターからのデータの移行
<a name="self-managaged-opensearch-private"></a>

OpenSearch Ingestion パイプラインを使用して、VPC で実行されているセルフマネージド OpenSearch または Elasticsearch クラスターからデータを移行することもできます。これを行うには、ソースとして セルフマネージド OpenSearch または Elasticsearch、宛先として OpenSearch Service または OpenSearch Serverless を使用して OpenSearch Ingestion パイプラインを設定します。これにより、セルフマネージド型ソースクラスターから AWSマネージド型送信先ドメインまたはコレクションにデータが効果的に移行されます。

### 前提条件
<a name="self-managaged-opensearch-private-prereqs"></a>

OpenSearch Ingestion パイプラインを作成する前に、次の手順を実行します。

1. 移行するデータを含む VPC ネットワーク設定を使用して、セルフマネージド OpenSearch または Elastisearch クラスターを作成します。

1. データの移行先となる OpenSearch Service ドメインまたは OpenSearch Serverless コレクションを作成します。詳細については、「[Creating OpenSearch Service domains](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains)」および「[Creating collections](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html#serverless-create)」を参照してください。

1. でセルフマネージドクラスターの認証を設定します AWS Secrets Manager。[AWS Secrets Manager シークレットのローテーション](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)の手順に従って、シークレットのローテーションを有効にします。

1. セルフマネージド OpenSearch または Elasticsearch にアクセスできる VPC の ID を取得します。OpenSearch Ingestion で使用する VPC CIDR を選択します。
**注記**  
を使用してパイプライン AWS マネジメントコンソール を作成する場合は、セルフマネージド OpenSearch または Elasticsearch を使用するには、OpenSearch Ingestion パイプラインを VPC にアタッチする必要があります。これを行うには、**[ソースネットワークオプション]** セクションを見つけ、**[VPC にアタッチ]** チェックボックスをオンにして、提供されたデフォルトオプションのいずれかから CIDR を選択します。[RFC 1918 のベストカレントプラクティス](https://datatracker.ietf.org/doc/html/rfc1918)で定義されているように、プライベートアドレス空間から任意の CIDR を使用できます。  
カスタム CIDR を指定するには、ドロップダウンメニューから **[その他]** を選択します。OpenSearch Ingestion とセルフマネージド OpenSearch 間の IP アドレスの衝突を回避するには、セルフマネージド OpenSearch VPC の CIDR が OpenSearch Ingestion の CIDR と異なることを確認してください。

1. [リソースベースのポリシー](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-types-resource)をドメインにアタッチするか、[データアクセスポリシー](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html)をコレクションにアタッチします。これらのアクセスポリシーにより、OpenSearch Ingestion は自己管理型クラスターからドメインまたはコレクションにデータを書き込むことができます。

   次のドメインアクセスポリシーの例では、次の手順で作成するパイプラインロールに、ドメインへのデータの書き込みが許可されています。必ず独自の ARN で `resource` を更新してください。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::444455556666:role/pipeline-role"
         },
         "Action": [
           "es:DescribeDomain",
           "es:ESHttp*"
         ],
         "Resource": [
           "arn:aws:es:us-east-1:111122223333:domain/example.com"
         ]
       }
     ]
   }
   ```

------

   コレクションまたはドメインへの書き込みデータにアクセスするための正しいアクセス許可を持つ IAM ロールを作成するには、「[Amazon OpenSearch Ingestion のロールとユーザーの設定](pipeline-security-overview.md)」を参照してください。

### ステップ 1: パイプラインロールを設定する
<a name="self-managed-opensearch-private-pipeline-role"></a>

パイプラインの前提条件を設定したら、パイプライン設定で使用する[パイプラインロールを設定](pipeline-security-overview.md#pipeline-security-sink)し、そのロールに次の許可を追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SecretsManagerReadAccess",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": ["arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name"]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachNetworkInterface",
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DetachNetworkInterface",
                "ec2:DescribeNetworkInterfaces"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:Describe*"
            ],
            "Resource": "*"
        },
        { 
            "Effect": "Allow",
            "Action": [ 
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": { 
               "StringEquals": 
                    {
                        "aws:RequestTag/OSISManaged": "true"
                    } 
            } 
        }
    ]
}
```

------

OpenSearch Ingestion パイプラインの作成に使用する IAM ロールには、上記の Amazon EC2 アクセス許可を指定する必要があります。これは、パイプラインがこれらのアクセス許可を使用して VPC 内のネットワークインターフェイスを作成および削除するためです。パイプラインは、このネットワークインターフェイスを介してのみ OpenSearch クラスターにアクセスできます。

### ステップ 2: パイプラインを作成する
<a name="self-managed-opensearch-private-pipeline"></a>

そして、ソースに OpenSearch を指定する OpenSearch Ingestion パイプラインを次のように設定できます。

複数の OpenSearch Service ドメインをデータの宛先として指定できます。この機能を使用すると、条件付きルーティングや、受信データを複数の OpenSearch Service ドメインに複製することができます。

ソース OpenSearch または Elasticsearch クラスターから OpenSearch Serverless VPC コレクションにデータを移行することもできます。パイプライン設定内にネットワークアクセスポリシーを指定していることを確認します。

```
version: "2"
opensearch-migration-pipeline:
  source:
    opensearch:
      acknowledgments: true
      host: [ "https://my-self-managed-cluster-name:9200" ]
      indices:
        include:
          - index_name_regex: "include-.*"
        exclude:
          - index_name_regex: '\..*'
      authentication:
        username: ${aws_secrets:secret:username}
        password: ${aws_secrets:secret:password}
        scheduling:
           interval: "PT2H"
           index_read_count: 3
           start_time: "2023-06-02T22:01:30.00Z"
  sink:
  - opensearch:
      hosts: ["https://search-mydomain.us-east-1.es.amazonaws.com"]
      aws:
          region: "us-east-1"
          #Uncomment the following lines if your destination is an OpenSearch Serverless collection
          #serverless: true
          # serverless_options:
          #     network_policy_name: "network-policy-name"
      index: "${getMetadata(\"opensearch-index\")}"
      document_id: "${getMetadata(\"opensearch-document_id\")}"
      enable_request_compression: true
      dlq:
        s3:
          bucket: "bucket-name"
          key_path_prefix: "apache-log-pipeline/logs/dlq"
          region: "us-east-1"
extension:
  aws:
    secrets:
      secret:
        secret_id: "my-opensearch-secret"
        region: "us-east-1"
        refresh_interval: PT1H
```

事前設定されたブループリントを使用して、このパイプラインを作成できます。詳細については、「[ブループリントの使用](pipeline-blueprint.md)」を参照してください。