

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

# ステージ 4 – データ移行
<a name="stage-4-data-migration"></a>

ターゲット環境の準備が完了し、計画段階で選択したデータ移行戦略を実装できるようになりました。

このセクションでは、4 つの異なるパターンの実装手順について説明します。
+ [スナップショットからの構築](build-from-snapshot.md)
+ [ソースからの構築](build-from-source.md)
+ [リモート再インデックス](remote-reindexing.md)
+ [Logstash の使用](logstash.md)

# 1. スナップショットからの構築
<a name="build-from-snapshot"></a>

スナップショット復元アプローチを使用する場合は、ソース Elasticsearch または OpenSearch クラスターから Amazon OpenSearch Service ドメインにデータをコピーします。

スナップショット復元プロセスは、大きく分けて以下のステップで構成されています。

1. 既存のクラスターから必要なデータ (インデックス) のスナップショットを作成し、そのスナップショットを S3 バケットにアップロードする。

1. Amazon OpenSearch Service ドメインを作成します。

1. バケットへのアクセス許可を Amazon OpenSearch Service に付与し、スナップショットを使用するためのアクセス許可をユーザーアカウントに付与する。スナップショットリポジトリを作成し、それをバケットにポイントする。

1. Amazon OpenSearch Service ドメインでスナップショットを復元する。

1. クライアントアプリケーションを Amazon OpenSearch Service ドメインにポイントする。

1. 保持設定のため、インデックス状態管理 (ISM) ポリシーを作成する (オプション)。

スナップショットは増分です。そのため、スナップショットは段階的に実行および復元できます。スナップショットを使用すると、データをストレージシステム (Amazon S3 など) 上のファイルとして一括で抽出できます。その後、`_restore` API オペレーションを使用して、これらのファイルをターゲット環境にロードできます。これにより、時間のかかるインデックス再作成が不要になり、ネットワークトラフィックも削減されます。

## スナップショットに関する考慮事項
<a name="snapshot-considerations"></a>

スナップショット復元アプローチを使用する場合は、次の点を考慮してください。
+ インデックスの復元中は、検索やインデックスの再生成はできません。ただし、スナップショットの作成中にインデックスを検索してインデックスを再生成することはできます。
+ ソースバージョンとターゲットバージョンの Elasticsearch または OpenSearch に互換性がある必要があります。作成されたインデックスのスナップショットのバージョン:
  + 5.x は 6.x に復元できます
  + 2.x は 5.x に復元できます
  + 1.x は 2.x に復元できます
+ これは Elasticsearch または OpenSearch スナップショットのポイントインタイム復元であるため、その後にソースクラスターに加えられた変更は、ターゲット Amazon OpenSearch Service ドメインにレプリケートされません。復元が完了するまでソース Elasticsearch または OpenSearch クラスターへのデータの取り込みを停止するか、スナップショット復元プロセスを数回繰り返すことができます。スナップショットは増分であるため、変更のみをコピーしてターゲット環境で復元するので、最初の復元と比べてかかる時間は短くなります。復元が正常に完了したら、取り込みアプリケーションを Amazon OpenSearch Service ドメインにポイントします。
+ スナップショットの作成には、デフォルトでは、クラスターの状態とすべてのインデックスのスナップショットが含まれます。Elasticsearch から移行する場合、OpenSearch の ISM 機能を使用して、ターゲット環境に同等のインデックスライフサイクルポリシーを作成する必要があります。Elasticsearch のインデックスライフサイクル管理 (ILM) は、Amazon OpenSearch Service ではサポートされていません。
+ スナップショットを以前のバージョンの Elasticsearch または OpenSearch に復元することはできません。例えば、バージョン 7.10 のスナップショットを 7.9 に復元することはできません。同様に、Elasticsearch 7.11 以降から Amazon OpenSearch Service ドメインにスナップショットを復元することはできません。セルフマネージド型 Elasticsearch 環境をバージョン 7.11 以降に移行した場合は、Logstash を使用して Elasticsearch クラスターからデータをロードし、OpenSearch ドメインに書き込むことができます。
+ スナップショットは、リポジトリと呼ばれる指定された保存場所にエクスポートします。Elasticsearch または OpenSearch は、リポジトリに多数のファイルを作成します。これらのファイルを変更または削除することはできません。変更または削除を行うと、不整合が発生したり、復元プロセスが失敗したりする可能性があります。

# 2. ソースからの構築
<a name="build-from-source"></a>

前述のように、ソースからの構築は、現在の Elasticsearch 環境または OpenSearch 環境からデータを移行しないアプローチです。代わりに、ログ、製品カタログデータソース、またはコンテンツソースからターゲットドメインに直接インデックスを構築します。

