A little bit of everything

元・情報系大学院生の備忘録

スケールアウトとスケールアップ

スケールアウト(水平スケール):

システムにノードを追加することで、システム全体のスケーラビリティ(システムの規模の変化に柔軟に対応できるかの度合い)を向上させること。具体的には、サーバが動いているようなシステムで、単純にサーバの数を増やせば処理能力上がるでしょう!ってこと。

利点:
1. 上手く並列処理ができるプログラムなら、台数を増やすほど性能が上がる
2. 高いハードウェアを導入する必要がなく、安価なハードウェアで構成可能

欠点:
1. 大量のサーバを管理しなければならない
2. すべてのサーバにソフトウェアを入れる必要がある

f:id:yuukiyg:20160116182017p:plain



スケールアップ(垂直スケール):

システムの単一のノードの性能を高めることで、システムのスケーラビリティを向上させること。今使ってるサーバにメモリとかプロセッサを増設したら、そりゃあ処理性能上がるでしょう!ってこと。

利点:
1. スケールアウトの場合と異なり、1台のサーバだけ管理すればよい

欠点:
1. (一般的に)スケールアウトよりもコストがかかる
2. 性能向上に限界がある。世界最高のスパコンを導入したら、それ以上は性能が上がらない。

f:id:yuukiyg:20160116182037p:plain