Elasticsearch のアップグレード - Amazon Elasticsearch Service

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

Elasticsearch のアップグレード

注記

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

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

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

元のバージョン 移行先のバージョン
7.x

7.x

6.8

7.x

重要

Elasticsearch 7.0 には多数の画期的な変更点が含まれます。インプレースアップグレードを開始する前に、6.8 ドメインのスナップショットを手動で作成し、それをテスト用の 7.x ドメインで復元して、そのテストドメインを使用してアップグレードの潜在的な問題を特定することをお勧めします。

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

新しいインデックスの場合、セルフホスト型 Elasticsearch 7.x のデフォルトシャード数は 1 です。Amazon ES 7.x ドメインのデフォルトは、以前の 5 のままです。

6.x

6.x

5.6

6.x

重要

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

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

5.x 5.6

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

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

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

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

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

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

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

アップグレードの開始

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

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

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

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

  2. https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。

  3. [分析] で、[Elasticsearch Service] を選択します。

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

  5. [Actions (アクション)]、[Upgrade domain (ドメインのアップグレード)] の順に選択します。

  6. [Operation (オペレーション)] で、[Upgrade (アップグレード)]、[Submit (送信)]、[Continue (続行)] の順に選択します。

  7. [Overview (概要)] タブに戻り、[Upgrade status (アップグレードのステータス)] を選択してアップグレードの状態をモニタリングします。

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

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

  • get-compatible-elasticsearch-versions (GetCompatibleElasticsearchVersions)

  • upgrade-elasticsearch-domain (UpgradeElasticsearchDomain)

  • get-upgrade-status (GetUpgradeStatus)

  • get-upgrade-history (GetUpgradeHistory)

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

スナップショットを使用したデータの移行

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

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

元のバージョン 移行先のバージョン 移行プロセス
6.x 7.x
  1. インデックスやアプリケーションを調整する必要があるかどうかを確認するには、「7.0 の重要な変更」を参照します。その他の考慮事項については、「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. 元のドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。

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

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

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

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

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

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

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

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

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

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

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

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

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

2.3 6.x

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

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

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

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

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

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

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

1.5 5.x

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

重要

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

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

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

    2. [Run checks now (確認を今すぐ実行)] を選択します。

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

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

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

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

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