Cost Advisor(プレビュー)

By 清水 孝郎 - DECEMBER 18, 2022

SHARE:

本文の内容は、2022年12月19日現在のCost Advisor (Preview)(https://docs.sysdig.com/en/docs/sysdig-monitor/advisor/cost-advisor-preview/)を元に日本語に翻訳・再構成した内容となっております。

Cost Advisorは、Kubernetes環境の予測可能なコスト分析およびコスト削減の見積もりを提供します。

Cost Advisorは、当社のSaaSユーザーのみが利用可能です。現在、オンプレミス環境では本機能をご利用いただけません。


ユースケース

Cost Advisorは、次のようなユースケースを洞察するのに役立ちます。

  • Kubernetesクラスター内でコンピュート(EC2インスタンスなど)を実行するコストはどれくらいか?
  • アプリケーション/ワークロード/ネームスペースに必要なコンピュートの実行コストはどれくらいか?
  • ワークロードの実行コストを削減するには、適切なサイジングをどのように行えばよいでしょうか?


サポートされている環境

現在のところAWSのみ対応しています。GCPやAzureへの対応は積極的に進めています。

  • Cost Advisorを利用するには、Sysdig Agentが必要です。Sysdig Agentは、リソースの使用状況を収集し、課金データを付加して表示します。Cost Advisorに必要な明示的な設定はありません。
  • Kubernetesクラスターは、AWS、GCP、またはAzureで実行されている必要があります。マネージドクラスター(EKSなど)とバニラKubernetes(KOPSなど)の両方がサポートされています。

コンセプト

コスト配分

コスト配分は、ワークロードとその関連ネームスペースに適用され、リソース要件に応じて現在配分されているコストを表示します。ワークロードのコスト配分は独立して計算され、「論理コスト」と見なすことができるため、インフラストラクチャーのコストとは異なることに注意してください。

ワークロードは、設定されたリクエストを超えることがあるため(つまり、リクエスト数よりも多く、リソースリミットよりも少ないものを使用してオーバーコミットされている)、コスト配分は現在、リクエストと使用量を評価し、指定された期間について大きい方を取ることによって毎日計算されています。

コスト配分は、計算(メモリとCPU)を考慮します。将来的には、ストレージ、ネットワーク/ロードバランサー費用、その他の関連インフラストラクチャー費用など、他の費用も考慮する予定です。

CPUコスト0.02ドル/時間、メモリーコスト0.003ドル/時間(オンデマンド価格)で、5CPUコア、16GBメモリーをt3.mediumで稼働させるワークロードのコスト配分例です。

.

Day  計算コスト
Day 1リクエストされたCPU: 5 CPU ($0.10/hr)
実際のCPU使用量:2CPU(0.04ドル/時)
リクエストされたメモリ:16GB (0.048ドル/時間)
実際のメモリ使用量:6GB (0.018ドル/時間)

リクエストは使用量より多いので、実際の使用量は無視されます。コスト計算のためにリクエストを考慮します。
CPU cost: $2.40
Memory cost: $1.15
Daily Cost: $3.55
Day 2リクエストされたCPU: 5 CPU ($0.10/hr)
実際にCPUを使用量:12CPU(0.24ドル/時)
リクエストされたメモリ:16GB ($0.048/hr)
実際のメモリ使用量:6GB (0.018ドル/時)

メモリのリクエストは使用量よりも多いのですが、実際のCPU使用量はリクエストよりも多くなっています。この場合、実際のCPU使用量とメモリリクエスト量を考慮します。
CPU cost: $5.76
Memory cost: $1.15
Daily Cost: $6.91
Day 3リクエストされたCPU: 5 CPU ($0.10/hr)
実際のCPU使用量:12CPU(0.024ドル/時)
リクエストされたメモリ:16GB ($0.048/hr)
実際のメモリ使用量:25GB ($0.075/hr)

実際のメモリ使用量とCPU使用量は、どちらもリクエストより多い(つまりオーバーコミット)ことがわかります。ここでは、実際のCPUとメモリの使用量を考慮します。
CPU cost: $5.76
Memory cost: $1.80
Daily Cost: $7.56

効率メトリクス


リソースの効率

リソース効率は、CPUとメモリの両方のリクエストと使用量を計算し、1つのスコアを生成します。これは、ワークロードがリクエストされたリソースをどれだけうまく使用しているかを示します。リソース効率の姿勢は、次の括弧に入れられます。
説明
0 (no data)CPUまたはメモリリクエストが設定されていない場合、0と表示されます。
0-20低い値は、作業負荷がオーバーサイズであることを示し、適切なサイジングの良い候補である可能性があります。
20-70ワークロードのリソース効率は改善される可能性があります。
70-120良好なリソース効率 – 改善の余地はありますが、これは良いスコアです。
120 or higher高い値(120以上)は、ワークロードがリクエストされたよりも多くのリソースを消費しているため、リソース飢餓またはポッドevictionに陥る可能性があることを示します。

CPUリクエスト

過去10分間のリクエストに対するCPUの平均使用率。リクエストが設定されていない場合は、ゼロと表示されます。
例:

CPU Requests = sum workload CPU usage over the last 10 minutes / sum workload CPU requests


メモリリクエスト

過去10分間のリクエストに対するメモリの平均使用量です。リクエストが設定されていない場合は、ゼロが表示されます。
例:

Memory Requests = sum workload memory usage over the last 10 minutes / sum workload memory requests


CPUリクエスト、メモリリクエスト、およびリソース効率については、個々のワークロードレベルで計算されることに注意してください。つまり、ネームスペースを見る場合、これらの値は、同じスペース内のすべてのワークロードの集計値となります。

コスト削減

Cost Advisorは、インフラストラクチャーの変更を推奨することで、チームのコストを最適化します。

ワークロードの適切なサイジング

Cost Advisorは、コスト削減の可能性が最も高いワークロードの適切なサイジングの優先順位を決定するのに役立つ節約額を表示します。



クラスター上で実行されているすべてのワークロードについて、Cost Advisorは、リクエストに対する使用率を評価します。オーバーサイズのワークロード(使用量がリクエスト量より少ない)については、Cost Advisorを使用して、1)リクエストの適切なサイジングを行った場合のコスト削減を数値化し、2)ワークロードを適切なサイジング化するための推奨値を確認することができます。



Cost Advisorは、CPUとメモリのリクエストを推奨することで、ワークロードのコストのベースラインを設定するのに役立ちます。推奨値は、過去1日間にワークロード内で実行されたすべてのコンテナのP95使用量を調べることで計算されます。推奨値は、コンテナごとに提供されます(複数のコンテナを実行するPodの場合)。

現在、コスト削減を達成するための推奨事項は、過去 1 日間の P95 の使用量に基づいています。この推奨を生成する方法をカスタマイズするためのサポートは近日中に提供される予定です。