PERF02-BP05 コンピューティングリソースを動的にスケールする - AWS Well-Architected Framework

PERF02-BP05 コンピューティングリソースを動的にスケールする

クラウドの伸縮性を利用して、ニーズに合わせてコンピューティングリソースを動的にスケールアップまたはスケールダウンすることで、ワークロードのキャパシティが過剰または過少になるのを防ぐことができます。

一般的なアンチパターン:

  • アラームに対応するために手動でキャパシティを増やす。

  • オンプレミスと同じサイズ設定ガイドライン (通常は静的インフラストラクチャ) を使用する。

  • スケーリングイベントの後、スケールダウンして元に戻すのではなく、キャパシティを増加させたままにする。

このベストプラクティスを活用するメリット: コンピューティングリソースの伸縮性を設定してテストすることで、コストの節約、パフォーマンスベンチマークの維持、トラフィックの変化に応じた信頼性の向上に役立ちます。

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

AWS は、需要の変化に対応するためのさまざまなスケーリングメカニズムを通じて、リソースを動的にスケールアップまたはスケールダウンする柔軟性を備えています。コンピューティング関連のメトリクスと組み合わせると、動的スケーリングにより、ワークロードが自動的に変化に対応し、最適なコンピューティングリソースを使用して目標を達成できるようになります。

リソースの需要と供給は、さまざまなアプローチで一致させることができます。

  • ターゲット追跡アプローチ: スケーリングメトリクスをモニタリングし、必要に応じて容量を自動的に増減します。

  • 予測スケーリング: 日単位および週単位の傾向を見越してスケールします。

  • スケジュールベースのアプローチ: 予測できる負荷の変化に従って、独自のスケーリングスケジュールを設定します。

  • サービススケーリング: 設計により自動的にスケーリングされるサービス (サーバーレスなど) を選択します。

ワークロードのデプロイメントで、確実にスケールアップおよびスケールダウンイベントを対処できるようにしてください。

実装手順

  • コンピューティングインスタンス、コンテナ、関数のいずれにも、伸縮性の仕組みが備わっています。サービスの機能として実装されている場合も、自動スケーリングと組み合わせて実現する場合もあります。自動スケーリングメカニズムの例を次に示します。

    自動スケーリングメカニズム 使用する場所
    Amazon EC2 Auto Scaling アプリケーションのユーザー負荷の処理に必要な適切な数の Amazon EC2 インスタンスを確保する。
    Application Auto Scaling Amazon Elastic Container Service 関数や Amazon Elastic Container Service (Amazon ECS) サービスなど、Amazon ECS 以外の個別の Amazon Elastic Container Service サービス 自動的に スケーリング する。
    Kubernetes Cluster Autoscaler/Karpenter Kubernetes クラスターを自動的にスケーリングする。
  • スケーリングは大抵、Amazon EC2 インスタンスや AWS Lambda 関数などのコンピューティングサービスに関連して取り上げられます。AWS Glue のようなコンピューティング以外のサービスの設定も、 需要に合わせて 考慮するようにしてください。

  • スケーリングのメトリクスが、デプロイされているワークロードの特性と一致していることを確認します。動画トランスコーディングアプリケーションをデプロイしようとする場合、100% の CPU 使用率が想定されるため、プライマリメトリクスにするべきではありません。代わりに、トランスコーディングジョブのキュー深度を使用してください。必要な場合は、スケーリングポリシーとして カスタマイズされたメトリクス を使用できます。適切なメトリクスを選ぶには、Amazon EC2 の以下のガイダンスを考慮してください。

    • メトリクスは有効な利用率メトリクスでなければならず、インスタンスのどの程度ビジーかを記述する必要があります。

    • メトリクス値は、Auto Scaling グループ内のインスタンス数に比例して増減する必要があります。

  • 必ず 手動スケーリング ではなく 動的スケーリング を Auto Scaling グループに使用します。また、動的スケーリングでは、 ターゲット追跡スケーリングポリシー を使用することをお勧めします。

  • ワークロードのデプロイがスケーリングイベント (アップとダウン) の両方に対応処理できることを確認します。例えば、 アクティビティ履歴 を使用して、Auto Scaling グループのスケーリングアクティビティを確認することができます。

  • ワークロードを評価して予測可能なパターンを見つけ、あらかじめわかっていた、および計画的な需要の変化を予測してプロアクティブにスケールします。予測スケーリングを使用すると、容量を過剰にプロビジョニングする必要がなくなります。詳細については、 「Amazon EC2 Auto Scaling での予測スケーリング」を参照してください。

リソース

関連ドキュメント:

関連動画:

関連する例: