メインコンテンツまでスキップ

クラウドにおけるElasticとスケーリングの基礎 - 垂直スケーリングと水平スケーリング

· 約6分
Shinya Kato
DayoneLabs管理人、ソフトウェア開発者、OSS開発者

クラウドにおけるElasticとスケーリングの基礎 - 垂直スケーリングと水平スケーリング

どうも、Shinyaです。この記事では、Amazon EC2Elastic Load Balancingのサービス名にも使われている「Elastic(伸縮性)」の概念と、クラウドにおけるスケーリングの仕組みについて整理します。AWSに限らず、クラウドコンピューティングの根幹となる考え方です。

この記事はこんな人にオススメ
  • クラウドにおけるElasticの概念を理解したい人
  • 垂直スケーリングと水平スケーリングの違いを知りたい人
  • Amazon EC2のオートスケーリングの仕組みに興味がある人
  • AWSのインフラ構成を学び始めた人

Elasticとは

Elasticは「伸縮性」を意味する言葉で、クラウドコンピューティングにおいてはリソースを需要に応じて柔軟に拡大・縮小できる特性を表します。Amazon EC2の「E」(Elastic Compute Cloud)やElastic Load Balancingの「Elastic」は、この特性に由来しています。

Elasticはスケーリングを包括する概念であり、Elasticという特性の下でスケーリングが実行されます。

スケーリングとは

スケーリングとは、サービスの需要に応じてコンピューティングリソースの規模を調整することです。需要が増加した場合にはメモリの増強やノード数の追加を行い、需要が減少した場合には不要なリソースを削減します。

オンプレミス環境ではこれらのスケーリングをすべて手動で行う必要がありますが、EC2のようなクラウドの仮想サーバーにはオートスケーリングの仕組みが組み込まれており、需要に応じて自動的にスケーリングが実行されます。

Elasticとスケーリングの関係

Elasticの概念とスケーリングの種類の関係を以下の図に示します。

スケーリングの種類

スケーリングには大きく分けて垂直スケーリング水平スケーリングの2種類があります。

種類操作内容EC2でのオートスケーリング
垂直スケーリングスケールアップ / スケールダウンサーバー1台のスペックを変更対象外(手動で実施)
水平スケーリングスケールアウト / スケールインサーバーの台数を増減対象(自動で実施)

垂直スケーリング(スケールアップ / スケールダウン)

垂直スケーリングは、サーバーのCPU、メモリ、ストレージなどのスペックを調整する方法です。

スケールアップでは増強した分だけサーバーの処理能力が向上します。しかし、サーバー1台あたりのリソース増強には物理的な限界があるため、大規模な需要の増加には対応しきれない場合があります。そのような場合は、水平スケーリングが重要になります。

EC2におけるオートスケーリングでは、垂直スケーリングは自動化の対象外です。ユーザーが必要に応じてEC2インスタンスタイプを変更することで対応します。

水平スケーリング(スケールアウト / スケールイン)

水平スケーリングは、需要の増減に応じてEC2インスタンスの稼働数を調整する方法です。EC2インスタンスをノードとして捉え、ノード数を増減させるとも表現できます。

水平スケーリングはEC2 Auto Scalingによる自動化の対象です。例えば、稼働中のEC2インスタンスに急激な需要の増加があった場合、デフォルトまたはユーザーが事前に設定した条件に基づいて、自動的に必要な数のEC2インスタンスが追加・起動されます。これにより、ECサイトの繁忙期のような急激なトラフィック増加にも対応できます。逆に需要が減少した場合は、不要になったEC2インスタンスが自動的に停止されます。

こうしたEC2インスタンスの増減に伴うトラフィックを適切に分散し最適化するために、Elastic Load Balancing(ELB)が使用されます。

垂直スケーリングと水平スケーリングの使い分け

垂直スケーリングは手軽に対応できる反面、1台のサーバーの性能には上限があります。一方、水平スケーリングは台数の追加で対応するため、理論上の上限が高く大規模なトラフィック増加にも対応可能です。クラウド環境では、オートスケーリングによって自動化できる水平スケーリングが主要なスケーリング戦略として採用されます。

関連記事

まとめ

この記事では、クラウドコンピューティングにおけるElastic(伸縮性)の概念と、スケーリングの2つの種類について整理しました。Elasticは需要に応じてリソースを柔軟に拡大・縮小できる特性であり、その下で垂直スケーリング(スペックの変更)と水平スケーリング(台数の増減)が実行されます。EC2のオートスケーリングでは水平スケーリングが自動化の対象であり、ELBと連携することでトラフィックの分散と最適化が実現されます。


参考リンク:

免責事項:
当記事は管理人の開発時に書き留められたメモをもとにAIを活用して編纂されたものです。 管理人は記事の公開前に内容の校正・校閲を行い、記事の信頼性と正確性の向上に務めますが、それらを保証するものではありません。 また、当記事の編集時の誤字やコード例の不具合等によって読者が何らかの損害等を被った場合でも、管理人は一切の責任を負いません。 当記事に掲載したコンテンツの利用については自己責任でお願い致します。