(イラスト・アニメーション:岸本 ムサシ)
![]() |
今回の回答者: 黒河内 倫 楽天 DU グループインフラ構築・運用課 ネットワーク構築・運用グループ マネージャー |
サーバーやネットワークといったインフラの性能を上げる方法の一つに「スケールアウト」があります。また、似た言葉で「スケールアップ」もあります。この二つの違いを、Webサービスを提供するサーバーを例に説明しましょう。
スケールアップは、サーバーのCPUやメモリーといったハードウエアを高性能なものにして処理性能を上げる方法。一方のスケールアウトは、サーバーの数を増やすことで性能を上げる方法です。後者の場合、1台1台が高性能でなくても、大量のサーバーで同じWebサービスを動かせば処理性能を上げられます。スケールアップより構築コストが安く済む、1台くらいサーバーが停止してもWebサービスを提供し続けられる、というメリットがあります。ここ数年、インフラ構築ではスケールアウトが注目されてきています。
二つの方法は、一般的にサーバーの種類で使い分けられます。通常、Webサーバーはスケールアウトで、データベース(DB)サーバーはスケールアップで処理性能を上げます。DBでスケールアウトを使わない理由は、分散したサーバーで処理を継続するのが難しいためです。
しかし近年はDBの機能が向上し、スケールアウトでも処理がしやすくなっています。そこで最近では、各種サーバーでスケールアウトとスケールアップの二つを同時に用いることもあります。その鍵となるのは“仮想化技術”です。スケールアップしたサーバー上で、仮想サーバーをいくつも動かすのです。
仮想サーバーとは、サーバーの中でソフトウエア的に作ったサーバーのことです。高性能なサーバーならば、たくさんの仮想サーバーを作って動かせます。仮想サーバーは、サーバー管理者が簡単な設定をするだけで自由に数を増減できます。この数を増やしたときが、スケールアウトというわけです。スケールアップしたサーバー内部で仮想的なサーバーをスケールアウトする──これが最近のトレンドです。