patorashのブログ

方向性はまだない

HerokuのアドオンのSearchBoxが最新のElasticsearchクライアント(7.14.0)でUnsupportedProductErrorになる件

昨日発生したのですが、テストも通ってステージング環境に反映したら、表題の件が起きました。

Elasticsearch::UnsupportedProductError
The client noticed that the server is not a supported distribution of Elasticsearch.

これはもしや、アレでは…。最近読んだ記事のことを思い出しました。

www.publickey1.jp

「Elasticsearch純正のクライアントだとAWSへのOpenSearchへの接続ができなくなるんかぁ、大変やなぁ〜😲」とやや他人事に捉えていたのですが、まさか自分達の身に降りかかってこようとは。

弊プロダクトは全文検索エンジンにElasticsearchを使っているのですが、HerokuのアドオンではElastic社が提供するアドオンではなく、Searchly社が提供するSearchBoxというやつを使っています。理由は、安いから!

elements.heroku.com

elements.heroku.com

本家Elastic社は最安で月額$67なので、かなり高いんですが、Seachly社は無料から始められるし、弊プロダクトの現状だと$19のSmallプランで十分なのです。

解決方法

恐らくElasticsearchのクライアントを最新に更新していたことが原因なので、暫定措置として一旦、下げることに…。

Gemfileを更新。

# Elasticsearchを使うためのgem
# 7.14以上にしたらSearchBoxに接続できなくなった
# 暫定で7.14未満を使うように変更
# https://www.publickey1.jp/blog/21/elasticaws_opensearchaws.html
# https://stackoverflow.com/questions/68762774/elasticsearchunsupportedproducterror-the-client-noticed-that-the-server-is-no
gem 'elasticsearch-dsl'
gem 'elasticsearch', '< 7.14'
gem 'elasticsearch-api', '< 7.14'
gem 'elasticsearch-transport', '< 7.14'
gem 'elasticsearch-model', '~> 7.1.1'
gem 'elasticsearch-rails', '~> 7.1.1'

これでCIを通した後にステージングに反映したところ、問題なく動作した模様👍

まとめ

Elastic社とAWSの騒動は、AWSに限らず、Elasticsearchをサービスとして提供しているところ全体に影響しそうなので悩ましいところです🥺🥺🥺