Amazon OpenSearch Service ドメインのアップグレード - Amazon OpenSearch サービス

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

Amazon OpenSearch Service ドメインのアップグレード

注記

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

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

サポートされているアップグレードパス

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

元のバージョン 目的のバージョン
OpenSearch 1.3 または 2.x

OpenSearch 2.x

バージョン 2.3 には、次のような重要な変更点があります。

  • バージョン 2.0 では、 typeパラメータがすべての OpenSearch API エンドポイントから削除されました。詳細については、「breaking changes」(重要な変更点) を参照してください。

  • ドメインに Elasticsearch 6.8 で最初に作成されたインデックス (ホット UltraWarm、またはコールド) が含まれている場合、それらのインデックスは OpenSearch 2.3 と互換性がありません。

    バージョン 2.3 にアップグレードする前に、互換性のないインデックスを再インデックスする必要があります。互換性のないインデックス UltraWarm またはコールドインデックスの場合は、ホットストレージに移行し、データのインデックスを再作成してから、ウォームストレージまたはコールドストレージに戻します。または、インデックスが不要になった場合は削除することもできます。

    最初にこれらの手順を実行することなく、誤ってドメインをバージョン 2.3 にアップグレードした場合、互換性のないインデックスを現在のストレージ階層から移行することができなくなります。唯一の選択肢はインデックスを削除することです。

OpenSearch 1.x OpenSearch 1.x
Elasticsearch 7.x

Elasticsearch 7.x または OpenSearch 1.x

重要

OpenSearch 1.x では、多数の重大な変更が導入されています。詳細については、「Amazon OpenSearch Service 名称変更 - 変更の概要」を参照してください。

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 7.x および OpenSearch 1.x のデフォルトシャード数は 1.x 以降の Elasticsearch 7.x 上の OpenSearch サービスドメインでは、以前のデフォルトである 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 サービスは.kibanaインデックスを に再インデックスし.kibana-6、 を削除し.kibana、 という名前のエイリアスを作成し.kibana、新しいインデックスを新しいエイリアスにマッピングします。

Elasticsearch 5.x Elasticsearch 5.x

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

  1. アップグレード前のチェック — OpenSearch サービスは、アップグレードをブロックし、これらのチェックが成功しない限り次のステップに進みません。

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

  3. アップグレード – OpenSearch サービスによってアップグレードが開始されます。このアップグレードが完了するまでに 15 分から数時間かかる場合があります。アップグレードの一部またはすべて中に OpenSearch ダッシュボードが使用できなくなる場合があります。

アップグレードの開始 (コンソール)

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

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

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

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

  3. 分析 で、Amazon OpenSearch サービス を選択します。

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

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

  6. アップグレードするバージョンを選択します。 OpenSearch バージョンにアップグレードする場合は、「互換モードを有効にする」オプションが表示されます。この設定を有効にすると、 はバージョンを 7.10 として OpenSearch レポートし、Logstash などの Elasticsearch OSS クライアントとプラグインが Amazon OpenSearch Service で引き続き作業できるようにします。この設定は後で無効にできます

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

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

アップグレードの開始 (CLI)

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

  • get-compatible-versions (GetCompatibleVersions)

  • upgrade-domain (UpgradeDomain)

  • get-upgrade-status (GetUpgradeStatus)

  • get-upgrade-history (GetUpgradeHistory)

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

アップグレードの開始 (SDK)

このサンプルでは、 のOpenSearchService低レベル Python クライアント AWS SDK for Python (Boto) を使用して、ドメインが特定のバージョンへのアップグレードの対象であるかどうかを確認し、アップグレードして、アップグレードステータスを継続的にチェックします。

import boto3 from botocore.config import Config import time # Build the client using the default credential configuration. # You can use the CLI and run 'aws configure' to set access key, secret # key, and default Region. DOMAIN_NAME = '' # The name of the domain to upgrade TARGET_VERSION = '' # The version you want to upgrade the domain to. For example, OpenSearch_1.1 my_config = Config( # Optionally lets you specify a Region other than your default. region_name='us-east-1' ) client = boto3.client('opensearch', config=my_config) def check_versions(): """Determine whether domain is eligible for upgrade""" response = client.get_compatible_versions( DomainName=DOMAIN_NAME ) compatible_versions = response['CompatibleVersions'] for i in range(len(compatible_versions)): if TARGET_VERSION in compatible_versions[i]["TargetVersions"]: print('Domain is eligible for upgrade to ' + TARGET_VERSION) upgrade_domain() print(response) else: print('Domain not eligible for upgrade to ' + TARGET_VERSION) def upgrade_domain(): """Upgrades the domain""" response = client.upgrade_domain( DomainName=DOMAIN_NAME, TargetVersion=TARGET_VERSION ) print('Upgrading domain to ' + TARGET_VERSION + '...' + response) time.sleep(5) wait_for_upgrade() def wait_for_upgrade(): """Get the status of the upgrade""" response = client.get_upgrade_status( DomainName=DOMAIN_NAME ) if (response['UpgradeStep']) == 'UPGRADE' and (response['StepStatus']) == 'SUCCEEDED': print('Domain successfully upgraded to ' + TARGET_VERSION) elif (response['StepStatus']) == 'FAILED': print('Upgrade failed. Please try again.') elif (response['StepStatus']) == 'SUCCEEDED_WITH_ISSUES': print('Upgrade succeeded with issues') elif (response['StepStatus']) == 'IN_PROGRESS': time.sleep(30) wait_for_upgrade() def main(): check_versions() if __name__ == "__main__": main()

