キャパシティとスケーラビリティとは
キャパシティとスケーラビリティは、将来の需要を予測し、サービスに必要な処理能力とリソースを適切な時期に確保するための取り組みです。
事業指標をシステムのリソース要件へ変換し、十分な冗長性を持たせて配備したうえで、負荷・ストレステストと実績値を用いて計画の精度を継続的に改善します。
なお、このチェックリストは必ずしもすべて導入しなければならないわけではなく、むしろプロジェクトの性格に合わせて無理のない範囲で実践するものであることに留意ください。
背景
利用者やデータ量が増えてからリソース不足に対応すると、調達や設計変更が間に合わず、性能低下や停止につながる可能性があります。一方、過大な余裕を持たせ続けると、不要なコストが発生します。
そのため、事業計画と利用実績から中長期の需要を予測し、サービスのどこが最初に限界へ達するかを把握する必要があります。予測と実績の差を評価し、定期的に計画を見直すことが重要です。複数の利用者でサービスを共用する場合は、利用者ごとのクォータやレート制限を定め、一部の利用者による過剰な利用が他の利用者へ影響しないようにします。
SREアセスメントでは、キャパシティとスケーラビリティに関する以下の事項を確認します。
チェックリスト
| チェック項目 |
|---|
| 過去の利用状況、成長予測、ビジネス要件にもとづいて将来の需要と必要キャパシティを見積もり、定期的に計画を見直しているか |
| 想定する利用量と性能目標から必要なリソース量を見積もり、負荷・ストレステストによってその見積もりとシステムの限界を検証しているか |
| リソース利用率を継続的に監視し、実際の需要に合わせた適正化によって性能上のボトルネックと過剰なコストを抑えているか |
| 必要なキャパシティを見積もって十分な冗長性を持たせて配備し、負荷試験と利用率の監視によって容量の妥当性を継続的に検証しているか |
| 【複数利用者で共用する場合】利用者ごとのクォータやレート制限を定義・適用し、一部の利用者による過剰な利用が他の利用者へ影響しないようにしているか |
対応によって得られる効果
キャパシティを計画的に管理することで、需要増加に伴う性能低下やリソース枯渇を事前に予測し、必要な対応を余裕を持って進められます。
また、予測、負荷テスト、実績を結び付けることで、必要な信頼性を維持しながら過剰なリソースを減らし、性能とコストのバランスを継続的に改善できます。
