スケーラビリティとは、コンピューティング、ストレージ、ネットワークのインフラの能力や規模を迅速に拡大・縮小できるシステムの性質です。アプリケーションの要件やリソース需要の変化に伴い、ストレージインフラのスケーリングは、リソース需要への適応、コストの最適化、運用チームの効率向上を実現する手段となります。
スケールアップ(垂直スケーリング)とスケールアウト(水平スケーリング)は、組織がインフラに容量を追加する際に用いる主要な方法です。エンドユーザーから見ると、この2つの概念は同じ機能を果たすように見えるかもしれません。しかし実際には、それぞれがシステムインフラの特定のニーズや容量の問題に異なる方法で対応します。
スケールアップとスケールアウトの違いとは?
簡単に言えば、スケールアップとはハードドライブやメモリなどのリソースを追加して物理サーバーのコンピューティング能力を高めることです。一方、スケールアウトとはアーキテクチャにサーバーを追加し、より多くのマシンにワークロードを分散させることを指します。
スケールアップ
ストレージインフラのスケールアップは、アプリケーションを支えるリソースを追加し、十分なパフォーマンスを向上または維持することを目的とします。仮想リソースとハードウェアリソースのいずれもスケールアップできます。
ハードウェアの場合、より大容量のハードドライブを使用してストレージ容量を大幅に増やすといった単純な方法もあります。ただし、スケールアップでは必ずしもシステムアーキテクチャを変更する必要はありません。
スケールアップは、個々のコンポーネントをこれ以上拡張できなくなるまで有効です。そのため、比較的短期的な解決策と言えます。
インフラをスケールアップするタイミング
- パフォーマンスに影響が出たとき: ワークロードがパフォーマンスの限界に達し始め、I/OやCPU容量が原因でレイテンシーやパフォーマンスのボトルネックが増加したときは、スケールアップを検討すべきサインです。
- ストレージの最適化では解決できないとき: パフォーマンスや容量に対する最適化ソリューションの効果が薄れてきた場合は、スケールアップのタイミングかもしれません。
- アプリケーションが分散システムの複雑さに対応しきれないとき: アプリケーションが複数のサーバー間でプロセスを分散できない、または分散システムの複雑さに対応できない場合は、スケールアップを検討すべきです。
スケールアップが適するケース
さまざまな業務プロセスを管理するERPシステム
大手製造企業が、さまざまな業務プロセスを管理するためにエンタープライズ・リソース・プランニング(ERP)システムを利用しているケースを考えてみましょう。ERPシステムでは、在庫、注文、給与計算など、毎日処理する大量のデータに対応するため、高いI/O処理能力が求められます。
企業の成長に伴ってデータ量が増加すると、システムのパフォーマンスが低下し、業務効率が悪化する可能性があります。こうしたパフォーマンスの問題に対処するため、企業は既存サーバーにRAM、CPU、ストレージのリソースを追加してスケールアップできます。これにより、追加のデータや処理を扱うサーバーの容量が増え、システムパフォーマンスが向上します。
機械学習(ML)ワークロード
MLを専門とするテック系スタートアップの例を見てみましょう。このスタートアップは、巨大なデータセットを処理するために高い計算能力とメモリを必要とする、データ分析用の複雑なモデルを開発しています。会社がより多くのデータを取得し、モデルの複雑さが増すにつれて、現在のハードウェア構成が制約要因になります。
この問題を解消するため、企業はより高性能なCPUやGPUを追加し、メモリとストレージを増強してインフラをスケールアップできます。強化されたインフラによって負荷の高いMLワークロードに対応でき、円滑な運用と高性能なモデル学習を実現できます。
メリット
- 相対的な速度:単一プロセッサーをデュアルプロセッサーに交換すれば、CPUのスループットは2倍になります。ダイナミック・ランダム・アクセス・メモリ(DRAM)などのリソースでも同様の対応ができ、動的メモリのパフォーマンスを向上させられます。
- シンプルさ:既存システムの規模を拡大しても、ネットワーク接続やソフトウェア構成は変わりません。その結果、時間と労力を節約でき、スケールアウト型アーキテクチャと比べてスケーリングプロセスがはるかに簡単になります。
- 費用対効果:ネットワークハードウェアやライセンスのコストが大幅に低いため、スケールアップ方式はスケールアウトよりも安価です。また、冷却などの運用コストもスケールアップ型アーキテクチャのほうが低くなります。
- 消費電力が少ない:スケールアウトと比べて必要な物理機器が少ないため、スケールアップに伴う全体的な消費電力を大幅に削減できます。
デメリット
- レイテンシー:より高容量のマシンを導入しても、ワークロードの実行速度が速くなるとは限りません。動画処理などの用途では、スケールアップ型アーキテクチャでレイテンシーが発生し、かえってパフォーマンスが低下する可能性があります。
- 作業負荷とリスク:たとえばデータを新しいサーバーにコピーする必要があるなど、システムのアップグレードは手間がかかる場合があります。新しいサーバーへの切り替えではダウンタイムが発生する可能性があり、その過程でデータを失うリスクもあります。
- ハードウェアの老朽化:機器の老朽化による制約は、時間の経過とともに有効性や効率を低下させます。バックアップやリカバリーにかかる時間は、パフォーマンスと容量の低下によって悪影響を受ける機能の一例です。
スケールアウト
スケールアウト型インフラはハードウェアを置き換えることで、機能、パフォーマンス、容量を拡張します。スケールアウトは、スケールアップ型インフラの一部の制約に対応するもので、一般により効率的かつ効果的です。さらに、クラウドを利用してスケールアウトすれば、システムをアップグレードするたびに新しいハードウェアを購入する必要もありません。
スケールアウトではリソースやサービスを複製できますが、主要な違いの1つはリソースを柔軟に拡張できることです。これにより、変動する需要にも迅速かつ効果的に対応できます。
インフラをスケールアウトするタイミング
- 長期的なスケーリング戦略が必要なとき:スケールアウトは段階的に拡張するため、将来的な長期のデータ増加に合わせてインフラを拡張できます。目標に応じて、コンポーネントを追加・削除することも可能です。
- 柔軟なアップグレードが必要なとき:スケールアウトでは、陳腐化するテクノロジーの制約や、特定のハードウェア技術へのベンダーロックインを回避できます。
- ストレージワークロードを分散する必要があるとき:スケールアウトは、複数のストレージノードにワークロードを分散する必要がある用途に最適です。
スケールアウトが適するケース
スムーズなユーザー体験を提供するストリーミングサービス
世界中の数百万人にストリーミングサービスを提供するNetflixやYouTubeのような企業は、特有の課題に直面しています。世界中でユーザーベースが拡大する中、単一のサーバーや1か所のクラスターだけに頼るのは現実的ではありません。
このような場合、企業は世界各地のリージョンにサーバーを追加してスケールアウトします。この戦略により、コンテンツ配信が改善し、レイテンシーが低下して、一貫したスムーズなユーザー体験を提供できます。通常は、コンテンツをさまざまな地域に分散するコンテンツ・デリバリー・ネットワーク(CDN)と組み合わせて実行されます。
ソーシャルネットワーキングプラットフォーム
ユーザー生成コンテンツの急増に対応しなければならない急成長中のソーシャルネットワーキングプラットフォームでは、ユーザープロフィール、投稿、マルチメディアコンテンツなど、膨大な量のデータを保存・取得する必要があります。スケールアップによって一時的に対処できるかもしれません。しかし、プラットフォームが成長し、ユーザーが増えるにつれて、スケールアウトが不可欠になります。
ネットワークにサーバーを追加することで、プラットフォームはデータの保存・取得処理を複数のサーバーに分散できます。これにより、この種のプラットフォームに特徴的な大容量・高速のデータを効率的に処理できます。スケールアウトは高可用性と冗長性も確保し、全体的なユーザー体験を向上させます。
メリット
- 新しいサーバーテクノロジーを活用できる:古いハードウェアに制約されないため、スケールアウト型インフラは、スケールアップ型インフラほど容量やパフォーマンスの問題の影響を受けません。
- 需要の変化への適応性:スケールアウト型アーキテクチャでは、需要に応じてサービスやハードウェアを追加・削除できるため、需要の変化に容易に対応できます。リソースのスケーリングも簡単に実行できます。
- コスト管理:スケールアウトは段階的なモデルに基づくため、コストを予測しやすくなります。さらに、必要なときに必要な分だけリソースに対して支払えるという利点もあります。
デメリット
- ラックスペースの制約:スケールアウト型インフラではラックスペースが不足するリスクがあります。理論上、ラックスペースが需要の増加に対応できなくなる可能性があり、スケールアウトが常に需要増への対応策になるとは限りません。
- 運用コストの増加:サーバーリソースを増やすと、ライセンス、冷却、電力などの追加コストが発生します。
- 初期コストの増加:スケールアウトシステムの構築には、多額の投資が必要です。既存インフラをアップグレードするだけではないからです。
スケールアップとスケールアウト、どう判断するか
では、インフラはスケールアップとスケールアウトのどちらを選ぶべきでしょうか。以下の判断ツリーを使えば、この問いに対する答えをより明確に導き出せます。

結論:スケールアップとスケールアウト
スケールアップとスケールアウトのどちらを選ぶかは、組織固有のニーズや状況に大きく左右されます。高性能データベースのように、単一システムで需要を満たせる場合は、垂直スケーリングが適しています。ただし、ハードウェアの能力には限界があり、時間の経過とともにコストが高くなる可能性があります。
一方、水平スケーリングは、ワークロードを複数のサーバーに効率よく分散できる場合に最適です。ソーシャルメディアサイトのWebトラフィックの急増への対応や、ユーザー生成データの管理では、水平スケーリングがよく選ばれます。ただし、この方法では分散システムの管理に関する複雑さが生じる可能性があります。
実際には、多くの組織がハイブリッド方式を採用しています。スケールアップによって各サーバーの能力を最大限に高めたうえで、スケールアウトによって容量を拡張する方法です。最終的には、2つの戦略のどちらを選ぶかを、アプリケーションの要件、成長予測、予算を踏まえて判断すべきです。最適なパフォーマンスを実現するには、スケーリング戦略をビジネス目標に合わせることが重要です。
ストレージを拡張する優れた選択肢の1つは、ネットワーク接続型ストレージ(NAS)です。データを管理・移行する方法についてはおすすめの無料NASソリューションをご覧ください。