検証障害のトラブルシューティング

OpenSearch または Elasticsearch バージョンアップグレードを開始すると、 OpenSearch Service は最初に一連の検証チェックを実行して、ドメインがアップグレードの対象であるかどうかを確認します。これらのチェックのいずれかが失敗した場合、ドメインを更新する前に修正する必要がある特定の問題を含む通知が表示されます。発生する可能性のある問題とその解決手順の一覧については、検証エラーのトラブルシューティング を参照してください。

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

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

問題 説明
オプションのプラグインはサポートされていません

オプションのプラグインを使用してドメインをアップグレードすると、 OpenSearch サービスによってプラグインも自動的にアップグレードされます。そのため、ドメインのターゲットバージョンは、これらのオプションプラグインもサポートしている必要があります。ターゲットバージョンでは使用できないオプションのプラグインがドメインにインストールされている場合、アップグレードリクエストは失敗します。

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

アップグレードできるのは、アップグレード後にソースドメインとデスティネーションドメインの間で、クラスター間の互換性が維持されている場合のみです。アップグレードプロセス中に、互換性のない接続があれば特定されます。続行するには、リモートドメインをアップグレードするか、互換性のない接続を削除します。ドメインでレプリケーションがアクティブな場合は、接続を削除した後でレプリケーションを再開できないことに注意してください。

その他の OpenSearch サービスの問題 OpenSearch サービス自体に問題があると、ドメインがアップグレード対象外として表示される可能性があります。前述の条件がドメインに当てはまらず、問題が 1 日以上続く場合は、AWS Support にお問い合わせください。

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

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

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

元のバージョン 目的のバージョン 移行プロセス
OpenSearch 1.3 または 2.x OpenSearch 2.x
  1. OpenSearch 2.3 の重大な変更を確認して、インデックスまたはアプリケーションを調整する必要があるかどうかを確認します。

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

  3. 元の 1.3 または 2.x ドメインよりも上位のバージョンである 2.x ドメインを作成します。

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

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

    次に、新しいドメインで .backup-opensearch のインデックスを再作成し、エイリアス .opensearch を付けることができます。_restore のデフォルトは false であるため、_restore REST 呼び出しには include_global_state は含まれません。その結果、テストドメインにはインデックステンプレートが含まれず、バックアップの完全な状態も含まれません。

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

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

  2. 元の 1.x ドメインよりも上位のバージョンの 1.x ドメインを作成します。

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

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

    次に、新しいドメインで .backup-opensearch のインデックスを再作成し、エイリアス .opensearch を付けることができます。_restore のデフォルトは false であるため、_restore REST 呼び出しには include_global_state は含まれません。その結果、テストドメインにはインデックステンプレートが含まれず、バックアップの完全な状態も含まれません。

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

Elasticsearch 6.x または 7.x OpenSearch 1.x
  1. OpenSearch 1.0 の重大な変更を確認して、インデックスまたはアプリケーションを調整する必要があるかどうかを確認します。

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

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

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

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

    次に、新しいドメインで .backup-opensearch のインデックスを再作成し、エイリアス .elasticsearch を付けることができます。_restore のデフォルトは false であるため、_restore REST 呼び出しには include_global_state は含まれません。その結果、テストドメインにはインデックステンプレートが含まれず、バックアップの完全な状態も含まれません。

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

Elasticsearch 6.x Elasticsearch 7.x
  1. 7.0 の重大な変更を確認して、インデックスまたはアプリケーションを調整する必要があるかどうかを確認します。

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

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

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

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

    次に、新しいドメインで .backup-elasticsearch のインデックスを再作成し、エイリアス .elasticsearch を付けることができます。_restore のデフォルトは false であるため、_restore REST 呼び出しには include_global_state は含まれません。その結果、テストドメインにはインデックステンプレートが含まれず、バックアップの完全な状態も含まれません。

  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 の重要な変更」を参照します。

  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 サービス 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 ドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。