クラウドのスケーラビリティとは、クラウド コンピューティング システムが、変化する需要に対応するために、コンピューティング能力、ストレージ、ネットワーク帯域幅などのリソースを増減できる能力のことです。これはクラウドの重要なメリットの一つで、これにより、企業はインフラストラクチャ全体を刷新することなく、ワークロードの増減に対応できます。つまり、ビジネスの成長やアプリケーションへのトラフィックの変化に応じてリソースを簡単に調整でき、支払うのは使用した分の料金のみです。
スケーラビリティと弾力性は同じ意味で使用されることが多いですが、それぞれ異なる概念です。どちらも、変化する需要に対応するシステムの能力に関連しますが、その対応方法が異なります。
スケーラビリティとは、リソースを追加することで、時間の経過とともに増大するワークロードを処理するシステムの能力のことです。多くの場合、需要の増加に対応するための計画的な長期的なアプローチです。たとえば、ユーザー数を増やす大規模なマーケティング キャンペーンを予定している企業は、データベース リソースをスケールアップする計画を立てるでしょう。これは、システムが将来の成長に対応できるよう拡張する能力です。
弾力性とは、システムがリソースをリアルタイムで自動的かつ迅速に調整して、需要の急激な変化に対応する能力のことです。伸びたり縮んだりするゴムバンドのようなものです。たとえば、e コマースのウェブサイトでは、ブラック フライデーなどの祝日には自動的にサーバーを追加してトラフィックの急増に対処し、トラフィックが減少したらサーバー数を減らすといったように設計できます。弾力性とは、現在の需要に合わせて動的にオンデマンドで調整することであり、コストとパフォーマンスの最適化に役立ちます。
クラウドのスケーラビリティには、主に垂直スケーリングと水平スケーリングの 2 つの形式があります。どちらのアプローチが適しているかは、アプリケーションのアーキテクチャとワークロードの性質によって異なります。
垂直スケーリングは、「スケールアップ」または「スケールダウン」とも呼ばれ、単一のサーバーまたはマシンからリソースを追加または削除するプロセスです。これは、1 台のコンピュータのプロセッサを高速なものにアップグレードしたり、RAM を増設したりするようなものです。目標は、1 台のマシンの性能を上げることです。
垂直スケーリングの仕組み
既存の仮想マシン(VM)の容量を増やすことで、垂直スケーリングできます。たとえば、アプリケーションが特定の数の CPU コアと特定の量のメモリを備えた VM で実行されている場合、より多くのリソースを備えたより大きな VM を選択するだけでスケールアップできます。同様に、より小さな VM に移行することでスケールダウンできます。
水平スケーリングは、「スケールアウト」または「スケールイン」とも呼ばれ、システム内のマシンまたはノードの数を増やして、ワークロードをより効果的に分散します。ネットワークにコンピュータを追加して作業を分担するようなものです。目標は、1 台のマシンの性能を上げるのではなく、複数のマシンを使用して容量を増やすことです。
水平スケーリングの仕組み
水平スケーリングでは、アプリケーションを複数の VM で実行し、ロードバランサがこれらのマシン間で受信トラフィックを分散します。需要が増加したら、グループに VM を自動または手動で追加できます。需要が減少したら削除できます。
垂直スケーリングと水平スケーリングのどちらを選択するかは、アプリケーションのアーキテクチャとビジネスニーズによって異なります。
機能 | 垂直方向のスケーリング | 水平方向のスケーリング |
複雑さ | 単一のマシンが関与するため、よりシンプルです。 | 複数のノードとロードバランサを管理する必要があるため、より複雑。 |
ダウンタイム | アップグレード中にサービスが一時的に中断されることがある。 | 通常、既存のマシンを中断することなく新しいマシンを追加するため、ダウンタイムは発生しません。 |
スケーラビリティの制限 | 単一のマシンの物理容量によって制限される。 | 必要な数のマシンを追加できるため、ほぼ無制限。 |
フォールト トレラント | 単一障害点がある。マシンがダウンすると、アプリケーションは利用できなくなる。 | 高いフォールト トレランス: 1 台のマシンが故障しても、他のマシンは引き続き動作します。 |
機能
垂直方向のスケーリング
水平方向のスケーリング
複雑さ
単一のマシンが関与するため、よりシンプルです。
複数のノードとロードバランサを管理する必要があるため、より複雑。
ダウンタイム
アップグレード中にサービスが一時的に中断されることがある。
通常、既存のマシンを中断することなく新しいマシンを追加するため、ダウンタイムは発生しません。
スケーラビリティの制限
単一のマシンの物理容量によって制限される。
必要な数のマシンを追加できるため、ほぼ無制限。
フォールト トレラント
単一障害点がある。マシンがダウンすると、アプリケーションは利用できなくなる。
高いフォールト トレランス: 1 台のマシンが故障しても、他のマシンは引き続き動作します。
初期のパフォーマンス強化では、最も効果的な方法は垂直スケーリングです。アプリケーションの規模が拡大し、より高い可用性が求められるようになると、水平スケーリングに移行したほうが適切な場合もあります。「斜めスケーリング」とも呼ばれるハイブリッド アプローチは、この両方の方法を組み合わせたものです。
多くのプロバイダが標準的なスケーリング機能を提供していますが、Google Cloud は、最新のアプリケーションの進化するニーズに対応するように設計された、差別化された柔軟なツールセットを提供しています。ML による予測から独自のハイブリッド機能まで、これらのサービスはパフォーマンスと費用の最適化に役立ちます。
従来型の自動スケーリングは事後対応型であり、需要が急増した後にのみリソースを追加します。そのため、少しの間パフォーマンスの低下が発生することがあります。Compute Engine の予測自動スケーリングは、ML を使用して過去のデータに基づいて将来の負荷を予測することで、この問題を解決します。予測されるトラフィックの増加に先立ってインフラストラクチャをスケールアウトできるため、需要が発生した瞬間にすでにアプリケーションはユーザーにサービスを提供する準備ができてきます。
ほとんどのクラウド プロバイダでは、仮想マシンのサイズをあらかじめ定義された「既定のサイズ」から選択する必要があるため、必要のないリソースの料金まで支払うことになりがちです。Google Cloud では、カスタム マシンタイプを利用して、ワークロードに最適な vCPU 数とメモリ容量を正確に調整できます。このきめ細かい制御により、インフラストラクチャを効率的に垂直スケーリングし、タスクをリソースに適合させるのではなく、リソースをタスクに適合させることができます。
オンプレミス インフラストラクチャを使用している組織にとって、トラフィックの急増に対応するのは困難です。クラウド バースト機能を使用すると、プライベート データセンターが容量に達したときに、過剰なトラフィックをパブリック クラウドにシームレスに「バースト」できます。GKE Enterprise などの Google Cloud のハイブリッドおよびマルチクラウド ソリューションは、環境全体でワークロードを管理するために必要な一貫性と柔軟性を提供し、既存の投資を無駄にすることなく無制限にスケーリングできるようにします。
Cloud Run を使用すると、基盤となるインフラストラクチャを管理することなくコンテナ化されたアプリケーションを実行できます。主な差別化要因は、ゼロにスケールできることです。つまり、トラフィックがない場合はリソースを使用せず、料金は発生しません。トラフィックが戻ると、0 から数千のインスタンスにほぼ瞬時にスケールアップできます。そのため、Cloud Run はトラフィック パターンの変動が大きいまたは予測できないアプリケーションに最適です。
スケーラビリティとは、単にサーバーを追加することではありません。トラフィックをサーバーに効率的に分散することです。Google Cloud Load Balancing は、単一のグローバル エニーキャスト IP アドレスを使用して、世界中のリソースにトラフィックを分散します。これにより、複雑な DNS 設定やリージョン間の断片化なしでアプリケーションをグローバルにスケーリングでき、ユーザーは常に、使用可能な容量を持つ最も近い正常なインスタンスにルーティングされます。
クラウドのスケーラビリティにより、従来型のオンプレミス インフラストラクチャでは実現が難しいいくつかの重要なメリットが得られます。
費用対効果
リソースのオーバー プロビジョニングや、アイドル状態のハードウェアの維持にかかる高額な費用を回避できる可能性があります。クラウドのスケーラビリティにより、使用したリソースに対してのみ料金を支払うため、固定費が変動費に変わります。
パフォーマンスと可用性の向上
リソースを動的に調整することで、需要がピークに達したときでもアプリケーションの高いパフォーマンスを維持しやすくなり、ユーザーの不満につながる速度低下やサービスの中断を防ぐことができます。
予測できない需要への対応
スケーラビリティを確保することで、ソーシャル メディアの投稿が拡散してトラフィックが急増した場合など、予期しないトラフィックの急増に、新しいハードウェアを手動で追加することなく対応できます。
ビジネスのアジリティ
迅速にスケーリングできることで、イノベーションが促進され、市場の変化に俊敏に対応できます。インフラストラクチャのセットアップを待たずに、新しい機能やアプリケーションをデプロイできます。
Google Cloud は、スケーラビリティの高いアプリケーションの構築に役立つさまざまなサービスを提供しています。これらのサービスの多くには自動スケーリング機能が組み込まれているため、基盤となるインフラストラクチャを管理する必要はありません。


