Amazon OpenSearch Ingestion を使用してドメインとコレクション間でデータを移行する - Amazon OpenSearch サービス

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

Amazon OpenSearch Ingestion を使用してドメインとコレクション間でデータを移行する

OpenSearch Ingestion パイプラインを使用して、Amazon OpenSearch Service OpenSearch ドメインまたはサーバーレス VPC コレクション間でデータを移行できます。そのためには、1 つのドメインまたはコレクションをソースとして設定し、別のドメインまたはコレクションをシンクとして設定するパイプラインを設定します。これにより、あるドメインまたはコレクションから別のドメインまたはコレクションにデータが効果的に移行されます。

データを移行するには、以下のリソースが必要です。

  • OpenSearch OpenSearch ソースサービスドメインまたはサーバーレス VPC コレクション。このドメインまたはコレクションには、移行するデータが含まれています。ドメインを使用している場合は、 OpenSearch バージョン 1.0 以降、または Elasticsearch バージョン 7.4 以降を実行している必要があります。ドメインには、パイプラインロールに適切な権限を付与するアクセスポリシーも必要です。

  • データの移行先となる別のドメインまたは VPC コレクション。このドメインまたはコレクションはパイプラインシンクとして機能します

  • OpenSearch Ingestion がコレクションまたはドメインの読み取りと書き込みに使用するパイプラインロール。このロールの Amazon リソースネーム (ARN) をパイプライン設定に含めます。詳細については、以下のリソースを参照してください。

制限事項

OpenSearch OpenSearch サービスドメインまたはサーバーレスコレクションをシンクとして指定する場合、以下の制限が適用されます。

  • パイプラインは複数の VPC ドメインに書き込むことはできません。

  • VPC OpenSearch アクセスを使用するサーバーレスコレクションとの間でのみデータを移行できます。パブリックコレクションはサポートされていません。

  • 1 つのパイプライン設定で VPC とパブリックドメインの組み合わせを指定することはできません。

  • 1 つのパイプライン設定には、パイプライン以外のシンクを最大 20 個設定できます。

  • 1 AWS リージョン つのパイプライン設定で最大 3 つの異なるシンクを指定できます。

  • 複数のシンクがあるパイプラインでは、いずれかのシンクが長時間ダウンしていたり、受信データを受信するのに十分な容量がプロビジョニングされていなかったりすると、時間の経過とともに処理速度が低下する可能性があります。

OpenSearch ソースとしてのサービス

ソースとして指定したドメインまたはコレクションは、データの移行元です

IAM でパイプラインロールを作成する

OpenSearch Ingestion パイプラインを作成するには、まずパイプラインロールを作成して、ドメインまたはコレクション間の読み取り/書き込みアクセスを許可する必要があります。これを作成するには、次のステップを実行します。

  1. IAM で新しいアクセス権限ポリシーを作成し、パイプラインロールにアタッチします。ソースからの読み取りとシンクへの書き込みの権限を必ず許可してください。 OpenSearch サービスドメインの IAM パイプライン権限の設定について詳しくは、「」Amazon Ingestion OpenSearch パイプラインにドメインへのアクセスを許可するAmazon Ingestion OpenSearch パイプラインにコレクションへのアクセス権を付与する「」を参照してください。

  2. ソースから読み取りを行うには、パイプラインロール内で以下の権限を指定します。

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"es:ESHttpGet", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_cat/indices", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search" ] }, { "Effect":"Allow", "Action":"es:ESHttpPost", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/point_in_time", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/*/_search/scroll" ] }, { "Effect":"Allow", "Action":"es:ESHttpDelete", "Resource":[ "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/point_in_time", "arn:aws:es:us-east-1:{account-id}:domain/{domain-name}/_search/scroll" ] } ] }

パイプラインの作成

ポリシーをパイプラインロールにアタッチしたら、AWSOpenSearchDataMigrationPipeline移行ブループリントを使用してパイプラインを作成します。このブループリントには、 OpenSearch サービスドメインまたはコレクション間でデータを移行するためのデフォルト設定が含まれています。詳細については、「ブループリントを使用したパイプラインの作成」を参照してください。

注記

OpenSearch 取り込みでは、ソースドメインのバージョンとディストリビューションを使用して、移行に使用するメカニズムを決定します。point_in_time一部のバージョンではこのオプションがサポートされています。 OpenSearch point_in_timescrollサーバーレスはまたはをサポートしていないため、search_afterこのオプションを使用します。

移行プロセス中に新しいインデックスが作成中である場合や、移行中にドキュメントの更新が進行中である場合があります。そのため、新しいデータや更新されたデータを取得するために、ドメインインデックスデータを 1 回だけでなく複数回スキャンする必要がある場合があります。

パイプライン設定で index_read_countinterval を設定して、スキャンを実行する回数を指定します。次の例では、複数回のスキャンを実行する方法を示しています。

scheduling: interval: "PT2H" index_read_count: 3 start_time: "2023-06-02T22:01:30.00Z"

OpenSearch Ingestion では以下の設定を使用して、データが同じインデックスに書き込まれ、同じドキュメント ID が維持されるようにします。

index: "${getMetadata(\"opensearch-index\")}" document_id: "${getMetadata(\"opensearch-document_id\")}"

OpenSearch 複数のサービスドメインシンクを指定する

データの送信先として、 OpenSearch 複数のパブリックサービスドメインを指定できます。この機能を使用して、条件付きルーティングを実行したり、 OpenSearch 受信データを複数のサービスドメインに複製したりできます。最大 10 OpenSearch 個の異なるパブリックサービスドメインをシンクとして指定できます。

以下の例では、 OpenSearch 受信データは条件付きで異なるサービスドメインにルーティングされます。

... route: - 2xx_status: "/response >= 200 and /response < 300" - 5xx_status: "/response >= 500 and /response < 600" sink: - opensearch: hosts: [ "https://search-response-2xx.us-east-1.es.amazonaws.com" ] aws: sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" region: "us-east-1" index: "response-2xx" routes: - 2xx_status - opensearch: hosts: [ "https://search-response-5xx.us-east-1.es.amazonaws.com" ] aws: sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" region: "us-east-1" index: "response-5xx" routes: - 5xx_status

OpenSearch サーバーレス VPC コレクションへのデータの移行

OpenSearch Ingestion を使用して、 OpenSearch OpenSearch ソースのサービスドメインまたはサーバーレスコレクションから VPC コレクションシンクにデータを移行できます。パイプライン設定内にネットワークアクセスポリシーを指定する必要があります。 OpenSearch サーバーレス VPC コレクションへのデータ取り込みの詳細については、を参照してください。チュートリアル: Amazon OpenSearch Ingestion を使用したコレクションへのデータの取り込み

データを VPC コレクションに移行するには
  1. OpenSearch サーバーレスコレクションを作成します。手順については、「チュートリアル: Amazon OpenSearch Ingestion を使用したコレクションへのデータの取り込み」を参照してください。

  2. コレクションエンドポイントと Dashboard エンドポイントの両方に対する VPC アクセスを指定するコレクションのネットワークポリシーを作成します。手順については、「Amazon OpenSearch Serverless のネットワークアクセス」を参照してください。

  3. パイプラインロールをまだ持っていない場合は作成します。手順については、「パイプラインロール」を参照してください。

  4. パイプラインを作成します。手順については、「ブループリントを使用したパイプラインの作成」を参照してください。