弾力性とは

弾力性(Elasticity:エラスティシティ)とは、クラウドコンピューティングにおいて、システムの負荷( need )の変動に合わせて、ITリソース(サーバーの台数や処理能力)を「自動的かつ瞬時に、拡張および縮小できる能力」のことです。 スケーラビリティ(拡張性)が主に「負荷増加時にシステムを大きくできる能力」に焦点を当てているのに対し、弾力性は「ゴムひものように伸び縮みする」という言葉の通り、需要が増えたら即座にリソースを増やし(スケールアウト)、需要が減ったら不要なリソースを即座に減らす(スケールイン)という双方向の柔軟性を意味します。 この弾力性があるおかげで、企業は「必要な時に、必要な分だけのITリソース」を利用し、無駄なコストを削減することができます。
具体例
弾力性は、テーマパークやスーパーマーケットの「レジの稼働状況」に例えることができます。
- 弾力性がない場合(オンプレミス):年末年始の超繁忙期に合わせて、常に10台のレジと10人のスタッフを配置し続けます。閑散期の平日は客が少ないのに10人が暇を持て余しており、人件費(インフラ維持費)が大きな無駄になります。
- 弾力性がある場合(クラウド):平日の午前中はレジを2台だけ稼働させます。夕方になって客が急増すると、店長の指示(Auto Scaling)で裏からスタッフが駆けつけ、瞬時にレジを8台に増やします。波が引いて客が減ると、スタッフは裏に下がりレジを2台に戻します。
もう少し詳しく
弾力性は、クラウドの従量課金制(Pay-as-you-go)のメリットを最大化するための極めて重要な概念です。 従来のインフラ設計では、将来起こり得る最大のアクセス数(ピーク需要)を予想し、それに耐えられるだけの固定リソースを用意する「キャパシティの予測」が必要でした。これをプロビジョニングと呼びます。しかし予測は難しく、リソースが過剰であれば無駄なコストが発生し、不足すればシステムダウンによる機会損失を招きます。 弾力性を備えたクラウド環境であれば、キャパシティを事前に推測する必要はなくなります。実際の需要曲線にピタリと沿うようにリソースのプロビジョニング曲線を合わせることができるため、コストの最適化とシステムの安定稼働を両立できるのです。
AWSにおいてこの弾力性を実現する代表的なサービスが「Amazon EC2 Auto Scaling」です。CPU使用率やネットワークトラフィックなどのメトリクス(指標)を監視し、あらかじめ設定したしきい値を超えると自動的にEC2インスタンス(仮想サーバー)を追加起動し、しきい値を下回ると自動的にインスタンスを終了させます。 弾力性(Elasticity)は、AWSのサービス名に「Elastic」という単語が頻繁に使われている(Amazon EC2, Elastic Load Balancing, Elastic Beanstalkなど)ことからもわかる通り、AWSの根幹をなす設計思想です。
試験でのポイント
CLF-C02試験において「弾力性(Elasticity)」は頻出キーワードです。「必要なときにリソースを増やし、不要になったら減らすことでコストを最適化する能力」という説明文が出たら、迷わず弾力性を選んでください。 「スケーラビリティ」との引っ掛け問題に注意が必要です。スケーラビリティは単に「拡張できる能力」ですが、弾力性は「需要に合わせた自動的な拡張と縮小(スケールイン・スケールアウト)」を強調する概念です。 また、「キャパシティの予測が不要になる」というクラウドの主要なメリットは、この弾力性によってもたらされていることを紐付けて覚えておきましょう。
関連する用語
システムを拡張する能力である「スケーラビリティ」、リソースを自動的に増減させる「Amazon EC2 Auto Scaling」、およびコストの無駄を省くための「従量課金」という概念と強く関連しています。