弾力性とスケーラビリティを理解する
店のレジを考えると、客が増えても追加のレジで対応できるのが拡張性です。昼の混雑では台数を増やし、夕方には減らすように需要へ合わせる性質が弾力性です。クラウドでも処理能力の拡大と需要への追随を区別すると、必要な構成を説明できます。
この単元で学ぶこと
- 拡張性と弾力性を需要の変化から区別できる
- スケールアップとスケールアウトを具体例で説明できる
- Auto Scalingと負荷分散の役割と適用条件を説明できる
本文解説
拡張性は処理能力を大きくできること スケーラビリティは、仕事量が増えたときに必要な能力へ拡大できる性質です。会員数が毎年増えるサービスなら、より高性能なインスタンスや複数台の構成へ広げられるかを考えます。ただし「将来10倍へ増やせる」というだけでは、毎晩の閑散時に資源を減らす仕組みまでは説明していません。
弾力性は上下する需要へ合わせること 昼には多く、夜には少ないといった需要の変動に合わせて、資源を増やしたり減らしたりする性質が弾力性です。ピークに耐えるだけでなく、不要な資源を解放することにも意味があります。大きなサーバーを一台用意して常に動かす構成は、ピークへ対応できても需要への追随ができているとは限りません。
縦に大きくするか、横に増やすか スケールアップは1台のCPUやメモリを増やす方法、スケールアウトは台数を増やす方法です。例えばメモリ8GiBから32GiBのインスタンスへ変更するのが前者、同じ性能のWebサーバーを2台から6台へ増やすのが後者です。前者には選べる最大サイズ、後者にはアプリが複数台で処理できるかという制約があります。
数値で必要台数を考える 学習用に、1台が安定して毎秒100件を処理できると仮定します。毎秒240件なら、能力だけを単純に割れば最低3台が必要です。毎秒80件へ下がれば単純計算は1台ですが、本番では故障への備えや余裕も考えます。計算上の最低台数と、可用性を満たす台数を同じものとしないことが大切です。
Auto Scalingは台数を調整する EC2 Auto Scalingでは、グループに最小・最大・希望する台数などを設定して、条件に応じて台数を調整できます。利用者は負荷の指標、上下限、増減の方針を決めます。最大台数が小さければそれ以上には増えず、起動にも時間が必要です。「自動」という名称は無制限かつ瞬時の拡大を意味しません。
負荷分散は増やした先へ仕事を渡す ロードバランサーは、到着する要求を複数の処理先へ分散します。Auto Scalingの台数調整とは役割が違います。ロードバランサーだけを追加しても処理先の台数は増えません。複数のWebサーバーが同じ仕事を受け持てるよう、利用者のログイン状態などを特定の1台だけに依存させない工夫も必要です。
可用性・俊敏性との比較 拡張性は能力を増やせるか、弾力性は需要へ増減を合わせられるかという観点です。可用性は必要なときに利用できるか、俊敏性は環境の用意や試行を速く進められるかという別の観点です。同じクラウド構成が複数の利点を持っていても、質問が需要の上下を重視するなら弾力性が直接の説明になります。
例題:Webだけを増やしても遅い Webサーバーを2台から8台へ増やしても、共通のデータベースが処理の限界に達していれば応答は改善しないことがあります。全体のどこが詰まっているかを確認し、必要な箇所を改善します。台数を増やせることだけを理由にシステム全体が無限に速くなるとは考えません。
図解
重要ポイント
- 拡張性は能力の拡大、弾力性は需要への増減追随を表す。
- スケールアップは1台の増強、スケールアウトは台数の増加。
- Auto Scalingが台数を調整し、負荷分散が要求を処理先へ配る。
- 起動時間・上限・状態管理・ボトルネックを確認する。
間違えやすい点
- ピークに合わせて常時大容量にするだけで弾力的と判断しない。
- ロードバランサーを台数増加そのものと混同しない。
- 計算上の最低台数で障害時の可用性まで満たすとは限らない。
用語解説
- スケーラビリティ(拡張性)
- 仕事量が増えたときに、資源を増強することで必要な処理能力を拡大できる性質。
- 弾力性(エラスティシティ)
- 需要の増減に合わせて資源量を増やし、需要が減れば縮小できる性質。
- スケールアップ
- 1台のCPUやメモリなどを増強すること。
- スケールアウト
- 処理するインスタンスなどの台数を増やすこと。減らす操作はスケールインという。
- ボトルネック
- 全体の処理能力を制限する箇所。Webサーバーを増やしても、データベースが限界なら全体が速くならない場合がある。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。