AWSのOpenSearchでソフトウェアアップデートをしたら、JVMメモリプレッシャーが荒ぶった件について

こんにちは。 エキサイト株式会社の三浦です。

AWS OpenSearch Serviceではたまにソフトウェアアップデートが来ることがありますが、「バージョン自体をアップデートするわけではないからそこまで大きな変化はない」と考えていると、驚くような事態が起きることがあります。

今回は、ソフトウェアアップデートを行った結果、JVMメモリプレッシャーが突如荒ぶりだした件について説明します。

AWS OpenSearch Serviceとは

AWS OpenSearch Serviceは、AWSが提供するマネージドなOpenSearchのサービスであり、ログや文章など様々なデータを保存・分析したり、検索したりすることができます。

aws.amazon.com

Amazon OpenSearch Service を使用すると、インタラクティブなログ分析、リアルタイムのアプリケーションモニタリング、ウェブサイト検索などを簡単に実行できます。

例えば様々な文章データを入れたOpenSearchに対してキーワードを投げると、設定にもよりますが、単純にキーワードが完全一致したデータだけでなく、形態素解析等を行った上で一致度が高いデータを返してくれたりします。

非常に強力なアプリケーションな上、AWSがマネージングしてくれているために使用するエンジニア側ではやりたいことに注力ができるのですが、たまにその「マネージド」な部分に落とし穴があることもあります。

ソフトウェアアップデートを行ったらJVMメモリプレッシャーが荒ぶった

現在私のサービスでは、OpenSearchを「Elasticsearch 7.10」のバージョンで運用しています。

最近久々にOpenSearchに手を加える作業があり、ついでということでソフトウェアアップデートを行いました。

実際に行ったのはソフトウェアアップデートだけなのですが、その結果JVMメモリプレッシャーのメトリクスが以下のようになりました。

明らかにJVMメモリプレッシャーが今までと異なる動きをしています。

幸いOpenSearchの挙動自体は問題なかったので、一旦様子を見ながら色々と調べていたところ、以下のブログを教えていただきました。

aws.amazon.com

In the latest service software release of Amazon OpenSearch Service, we’ve changed the behavior of the JVMMemoryPressure metric.

この記事によると、どうやら最新パッチを当てるとJVMメモリプレッシャーのメトリクスの計測方法が変わるため、内容が変わることがあるようです。

より正確に異常を検知するための仕様変更とのことで、どうやら挙動そのものには影響はなさそうです。

最後に

何の気無しにソフトウェアアップデートを行うと、今回のように想定外のことが起きることがあります。

今回のように見た目上で大きな変化がある場合もあるので、こういった場合でも焦らずに色々と調べて見るようにするのが良さそうです。