Amazon OpenSearch Service ドメインのアップグレードに時間がかかっているのはなぜですか?

最終更新日: 2021 年 7 月 30 日

Amazon OpenSearch Service (Amazon Elasticsearch Service の後継サービス) クラスターをアップグレードしようとしていますが、アップグレードに時間がかかっています。なぜこれが起こっているのですか? また、OpenSearch Service でクラスターのアップグレードステータスをより適切にモニタリングするにはどうすればよいですか?

簡単な説明

OpenSearch Service で設定を変更すると、ブルー/グリーンデプロイプロセスが使用されます。ブルー/グリーンデプロイでは、2 つの本稼働環境が実行されます (一方はライブ環境で、もう一方はアイドル状態で)。2 つの本稼働環境は、ソフトウェアの更新に応じて切り替わります。OpenSearch Service の場合、ドメインの更新中に新しい環境が作成され、更新が完了すると、ユーザーは新しい本稼働環境にルーティングされます。この動作により、ダウンタイムが最小限に抑えられ、デプロイが失敗した場合に備えて、元の環境が維持されます。

OpenSearch Service でクラスターのアップグレードステータスをより適切にモニタリングするには、以下の各段階でブルー/グリーンデプロイプロセスをモニタリングします。

  • 新しいノードの作成
  • データの移行
  • 古いノードの削除

解決方法

すべてのクラスタースナップショットとノード ID を取得する

移行前に、OpenSearch Service はクラスターが適格性テストに合格すると、クラスターの自動スナップショットを作成します。スナップショット中、進行状況ステータスが「null」または 0% と表示されることがあります。スナップショットが取得されると、パーセンテージ値が更新されます。スナップショットの完了にかかる時間は、ストレージ容量によって異なります。スナップショットは増分的に取得されるため、以前の自動スナップショットからデータに大幅な変更があった場合、スナップショットの完了に時間がかかることがあります。

次の _snapshot リクエストにより、現在実行中のすべてのスナップショットを、詳細なステータス情報とともに取得します。

GET /_snapshot/_status

snapshot API の詳細については、Elasticsearch ウェブサイトの Monitor snapshot and restore progress を参照してください。

クラスターで現在実行中のスナップショットをすべて取得するには、現在のパラメータを使用します。

GET /_snapshot/<snapshot-repository>/_current

すべてのデータノードの ID を取得するには、以下のように cat nodes API を使用します。

GET _cat/nodes

ノード ID を使用して、古いノードと新しいノードを識別できます。新しいノードでシャードの数が増加すれば、移行がスムーズに行われています。最終的に、すべてのシャードが新しいノードに移動し、古いノードは空になります。

ブルー/グリーンデプロイプロセスのモニタリング

クラスターがブルー/グリーンデプロイプロセスに入ると、新しいノード (グリーンの環境) が表示されます。その後、シャードは古いノード (ブルーの環境) から移行されます。データの移行またはシャードの再割り当てが完了すると、古いクラスターは切断されます。

ブルー/グリーンデプロイプロセスは、新しいノード、データ移行、および古いノードの削除の 3 つのステージで監視できます。

ステージ 1: 新しいノードの作成

Amazon CloudWatch でノードクラスターメトリクスをモニタリングして、ノード数を取得できます。または、cat nodes API を使用して、以下のようにクラスター内のすべてのノードを一覧表示することもできます。

GET /_cat/nodes?v&pretty

更新するのはクラスターのバージョンのみであるため、ノード数 (古いノードと新しいノード) が増加するとすぐにプロセスは完了します。その後、OpenSearch Service ドメインが [Active] (アクティブ) 状態に戻る場合があります ([Processing] (処理中) 状態になった後)。専用ノードを持つクラスターでは、ノード数が古いノードと新しいノードの合計値に増加することがわかります。古い設定のリーダーノードはシャットダウンされ、ノード数はリーダーノードの数だけ減少します。例えば、3 つの専用リーダーノードを持つ OpenSearch Service クラスターは、3 つのノードずつ減少します。

ステージ 2: データ移行

第 1 段階が完了するとすぐに、シャードの移行が開始されます。データ移行中は、古いノードのシャード数が減少し、新しいノードのシャード数が増加します。cat allocation API を使用して、各ノードに割り当てられているシャードの数を確認できます。

GET /_cat/allocation?v&pretty

詳細については、Elasticsearch ウェブサイトの「cat allocation」を参照してください。

ステージ 3: 古いノードの削除

すべてのシャードが新しいノードに移行されると、古いノードがクラスターから削除されます。その後、ノードカウントは、設定した元のノード数に戻ります。この段階では、ブルー/グリーンデプロイと更新プロセスが完了します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?