COST 9: どのように需要を管理し、リソースを供給しますか?
費用とパフォーマンスのバランスが取れたワークロードを作成するには、費用を掛けたすべてのものが活用されるようにし、使用率が著しく低いインスタンスが生じるのを回避します。利用が過剰でも過少でも偏りが生じると、運用コスト
(利用過剰によるパフォーマンスの低下) または無駄な AWS 費用 (過剰なプロビジョニング) のいずれかで、組織に悪影響が及びます。
リソース
Getting started with Amazon SQS
AWS Auto Scaling
AWS Instance Scheduler
ベストプラクティス:
-
ワークロードの需要に関する分析を実行する: ワークロードの需要を経時的に分析します。この分析では、季節的傾向を考慮に入れ、ワークロードのライフタイム全体にわたる動作条件を正確に反映させます。分析を行う際には、費やされた時間がワークロードのコストに比例しているなどの潜在的利益を織り込む必要があります。
-
需要を管理するためのバッファまたはスロットルを実装する: バッファリングとスロットリングは、ワークロードの需要を修正し、ピークを滑らかにします。クライアントが再試行を実行するときにスロットリングを実行します。バッファリングは、リクエストを保存し、後日まで処理を延期するために実装します。スロットルとバッファが、クライアントが要求された時間内にレスポンスを受け取るように設計されていることを確認します。
-
リソースを動的に供給する: リソースを計画的なやり方でプロビジョニングします。これは、自動スケーリングなどの需要ベース、または需要が予測可能でリソースが時間に基づいて提供される時間ベースで行います。これらの手法を使用すると、過剰プロビジョニングやプロビジョニング不足を最小限に抑えることができます。
改善計画
ワークロードの需要に関する分析を実行する
既存のワークロードデータを分析する :
既存のワークロード、以前のバージョンのワークロード、または予測された使用パターンのデータを分析します。ログファイルとモニタリングデータを使用して、顧客がワークロードをどのように使用しているかについての洞察を得ます。一般的なメトリクスは、実際の需要、1
秒あたりのリクエスト数、需要率が変化し、または異なるレベルとなるタイミング、および需要の変化率です。ワークロードの全サイクルを分析し、月末や年末のイベントなどの季節的な変化のデータを収集します。分析に反映される労力は、ワークロードの特性を反映する必要があります。最大の労力は、需要に最も大きな変化がある価値の高いワークロードに割り当てられる必要があります。需要の変化が最小である低価値のワークロードには、最小の労力を割り当てる必要があります。価値の一般的なメトリクスは、リスク、ブランド認知、収益、ワークロードのコストです。
外部の影響を予測する :
組織全体において、ワークロードの需要に影響を与え、または変化させる可能性のあるチームメンバーとミーティングを行います。一般的なチームは販売、マーケティング、ビジネス開発です。当該メンバーと協力して、業務のサイクルや、ワークロードの需要を変化させるイベントがあるかどうかを把握します。このデータを使用してワークロードの需要を予測します。
需要を管理するためのバッファまたはスロットルを実装する
クライアントの要件を分析する :
クライアントリクエストを分析して、再試行を実行できるかどうかを判断します。再試行を実行できないクライアントの場合、バッファを実装する必要があります。全体的な需要、変化率、および要求される応答時間を分析して、必要なスロットルまたはバッファのサイズを決定します。
バッファまたはスロットルを実装する :
ワークロードにバッファまたはスロットルを実装します。SQS などのキューは、ワークロードコンポーネントにバッファを提供できます。Amazon API Gateway
は、ワークロードコンポーネントのためにスロットリングを提供できます。
Amazon Simple Queue Service
Amazon API Gateway
リソースを動的に供給する
時間ベースのスケジューリングを設定する : 需要の変化を予測できるため、時間ベースのスケーリングは適切な量のリソースを適時に提供できます。また、リソースの作成と設定が、需要の変化に対応するのに十分ではない場合にも役立ちます。ワークロード分析を活用して、AWS
Auto Scaling を使用してスケジュールに基づくスケーリングを設定します。
Scheduled Scaling for Amazon EC2 Auto Scaling
Auto Scaling を設定する : アクティブなワークロードメトリクスに基づいてスケーリングを設定するには、Amazon Auto Scaling を使用します。分析を使用して、正しいリソースレベルでトリガーするように
Auto Scaling を設定し、ワークロードが要求された時間内にスケールすることを確認します。
Getting Started with Amazon EC2 Auto Scaling