OpenSearch および Elasticsearch をアップグレードする - Amazon OpenSearch Service (Amazon Elasticsearch Service の後継サービス)

OpenSearch および Elasticsearch をアップグレードする

注記

OpenSearch および Elasticsearch バージョンのアップグレードは、サービスソフトウェア更新とは異なります。OpenSearch Service ドメインのサービスソフトウェアの更新については、「Amazon OpenSearch Service でのサービスソフトウェア更新」を参照してください。

Amazon Opensearch Service では、Opensearch 1.0 以降または Elasticsearch 5.1 以降を実行するドメインに対して、インプレースアップグレードを提供しています。Amazon Kinesis Data Firehose や Amazon CloudWatch Logs などのサービスを使用して OpenSearch Service にデータをストリーミングする場合は、移行前にこれらのサービスが OpenSearch の新しいバージョンをサポートしていることを確認します。

現在、OpenSearch Service は次のアップグレードパスをサポートしています。

元のバージョン 目的のバージョン
Elasticsearch 7.x

Elasticsearch 7.x または OpenSearch 1.x

重要

OpenSearch 1.x では多数の画期的な変更が行われています。詳細については、「」を参照してくださいAmazon OpenSearch Service - 変更の概要

Elasticsearch 7.10 では、動的テンプレートに関して画期的な変更が加えられています。詳細については、「インデックス作成中にマッパーが例外を解析する」を参照してください。

Elasticsearch 6.8

Elasticsearch 7.x または OpenSearch 1.x

重要

Elasticsearch 7.0 と OpenSearch 1.0 には、数多くの大きな変更が含まれています。インプレースアップグレードを開始する前に、6.x ドメインのスナップショットを手動で取得し、それをテスト用の 7.x または OpenSearch 1.x ドメインで復元して、そのテストドメインを使用してアップグレードの潜在的な問題を特定することをお勧めします。OpenSearch 1.0 での変更については、「Amazon OpenSearch Service - 変更の概要」を参照してください。

Elasticsearch 6.x のように、インデックスには、1 つのマッピングタイプのみを含めることができますが、そのタイプの名前が _doc である必要があります。その結果、特定の API では、リクエスト本文にマッピングタイプ (_bulk API など) が不要になりました。

新しいインデックスでは、セルフホスト型の Elasticsearch 7x および Opensearch 1.x のデフォルトシャード数は 1 です。Elasticsearch 7.x以降での OpenSearch Service ドメインでは、以前のデフォルトの 5 のままです。

Elasticsearch 6.x

Elasticsearch 6.x

Elasticsearch 5.6

Elasticsearch 6.x

重要

バージョン 6.x で作成されたインデックスでは、複数のマッピングタイプがサポートされなくなりました。バージョン 5.x で作成されたインデックスは、6.x クラスターへの復元時に複数のマッピングタイプをサポートします。クライアントコードによって作成されるマッピングタイプがインデックスごとに 1 種類のみであることを確認します。

Elasticsearch 5.6 から 6.x へのアップグレード中のダウンタイムを最小限に抑えるため、OpenSearch Service は .kibana インデックスを .kibana-6 に再生成し、.kibana を削除して .kibana という名前でエイリアスを作成します。それから、新しいインデックスを新しいエイリアスにマッピングします。

Elasticsearch 5.x Elasticsearch 5.6

アップグレードプロセスには、3 つの手順が含まれます。

  1. アップグレード前の確認 – OpenSearch Service は、アップグレードをブロックする可能性のある問題に対して一連の確認を実行し、これらの確認が成功しない限り、次のステップに進みません。

  2. スナップショット – OpenSearch Service は、OpenSearch または Elasticsearch クラスターのスナップショットを取得し、スナップショットが成功しない限り次のステップに進みません。アップグレードが失敗した場合、OpenSearch Service はこのスナップショットを使用してクラスターを元の状態に復元します。このスナップショットの詳細については、「アップグレード後にダウングレードできない」を参照してください。

  3. アップグレード – OpenSearch Service がアップグレードを開始すると、完了まで 15 分から数時間かかります。OpenSearch Dashboards は、アップグレードの一部または全期間で使用できなくなる場合があります。

アップグレードのトラブルシューティング

