Amazon Elasticsearch Service
開発者ガイド (API バージョン 2015-01-01)

Elasticsearch のアップグレード

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

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

元のバージョン 移行先のバージョン
6.x 6.3
5.6

6.3

重要

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

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

5.x 5.6

本質的には、同じメジャーバージョン (5.3 から 5.6 など) 内の最新リリース、またはメジャーバージョンの最新リリースから次のメジャーバージョン (5.6 から 6.3 など) の最新リリースに移行することができます。Amazon ES で新しい Elasticsearch バージョンが利用可能になると、これらのアップグレードパスは変更されます。

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

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

  2. スナップショット – Amazon ES は、Elasticsearch クラスターのスナップショットを作成し、スナップショットが成功しない限り次のステップに進みません。アップグレードが失敗した場合、Amazon ES はこのスナップショットを使用してクラスターを元の状態に復元します。

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

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

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

問題 説明
処理中のドメイン ドメインは、設定変更中です。オペレーション完了後、アップグレードの適格性を確認します。
赤のクラスター状態 クラスター内の 1 つ以上のインデックスは赤です。トラブルシューティングステップについては、「赤のクラスター状態」を参照してください。
高いエラー率 Elasticsearch クラスターはリクエストの処理を試みましたが、大量の 5xx エラーを返しています。この問題は通常、同時読み取りまたは書き込みリクエストが多すぎることで起こります。クラスターへのトラフィックを減らすか、ドメインのスケーリングを検討してください。
スプリットブレイン スプリットブレインとは、Elasticsearch クラスターに 1 つ以上のマスターノードがあり、決して独自に再結合することのない 2 つのクラスターに分割されているという意味です。専用マスターノードの推奨値を使用することで、スプリットブレインを回避できます。スプレッドブレインからの復旧方法については、AWS サポート にお問い合わせください。
マスターノードが見つからない Amazon ES は、クラスターのマスターノードを見つけることができません。ドメインでゾーン対応を使用している場合、アベイラビリティーゾーンの障害によってクラスターがクォーラムを失い、新しいマスターノードを選択できなくなる可能性があります。問題が自動的に解決されない場合、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. https://aws.amazon.com にアクセスし、[Sign In to the Console] を選択します。

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

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

  4. [Upgrade domain (ドメインのアップグレード)] を選択します。

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

  6. [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 6.3
  1. 6.x ドメインの手動スナップショットを作成します。

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

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

  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.x ドメインで _reindex 操作を実行し、2.3 インデックスを 5.x インデックスに変換してから、5.x から 6.x までの手順に従うことができます。

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

    注記

    現在、Elasticsearch の移行プラグインは提供されていません。

  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. _plugin/migration Elasticsearch プラグインを使用して、バージョン 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 ドメインが不要であれば、削除します。削除しなかった場合は、ドメインの利用料金が引き続き発生します。