ほぼ無限に拡張できるオープンソースの監視ツールという夢

Getty Images


ソフトウェアのスケーリングの仕組み


企業がモニタリングソリューションをスケーリングするためには、何とおりかの重要なやり方がある。以前にもここで、データベースシャーディングの概要について説明したが、今回の分析の文脈の中でそれをさらに説明しよう。

単に「スケーリング」と呼ばれることが多い従来の垂直スケーリングは、より多くのデータや負荷を処理するために1台のサーバーのリソースを増加させる手法だ。これはCPUをより強化し、RAMを増設し、ストレージ容量を拡張することで行われる。これは短期的には有効な方法で、多くのモニタリングソリューションが単一ノードでのスケーリングを得意としている。VictoriaMetricsの場合は、シングルノードあたり最大100万データポイント / 秒の取込レートに対応するスケーリングが可能だ。

しかし、限りなく無制限に近いスケーラビリティを実現するには、水平方向のスケーリング、すなわち「シャーディング」が最も効果的な手法だ。シャーディングとは、1つのデータセットを複数のデータベースに分散し、複数のマシンに保存できる手法である。これにより、大きなデータセットを小さな塊に分割して複数のデータノードに保存することができ、これによりシステムの総ストレージ容量が増えて、スケーラビリティを確保することができる。

水平方向のスケーリングを行うことで、ビッグデータや高負荷のワークロードを処理するための、ほぼ制限のないスケーラビリティが実現できる。

こうした小さなクラスタを構成しスケールアウト(拡大)するために最も効果的な方法が、マルチレイヤー(多層)アーキテクチャだ。シャーディングは、データベース全体の一部を保持する、より小さな計算インスタンス(シャード)にデータを分散させる。5つのシャードがある場合、5つの計算インスタンスがデータベース全体の1/5をそれぞれ保持することになる。

マルチレイヤーアーキテクチャを使うことで、ソフトウェアエンジニアは各シャードで扱われるデータの規模を拡大することができる。これによって、個々のシャードに対して、より小さなデータベースを追加して割り当てることができるようになるのだ。つまり、1つの大きなデータベースを5つのシャードに分割するのではなく、元のデータベースと5つのより小さなデータベースを、余分なスペースを使ったり、シャードを追加したりすることなく利用することもできるようになる。
次ページ > データベースはマンションの建物のようなもの

翻訳=酒匂寛

タグ:

ForbesBrandVoice

人気記事