インプレース アップグレードには、正常なドメインが必要です。ドメインがアップグレードの対象とならなかったり、さまざまな理由でアップグレードに失敗する場合があります。次の表は、最も一般的な問題を示しています。

問題 説明
ノードあたりのシャードが多すぎます OpenSearchだけでなく、7.x バージョンの Elasticsearch のデフォルト設定も、ノードあたり 1,000 シャード以下です。現在のクラスター内のノードがこの設定を超えている場合、OpenSearch Service はアップグレードを許可しません。トラブルシューティングのオプションについては、「シャードの最大制限を超えました」を参照してください。
処理中のドメイン ドメインは、設定変更中です。オペレーション完了後、アップグレードの適格性を確認します。
赤のクラスター状態 クラスター内の 1 つ以上のインデックスは赤です。トラブルシューティングステップについては、「赤のクラスター状態」を参照してください。
高いエラー率 クラスターはリクエストの処理を試みましたが、大量の 5xx エラーを返しています。この問題は通常、同時読み取りまたは書き込みリクエストが多すぎることで起こります。クラスターへのトラフィックを減らすか、ドメインのスケーリングを検討してください。
スプリットブレイン スプリットブレインとは、 クラスターに 1 つ以上のマスターノードがあり、決して独自に再結合することのない 2 つのクラスターに分割されているという意味です。専用マスターノードの推奨値を使用することで、スプリットブレインを回避できます。スプレッドブレインからの復旧方法については、AWS Support にお問い合わせください。
マスターノードが見つからない OpenSearch Service は、クラスターのマスターノードを見つけることができません。ドメインでマルチ AZ を使用している場合、アベイラビリティーゾーンの障害によってクラスターがクォーラムを失い、新しいマスターノードを選択できなくなる可能性があります。問題が自動的に解決されない場合、AWS Support にお問い合わせください。
保留中のタスクが多すぎる マスターノードに高い負荷がかかっており、たくさんの保留中のタスクがあります。クラスターへのトラフィックを減らすか、ドメインのスケーリングを検討してください。
障害が発生したストレージボリューム 1 つ以上のノードのディスクボリュームが正常に機能していません。この問題は、高いエラー率や保留中のタスクが多すぎるなど、他の問題とともに頻繁に発生します。問題が単独で発生し、自動的に解決されない場合は、AWS Support にお問い合わせください。
KMS キーの問題 ドメインの暗号化に使用する KMS キーがアクセス不可能であるか、または存在しません。詳細については、「保管中のデータを暗号化するドメインのモニタリング」を参照してください。
スナップショットを作成中 ドメインは現在、スナップショットを作成しています。スナップショットの完了後に、アップグレードの適格性を確認します。手動スナップショットのリポジトリが一覧表示できること、それらのリポジトリ内のスナップショットが一覧表示できること、および手動スナップショットが作成できることも確認してください。OpenSearch Service が、スナップショットが作成中かどうか確認できない場合、アップグレードは失敗します。
スナップショットのタイムアウトまたは障害 アップグレード前のスナップショットの完了まで時間がかかりすぎたか、失敗しました。クラスター状態を確認して、再度お試しください。問題が解決しない場合は、AWS Support までお問い合わせください。
互換性のないインデックス 1 つ以上のインデックスにターゲット バージョンとの互換性がありません。OpenSearch または Elasticsearch の古いバージョン (2.3 など) からインデックスを移行した場合にこの問題が発生することがあります。インデックスを再作成して、再度お試しください。
高いディスク使用率 クラスターのディスク使用率が 90% を超えています。データを削除またはドメインをスケーリングして、再度お試しください。
高い JVM 使用率 JVM メモリプレッシャーが 75% を超えています。クラスターへのトラフィックを削減するか、ドメインをスケーリングして、再度お試しください。
Opensearch Dashboards エイリアスの問題 .kibana はエイリアスとして既に設定されており、互換性のないインデックスにマッピングされています。おそらく、以前のバージョンの OpenSearch Dashboards からのインデックスです。インデックスを再作成して、再度お試しください。
赤の Dashboards ステータス Opensearch Dashboards のステータスが赤くなっています。アップグレードが完了したら、Dashboards を使用してみてください。赤いステータスが続く場合は、手動で解決してから再度お試しください。
クラスター間の互換性 アップグレードできるのは、アップグレード後にソースドメインとターゲトドメインの間でクラスター間の互換性が維持されている場合のみです。アップグレードプロセス中に、互換性のない接続があれば特定されます。アップグレードを続行するには、互換性のない接続を削除します。
OpenSearch Service のサービスに関するその他の問題 OpenSearch Service 自体の問題により、ドメインがアップグレード対象外として表示される可能性があります。前述の条件がドメインに当てはまらず、問題が 1 日以上続く場合は、AWS Support にお問い合わせください。

