BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 「OpenSearchクラスタのスケーリングでコスト削減へ」QCon San FranciscoでAmitai Stern氏が講演

「OpenSearchクラスタのスケーリングでコスト削減へ」QCon San FranciscoでAmitai Stern氏が講演

原文リンク(2024-11-25)

先日のQCon San Franciscoの講演で、Logz.ioのエンジニアリングマネージャー兼OpenSearchリーダーシップ委員会のメンバーであるAmitai Stern氏は、負荷の変動が激しいワークロード環境でのOpenSearchクラスタ管理の効率化に向けた実用的な洞察を共有した。同氏の講演、"OpenSearch Cluster Topologies for Cost-Saving Autoscaling"では、コストを最小限に抑えたOpenSearchの効果的なスケーリング戦略を検証した。

ElasticsearchのフォークであるOpenSearchは、大規模なデータ処理と分析に特化して設計されている。OpenSearchの分散アーキテクチャは、ノードとシャードを活用してクラスタ間のデータを管理している。しかし、多くのクラスタでは、日中と夜間あるいは平日と休日といったライフサイクルに応じてワークロードの負荷パターンが変動する。このため、リソースの使用率が極端に変動する時間帯が生じている。

OpenSearchはノードの追加による水平スケーリングをサポートしているが、をサポートしているが、ワークロードが減少したときのリソースのスケールダウンや削除はより複雑である。こうした制限により、特にクラウド環境において不要なコストがかさむ可能性がある。

Stern氏は、OpenSearchのスケーリングの複雑さを説明し、オートスケーリングによるコストの効率化を阻む要因を次のように明示した。

  1. 水平スケーリング
  • ノードを追加してシャード全体にデータが分散することで、パフォーマンスの向上やノードのオーバーロード、ホットスポットの減少が見込める。

  • しかし、シャーディングやCPU、メモリ、ディスクといったリソース使用率の偏りからワークロードが不均衡になると、効率が下がる恐れがある。

  1. 垂直スケーリング
  • CPUやメモリなどのマシンリソースの追加は、本来ディスク容量の圧迫に対処する手法であり、クラウド上の柔軟性を下げてしまう。そのため、ソリューションとしては限定的である。
  1. シャード管理
  • OpenSearchはシャードを使ってデータを分割している。しかし、シャードを動的にリサイズすることはできない。スケールインする際には、データの再分配先のノードを減らす必要があり、このため時間とリソースが割かれてしまう。

続いてStern氏は、これらの課題を軽減し、コストを削減するための実用的なアプローチを紹介した。

  • オーバーシャーディングによる柔軟性の確保: 現在必要な数より多くのシャードを作成することで、スケーリングアクションを即時実行することなくクラスタの今後の成長への対応が可能になる。この方法により、ワークロード負荷が高まる時間帯にホットスポットが生じるのを回避することができる。

  • ロールオーバーインデックス: ロールオーバーでは、書き込み処理が高負荷になる場合に新しく動的インデックス作成を実施する。これにより、シャード分散のバランスを保ちながら、ノードの負荷が過剰になるリスクを軽減できる。

  • バーストトポロジー: Stern氏は、以下2つのバースト指向設計に焦点を当てた。

  • バーストインデックス: 書き込み処理による負荷のスパイクが発生した際に利用する一時的なインデックス。

  • バーストクラスタ: ピーク負荷時に稼働し、アイドル状態でスケールダウンされる追加のノード。

またStern氏は、OpenSearchを負荷変動の激しいワークロードに最適化するためには、次の3つのリソースにフォーカスすることが重要であると強調した。

  1. ディスク: 検索可能スナップショットの利用により、ディスクの使用率の削減とアーカイブデータへのアクセス維持が両立できる。

  2. CPUとメモリ: 予想可能な負荷のスパイクに備えて予め計画的にリソースをプロビジョニングすることで、一時的なワークロードの増加に高性能ノードやバーストクラスタでの対応が可能になる。

  3. 負荷分散: ロールオーバーとオーバーシャーディングでリソースの均等分配が行え、ホットスポットの発生や非効率化を防ぐことができる。

最後に、Stern氏は、読み取り/書き込みの分離機能の実装といったOpenSearchの将来的な発展について語った。同機能では、リソースに高負荷のかかる書き込み操作を読み取り操作から切り離す処理を実行する。これによりクラスタが各ワークロードへより効率的にリソースを分配できるため、スケーリングの簡素化が可能になる。

作者について

この記事に星をつける

おすすめ度
スタイル

BT