水平スケーリングと垂直スケーリングの主な違いは、水平スケーリングがパフォーマンスを向上させるために複数のコンピューティングデバイスまたはノードをシステムに追加することを意味するのに対し、垂直スケーリングはパフォーマンスを向上させるために単一のコンピューティングデバイスに多くのリソースを追加することを意味することである。
スケーラビリティとは、増大する作業量を効率よく処理することです。
言い換えれば、システム、ネットワーク、またはプロセスが増大する作業を処理する能力です。
スケーラビリティは、ソフトウェアだけでなく、ハードウェアにも適用できる。
システムがより多くの仕事を処理するためには、より多くの電力を受けるか、より多くのシステムが必要である。
スケーリングには、水平方向のスケーリングと垂直方向のスケーリングと呼ばれる2つのタイプがあります。
水平方向のスケーリングは、システムに多くのデバイスを追加することであり、垂直方向のスケーリングは、単一のデバイスに多くのリソースを追加することです。
これらの方法はどちらもシステム性能を向上させますが、水平スケーリングの方が垂直スケーリングよりも費用対効果が高く、実装も簡単です。
ホリゾンタルスケーリングとは
水平スケーリングとは、システムにどんどんノードやコンピューティングデバイスを追加していくことです。
スケーリングアウトとも呼ばれます。
ノードを増やせば、システムはより強力になります。
コンピュータの台数と性能には直線的な相関があります。
例えば、1台のシステムである程度のデータを処理できる場合、5台のデバイスを持つシステムでは、5倍の速さでデータを処理することができます。
しかも、水平スケーリングに使われる演算装置は、通常のコモディティコンピュータです。
これらのコモディティコンピュータはコスト的に優れています。
したがって、高性能なシステムを構築するためには、水平スケーリングを実施した方が低コストで済みます。
Vertical Scalingとは
垂直スケーリングとは、既存のコンピューティングデバイスまたはノードにさらにリソースを追加することです。
スケーリングアップとも呼ばれる。
より多くのデータを一度に処理する必要がある場合、より多くのCPUとメモリを使用することが可能です。
より多くのストレージを追加することが必要であれば、より多くのディスクを追加することが可能である。
垂直スケーリングの応用例としては、1台のコンピューティングデバイスに多くのリソースを追加し、そのデバイスを使って複数の仮想コンピュータを作成することがあります。
図1:水平方向と垂直方向のスケーリング
垂直スケーリングは、システムのパフォーマンスを向上させるのに役立つ。
一方、大きな欠点は、ある時点までしかシステムを強力にすることができないことである。
例えば、垂直スケーリングは、1つの強力なシステムで膨大な量のデータを処理することはできないため、ビッグデータの処理には適していない。
水平方向と垂直方向の拡大縮小の違い
定義
水平方向の拡張性とは、複数のハードウェアまたはソフトウェアのエンティティを接続して、それらがすべて単一の論理ユニットとして動作するようにすることで、容量を増やす能力です。
垂直スケーラビリティとは、リソースを追加することによって、既存のハードウェアまたはソフトウェアの容量を増やす能力です。
水平スケーリングと垂直スケーリングの基本的な違いについて説明します。
同義語
スケールアウトは水平方向のスケーリング、スケールアップは垂直方向のスケーリングの別称です。
コスト
水平スケーリングは、垂直スケーリングよりもコスト的に有利です。
なぜなら、1つのデバイスで処理を強力に行うよりも、複数のコンピューティングデバイスを追加する方が簡単だからです。
これが水平スケーリングと垂直スケーリングの大きな違いです。
アプリケーション
さらに、分散システムでは水平方向のスケーリングが使用されるが、仮想化では垂直方向のスケーリングが使用される。
結論
水平スケーリングと垂直スケーリングの違いは、水平スケーリングが複数のコンピューティングデバイスまたはノードをシステムに追加して性能を向上させるのに対し、垂直スケーリングは1つのコンピューティングデバイスに多くのリソースを追加して性能を向上させることである。
現在、コモディティコンピュータは安価で高性能であり、水平方向のスケーリングを適用する方が効果的です。