アップグレードを開始する

アップグレードプロセスは元に戻すことができません。一時停止やキャンセルもできません。アップグレード中、ドメインの設定を変更することはできません。アップグレードを開始する前に、続行するかどうかを再度確認します。これらの同じ手順を使用して、アップグレードを実際に開始することなくアップグレード前の確認を実行することができます。

クラスターに専用マスターノードがある場合、アップグレードはダウンタイムなしで完了します。ない場合、クラスターがマスターノードを選択している間、アップグレード後数秒間応答しなくなることがあります。

ドメインを新しいバージョンの OpenSearch または Elasticsearch (コンソール) にアップグレードするには

  1. ドメインの手動スナップショットを作成します。以前のバージョンの Opensearch の使用に戻る場合、このスナップショットは、新しいドメインで復元できるバックアップとして機能します。

  2. https://aws.amazon.com にアクセスし、[コンソールにサインイン] を選択します。

  3. [分析] の下で、[Amazon Opensearch Service] を選択します。

  4. ナビゲーションペインの [ドメイン] で、アップグレードするドメインを選択します。

  5. [アクション] から [更新] を選択します。

  6. アップグレードするバージョンを選択します。Elasticsearch OSS バージョンから OpenSearch バージョンにアップグレードする場合、[互換モードを有効にする] オプションが表示されます。この設定を有効にすると、OpenSearch はそのバージョンを 7.10 とレポートし、Elasticsearch の OSS クライアントや Logstash などのプラグインが Amazon OpenSearch サービスでの使用を継続できるようにします。

  7. [アップグレード] を選択します。

  8. ドメインダッシュボードのステータスをチェックし、アップグレードのステータスをモニタリングします。

ドメインを新しいバージョンの Opensearch または Elasticsearch (AWS CLI および SDK) にアップグレードするには

以下のオペレーションを使用して、ドメイン用の正しい OpenSearch または Elasticsearch バージョンを識別できます。インプレースアップグレードを開始し、アップグレード前のチェックを実行して進捗状況を表示できます。

  • get-compatible-versions (GetCompatibleVersions)

  • upgrade-domain (UpgradeDomain)

  • get-upgrade-status (GetUpgradeStatus)

  • get-upgrade-history (GetUpgradeHistory)

詳細については、「AWS CLI コマンドリファレンス」および「Amazon OpenSearch Service の設定 API リファレンス」を参照してください。

スナップショットを使用してデータを移行する

インプレースアップグレードは、ドメインを新しい OpenSearch または Elasticsearch バージョンにアップグレードする従来よりも簡単で迅速な、信頼性の高い方法です。スナップショットは、Elasticsearch の 5.1 より前のバージョンから移行する必要がある場合や、まったく新しいクラスターに移行する場合に適しています。

次の表は、スナップショットを使用して、OpenSearch または Elasticsearch の異なるバージョンを使用するドメインにデータを移行する方法を示しています。スナップショットの作成と復元の詳細については、「Amazon OpenSearch Service でのインデックススナップショットの作成」を参照してください。

元のバージョン 目的のバージョン 移行プロセス
Elasticsearch 6.x または 7.x OpenSearch 1.x
  1. インデックスやアプリケーションを調整する必要があるかどうかを確認するには、「OpenSearch 1.0 の重要な変更」を参照します。その他の考慮事項については、「OpenSearch および Elasticsearch をアップグレードする」の表を参照してください。

  2. Elasticsearch 7.x または 6.x ドメインの手動スナップショットを作成します。

  3. OpenSearch 1.x ドメインを作成します。

  4. Elasticsearch ドメインから OpenSearch ドメインにスナップショットを復元します。オペレーション中に、新しい名前で .kibana インデックスを復元することが必要になる場合があります。

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".kibana", "rename_replacement": ".backup-kibana" }

    次に、新しいドメインで .backup-kibana のインデックスを再作成し、エイリアス .kibana を付けることができます。

  5. 元のドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。

