サーバーのスケールアウトとスケールアップの違いとは
サーバーの勉強では、必ず"スケール"という言葉が出てきます。
「スケールさせる=システムの処理性能を上げること」の意味合いですが、その中で、スケールには、スケールアップとスケールアウトという2つの手法があります。詳しくは以下の通りです。
目次
スケールアウトとスケールアップの違いについて
スケールアップとは
処理ノード数(サーバーの数)は変えず、CPUやメモリーなどのスペックを上げることで、システムの処理性能を向上することです。
(逆にスペックを下げて処理性能を下げることをスケールダウンとも呼びます。)
スケールアウトとは
処理ノード数(サーバーの数)を増やし、分散処理することで、システムの処理能力を向上することです。
(逆に台数を減らして処理性能を下げることをスケールインとも呼びます。)
スケールアップのポイント
一つのノード(サーバー)のCPUやメモリのスペックを上げるということなので、その一つのノード(サーバー)のスペック上限を満たすと、そこがシステムの処理性能の限界ともなってしまうことです。(それ以上の性能アップが無理。)
また、一つのノード(サーバー)のCPUやメモリのスペックを上げる=その変更作業中は、システムが一時的にダウンしてしまう点があります。
スケールアウトのポイント
ノード数を増やす=性能アップなので、システム処理性能に対して、上限が生まれにくいです。また、スケールアウトの場合は、システムを停止することなく、動的に実行できるメリットもあります。(昨今のクラウドサービスだと、マネージドサービス側の設定一つで自動実行してもらえる点も便利です。)
ただし、スケールアウトのデメリットとしては、そのシステム(アプリケーション)がスケールアウトに対応した仕様・設計になっていないと、処理結果やデータに不整合が起きてしまう心配もあります。
まとめ
覚え方としては、
スケールアップ=性能アップ
スケールアウト=アウト(外)に台数を増やす
といった感じで覚えておくと良いかと思います。
クラウドサーバーを提供している会社の多くが、専門用語の解説ページなどを作っているため、そちらを参考にしたほうが確実です。(読みやすいし、分かりやすいです。)