ソースからの構築では、2 つのオプションを使用できます。選択するオプションは、データのデータ型によって異なります。
+ AWS Database Migration Service を使用 – データのソースがリレーショナルデータベース管理システム (RDBMS) であり、ソースが AWS Database Migration Service (AWS DMS) でサポートされている場合は、AWS DMS を使用してデータソースからターゲット Amazon OpenSearch Service ドメインにデータをコピーできます。AWS DMS は、全ロードおよび変更データキャプチャ (CDC) オプションをサポートしています。全ロードオプションでは、AWS DMS のタスクがソースデータベーステーブルのすべてのデータをターゲット OpenSearch インデックスにコピーします。デフォルトのマッピングを使用するか、カスタムマッピング設定を指定できます。CDC オプションでは、AWS DMS はまずソーステーブルレコードの完全なコピーをターゲット OpenSearch インデックスに作成します。次に、変更されたデータ (更新と挿入) をキャプチャし、OpenSearch インデックスにコピーします。詳細については、ブログ記事「[AWS Database Migration Service のターゲットとしての Amazon Elasticsearch Service の導入](https://aws.amazon.com/blogs/database/introducing-amazon-elasticsearch-service-as-a-target-in-aws-database-migration-service/)」および「[AWS Database Migration Service の移行用に Amazon Elasticsearch Service を拡張する](https://aws.amazon.com/blogs/database/scale-amazon-elasticsearch-service-for-aws-database-migration-service-migrations/)」を参照してください。
+ ドキュメントソースから構築 – データソースが RDBMS でないか、AWS DMS でサポートされていない場合は、オープンソースツールを使用する、またはオープンソースツールと AWS サービスの組み合わせを使用してカスタムソリューションを作成する必要があります。OpenSearch にロードする前に、ソースデータを JSON ドキュメントに変換する必要があります。ソースから現在の Elasticsearch または OpenSearch 環境へのパイプラインが既に設定されている場合は、クライアントライブラリに適切な変更を加え、(必要に応じて) Amazon OpenSearch Service ドメインのインデックスのデータモデルを変更することで、それらのデータパイプラインを OpenSearch にポイントできます。ソースからインデックスを構築するときは、次の考慮事項に注意してください。
  + ドキュメントの場所 – ドキュメントが既に AWS クラウド、Amazon S3 などのオブジェクトストレージ、またはファイルシステムなどのオンプレミスストレージに保存されている場合があります。
  + ドキュメントの形式 – ドキュメントが既に JSON 形式である、Amazon OpenSearch Service ドメインに取り込む準備ができている、または Amazon OpenSearch Service ドメインに取り込む前にクリーンアップ、処理、JSON へのフォーマットが必要である場合があります。

ソースからの構築では、大まかに次のようなステップが必要です。

1. Amazon OpenSearch Service ドメインでインデックスマッピングと設定を定義します。

1. ドキュメントソースからデータを抽出し、Amazon S3 などのオブジェクトストレージの場所にコピーします。オープンソースのツール (Logstash など)、AWS サービスクライアント (Amazon Kinesis Agent など)、サードパーティーの市販のツール、カスタムプログラムを使用できます。

1. オープンソースのツール (Logstash や Fluent Bit など) またはネイティブ AWS サービス (AWS Lambda や AWS DMS など) を設定して、データを JSON ドキュメントに変換し、オブジェクトストアから Amazon OpenSearch Service ドメインに定期的または継続的にロードします。

詳細については、「[Amazon OpenSearch Service へのストリーミングデータをロードする](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/integrations.html)」を参照してください。

# 3. リモート再インデックス
<a name="remote-reindexing"></a>

この場合、ソースのセルフマネージド型 Elasticsearch または OpenSearch クラスターのインデックスは、[reindex document API オペレーション](https://docs.opensearch.org/latest/api-reference/document-apis/reindex/)を使用して Amazon OpenSearch Service ドメインに移行されます。reindex document API オペレーションを使用して、既存の Elasticsearch または OpenSearch インデックスからインデックスを作成できます。既存のインデックスは、reindex オペレーションを実行するのと同じクラスター内に配置されている場合も、リモートクラスター内に配置されている場合もあります。Amazon OpenSearch Service は、リモートクラスターでの reindex document API オペレーションの使用をサポートしています。セルフマネージド型 Elasticsearch のインデックスから Amazon OpenSearch Service のインデックスにインデックスを再生成できます。

リモート再インデックスは、リモート Elasticsearch クラスターの Elasticsearch 1.5 以降と、ローカルドメインの Amazon OpenSearch Service 6.7 以降をサポートしています。詳細については、ブログ記事「[Migrate data into Amazon ES using remote reindex](https://aws.amazon.com/blogs/big-data/migrate-data-into-amazon-es-using-remote-reindex/)」を参照してください。ブログ記事では Amazon Elasticsearch を参照していますが、このガイダンスは Amazon OpenSearch Service ドメインにも同じように適用されます。

# 4. Logstash の使用
<a name="logstash"></a>

[Logstash](https://www.elastic.co/guide/en/logstash/current/index.html) は、ソースからデータを収集し、変換またはフィルタリングを実行し、1 つ以上の宛先にデータを送信できるオープンソースのデータ処理ツールです。Amazon OpenSearch Service ドメインにデータを書き込むため、Logstash は次のプラグインを用意しています。
+ logstash-input-elasticsearch
+ logstash-input-opensearch
+ logstash-output-opensearch

詳細については、「[Loading data into Amazon OpenSearch Service with Logstash](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-logstash.html)」および OpenSearch のブログ記事「[「Introducing logstash-input-opensearch plugin for OpenSearch](https://opensearch.org/blog/community/2022/05/introducing-logstash-input-opensearch-plugin-for-opensearch/)」を参照してください。