Elasticsearch 6.x Elasticsearch 7.x
  1. インデックスやアプリケーションを調整する必要があるかどうかを確認するには、「7.0 の重要な変更」を参照します。その他の考慮事項については、「OpenSearch および Elasticsearch をアップグレードする」の表を参照してください。

  2. 6.x ドメインの手動スナップショットを作成します。

  3. 7.x ドメインを作成します。

  4. 元のドメインのスナップショットを 7.x ドメインに復元します。オペレーション中に、新しい名前で .kibana インデックスを復元することが必要になる場合あります。

    POST _snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "*", "ignore_unavailable": true, "rename_pattern": ".kibana", "rename_replacement": ".backup-kibana" }

    次に、新しいドメインで .backup-kibana のインデックスを再作成し、エイリアス .kibana を付けることができます。

  5. 元のドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。

Elasticsearch 6.x Elasticsearch 6.8
  1. 6.x ドメインの手動スナップショットを作成します。

  2. 6.8 ドメインを作成します。

  3. 元のドメインのスナップショットを 6.8 ドメインに復元します。

  4. 元のドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。

Elasticsearch 5.x Elasticsearch 6.x
  1. インデックスやアプリケーションを調整する必要があるかどうかを確認するには、「6.0 の重要な変更」を参照します。その他の考慮事項については、「OpenSearch および Elasticsearch をアップグレードする」の表を参照してください。

  2. 5.x ドメインの手動スナップショットを作成します。

  3. 6.x ドメインを作成します。

  4. 元のドメインのスナップショットを 6.x ドメインに復元します。

  5. 5.x ドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。

Elasticsearch 5.x Elasticsearch 5.6
  1. 5.x ドメインの手動スナップショットを作成します。

  2. 5.6 ドメインを作成します。

  3. 元のドメインのスナップショットを 5.6 ドメインに復元します。

  4. 元のドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。

Elasticsearch 2.3 Elasticsearch 6.x

Elasticsearch 2.3 のスナップショットは 6.x とは互換性がありません。データを 2.3 から 6.x に直接移行するには、新しいドメインに手動でインデックスを再作成する必要があります。

または、このテーブルの 2.3 から 5.x のステップに従い、新しい 5.x ドメインで_reindexオペレーションを実施して 2.3 インデックスを 5.x インデックスに変換してから、5.x から 6.x のステップに従います。

Elasticsearch 2.3 Elasticsearch 5.x
  1. インデックスやアプリケーションを調整する必要があるかどうかを確認するには、「5.0 の重要な変更」を参照します。

  2. 2.3 ドメインの手動スナップショットを作成します。

  3. 5.x ドメインを作成します。

  4. 2.3 ドメインのスナップショットを 5.x ドメインに復元します。

  5. 2.3 ドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。

Elasticsearch 1.5 Elasticsearch 5.x

Elasticsearch 1.5 のスナップショットは 5.x とは互換性がありません。データを 1.5 から 5.x に移行するには、新しいドメインに手動でインデックスを再作成する必要があります。

重要

1.5 のスナップショットには 2.3 との互換性がありますが、OpenSearch Service 2.3 のドメインでは _reindex オペレーションがサポートされていません。インデックスを再作成できないため、1.5 ドメインで作成されたインデックスでは、2.3 のスナップショットの 5.x ドメインへの復元に失敗します。

Elasticsearch 1.5 Elasticsearch 2.3
  1. 移行プラグインを使用して、バージョン 2.3 に直接アップグレードできるかどうかを確認します。移行前にデータの変更が必要になる場合もあります。

    1. ウェブブラウザで、http://domain-endpoint/_plugin/migration/ を開きます。

    2. [今すぐ確認を実行] を選択します。

    3. 結果を確認し、必要に応じて、手順に従いデータを変更します。

  2. 1.5 ドメインの手動スナップショットを作成します。

  3. 2.3 ドメインを作成します。

  4. 1.5 ドメインのスナップショットを 2.3 ドメインに復元します。

  5. 1.5 ドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。