[アップデート] Amazon OpenSearch Service でブルー/グリーンデプロイなしで専用マスターノード構成が更新出来るようになったようなので試してみた

2023.07.05

いわさです。

Amazon OpenSearch Service ではドメインの構成を変更する際など多くのケースでブルーグリーンデプロイの仕組みでデプロイされます。
ドメインの中断時間を最小限にするためにこの機能が使われているのですが、クラスターを複製して同期して、という仕組み上アップデート時間が長時間になりやすく、またその期間のパフォーマンスが低下するため、トラフィックの少ないオフピークタイムに実施することが推奨されています。

一方で、更新操作によってはブルーグリーンデプロイが実行されない場合もいくつかあり、それらは中断も発生せず短い時間でアップデートを完了することが出来ます。

従来は専用マスターノードのインスタンスタイプやノード数を変更した場合はブルーグリーンデプロイが必須だったのですが、先日のアップデートでこれらの操作についてもブルーグリーンデプロイが不要になりました。

今回実際に試してみたのですが、いくつか予想に反してブルーグリーンデプロイが必要だと判断される場合もあったのでそのあたりも補足しつつ調査結果を紹介したいと思います。

専用マスターノードについて

まず Amazon OpenSearch Service はメインのデータノードに加えて、オプションで専用マスターノードを追加することが出来ます。
専用マスターノードはインデックスデータの保持やアップロードリクエストの処理などは行いませんが、クラスター管理タスクを専用マスターノードにオフロードすることでドメインの安定性を向上させることが出来ます。

従来は専用マスターノードを追加することで、データノードの増減はブルーグリーンデプロイ無しで実施出来ていましたが、専用マスターノード自体のインスタンスタイプやノード数を変更する場合にはブルーグリーンデプロイが必須でした。

やってみる

Amazon OpenSearch Service のドメイン更新時はドライラン機能を使うことでその更新しようとしている内容でブルーグリーンデプロイが発生するのかしないのかを確認出来る便利な機能があります。
今回はいくつかドメインを作成し、このドライラン機能で検証結果を確認してみたいと思います。

また、今回は専用マスターノードの台数を変更したいので、先日実装されたスタンバイマルチ AZ 機能は無効化したドメインで確認します。
ドキュメントにはゾーン認識の有無も条件に含まれていたのでマルチ AZ も避けるようにしました。

そのため、次のようなクラスター構成で検証を行っています。

  • スタンバイが無効のドメイン
  • アベイラビリティゾーン 1-AZ
  • ソフトウェアバージョン:最新 OpenSearch 2.5

  • 専用マスターノードを有効化
  • インスタンスタイプ:m5.large.search
  • ノード数:3

後述しますが、おそらくインスタンスタイプは今回の機能の条件にちょっと影響あります。

インスタンスタイプを変更 → ブルーグリーンデプロイ不要

専用マスターノードのインスタンスタイプを m5.large.search から m5.xlarge.search へ変更してドライランしました。

次のように「ブルーグリーンデプロイ不要」と表示されました。良いですね。

ノード数を変更 → ブルーグリーンデプロイ不要

次は専用マスターノードのノード数を 3 から 5 に変更してドライランしました。

こちらも次のように「ブルーグリーンデプロイ不要」と表示されました。良いですね。

ちなみに 5 から 3 に減らすことも試してみましたが、同様にブルーグリーンデプロイは不要でした。

インスタンスタイプとノード数を同時に変更 → ブルーグリーンデプロイ必要

続いて、次のようにインスタンスタイプの変更とノード数の変更を同時に行ったドライランを試してみました。

今度はブルーグリーンデプロイが必須だと表示されましたね。
実はこのあたりの挙動はアップデートアナウンスでも触れられています。

インスタンスタイプが Graviton → ブルーグリーンデプロイ不要(おそらく)

今回のアップデートを試したところ、なぜかインスタンスタイプ変更時にブルーグリーンデプロイが必須になる現象が初めに起きました。
Amazon OpenSearch Service のノードは初期構築時に Graviton タイプのインスタンスも選択するこが出来るのですが、クラスターのデフォルト設定は Graviton インスタンスタイプが選択されていました。

いくつかパターンを試したところ、おそらく Graviton インスタンスタイプ間の変更はブルーグリーンデプロイが必須になってるようです。

これは本日時点の不具合かもしれないですし、ドキュメントに追記される仕様かもしれません。
公式ドキュメント上は厳密には「ソフトウェアバージョンによって...」とも記述されているので、ARM 向けソフトウェアの場合に現状は挙動が違っているという可能性もあります。

ちなみに、ノード数の増減については Graviton の場合でもブルーグリーンデプロイは不要でした。

ソフトウェアバージョンが古いもの(関係なさそう)

今回、念のため OpenSearch 2.x の古いバージョンや Elasticsearch でも試してみました。

結論としては、私が確認した範囲ではバージョンに関係なく今回の機能は有効でした。
一部のバージョンを抜粋して確認しただけではありますが、参考にしていただけると。

さいごに

本日は Amazon OpenSearch Service でブルー/グリーンデプロイなしで専用マスターノード構成が更新出来るようになったようなので試してみました。

マスターノードのインスタンスタイプ、ノード数の変更時というかなり限られたケースが対象のアップデートですが、変更計画をもし立てられていてブルーグリーンデプロイについて考慮する必要があったという方は、こういうアップデートがあったことを知っておいてもらえると良さそうです。