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

どうも、Shinyaです。この記事では、Amazon EC2やElastic 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と連携することでトラフィックの分散と最適化が実現されます。
参考リンク:
