だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

サーバーのスケールアウトとスケールアップの違いとは

サーバーの勉強では、必ず"スケール"という言葉が出てきます。

「スケールさせる=システムの処理性能を上げること」の意味合いですが、その中で、スケールには、スケールアップとスケールアウトという2つの手法があります。詳しくは以下の通りです。

スケールアウトとスケールアップの違いについて

スケールアップとは

処理ノード数(サーバーの数)は変えず、CPUやメモリーなどのスペックを上げることで、システムの処理性能を向上することです。

(逆にスペックを下げて処理性能を下げることをスケールダウンとも呼びます。)

スケールアウトとは

処理ノード数(サーバーの数)を増やし、分散処理することで、システムの処理能力を向上することです。

(逆に台数を減らして処理性能を下げることをスケールインとも呼びます。)

スケールアップのポイント

一つのノード(サーバー)のCPUやメモリのスペックを上げるということなので、その一つのノード(サーバー)のスペック上限を満たすと、そこがシステムの処理性能の限界ともなってしまうことです。(それ以上の性能アップが無理。)

また、一つのノード(サーバー)のCPUやメモリのスペックを上げる=その変更作業中は、システムが一時的にダウンしてしまう点があります。

スケールアウトのポイント

ノード数を増やす=性能アップなので、システム処理性能に対して、上限が生まれにくいです。また、スケールアウトの場合は、システムを停止することなく、動的に実行できるメリットもあります。(昨今のクラウドサービスだと、マネージドサービス側の設定一つで自動実行してもらえる点も便利です。)

ただし、スケールアウトのデメリットとしては、そのシステム(アプリケーション)がスケールアウトに対応した仕様・設計になっていないと、処理結果やデータに不整合が起きてしまう心配もあります。

まとめ

覚え方としては、

スケールアップ=性能アップ

スケールアウト=アウト(外)に台数を増やす

といった感じで覚えておくと良いかと思います。

クラウドサーバーを提供している会社の多くが、専門用語の解説ページなどを作っているため、そちらを参考にしたほうが確実です。(読みやすいし、分かりやすいです。)

ページ上部に戻る