すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:コスト推定ポリシーの概要

最終更新日:Mar 01, 2026

Container Service for Kubernetes (ACK) クラスター上で実行される Pod はクラウドリソースを共有します。単一の Pod が複数のリソースを消費することもあれば、単一のリソースが複数の Pod にサービスを提供することもあります。部門やアプリケーションごとにクラスターのコストを割り当てるには、各 Pod のコストを計算する必要があります。

ACK コスト管理スイートでは、リソースウォーターマーク(リソース使用率)に基づいた 2 種類のコスト推定ポリシーを提供しています。各ポリシーは、個々の Pod や名前空間に帰属するクラスター全体のコストシェアを算出します。

コスト推定ポリシーの選択

ポリシー

コストの割り当て基準

推奨される状況

単一リソースコスト推定

CPU または メモリのいずれか一方

いずれかのリソースが支配的である場合。たとえば、CPU ウォーターマークがメモリウォーターマークよりもはるかに高い場合、またはほとんどのアプリケーションがメモリ集約型である場合。

加重リソースコスト推定

CPU および メモリ。それぞれの使用率に基づいて重み付け

CPU とメモリの使用率が近い場合、またはアプリケーションが両方のリソースタイプを消費する場合。

単一リソースコスト推定

コスト管理スイートのデフォルトポリシーです。このポリシーは、CPU またはメモリのいずれか一方のリソースディメンションに基づいて Pod のコストを計算します。

適用シナリオ

リソースウォーターマークとは、リクエストされたリソース量と割り当て可能なリソース総量の比率です。多くのクラスターでは、ある特定のリソースタイプがスケジューリングの判断を左右します。一方のリソースのウォーターマークが他方よりもはるかに高い場合、そのリソースがクラスターのコストを支配していることになります。

:Java ワークロードなどのメモリ集約型アプリケーションは大量のメモリをリクエストします。メモリウォーターマークが 90% に達した場合、Pod をスケジュールできるかどうかはメモリ供給量によって決まります。このとき、メモリコストはクラスター全体のコストの 90% を占めることになります。単一リソースコスト推定ポリシーは、このような関係を正確に捉えます。

Pod コストの計算

このポリシーでは、以下の数式を用いて Pod の CPU またはメモリコストを計算します。

image..png

名前空間コストの計算

名前空間は、共通フィールドを持つ関連する Pod をグループ化します。名前空間のコストは、その名前空間内のすべての Pod のコスト比率の合計に、クラスター請求書の支払総額を掛けた値となります。

名前空間コストの数式:

image..png

名前空間コスト比率の数式:

图片 1

加重リソースコスト推定

CPU とメモリの両方を用いて Pod のコストを計算し、クラスターレベルの使用率に基づいて重み付けを行います。これにより、ワークロードが両方のリソースタイプを消費する場合に、よりバランスの取れたコスト配分が可能になります。

適用シナリオ

以下の条件に該当する場合は、加重リソースコスト推定ポリシーを使用してください。

  • クラスターの CPU ウォーターマークとメモリウォーターマークが互いに近い値である場合。

  • クラスター内のアプリケーションは、CPU およびメモリリソースを消費します。

CPU コストとメモリコストが近い値である場合、それぞれのウォーターマークを比較することで、コスト配分における重み付けの妥当な根拠が得られます。

Pod コストの計算

加重リソースコスト推定ポリシーでは、Pod の CPU 重みとメモリ重みに基づいて Pod のコストを計算します。これらの重みは、クラスターレベルの CPU ウォーターマークおよびメモリウォーターマークから導出されます。

Pod コストの数式:

image..png

ウォーターマークおよび重みの数式

CPU ウォーターマーク、メモリウォーターマーク、CPU 重み、メモリ重みは、以下のように計算されます。

  • CPU ウォーターマーク(CPU 使用率):

    image..png

  • メモリウォーターマーク(メモリ使用率):

    image..png

  • CPU 重み:

    image..png

  • メモリ重み:

    image..png

ポリシー結果の比較

例 1:単一のリソースタイプが支配的

設定:クラスター内でメモリ集約型アプリケーションが 2 つ実行されています。

アプリケーション リクエスト vCore 数 リクエストメモリ量
App A 1 vCore 2 GB
App B 1 vCore 4 GB
  • メモリウォーターマーク:90%

  • CPU ウォーターマーク:20%

  • クラスターの日次コスト:USD 200

単一リソースコスト推定の結果

リソースディメンション Pod コスト 計算式 未割り当てコスト
メモリ USD 180 USD 200 × 90% USD 20
CPU USD 40 USD 200 × 20% USD 160

メモリに基づいてコストを割り当てると、クラスター全体コストの 90% をカバーできます。一方、CPU に基づいて割り当てると、80% が未割り当てとなりますが、これはクラスターのメモリのうちスケジューリングに利用可能な容量がわずか 10% しかないという事実と矛盾します。

加重リソースコスト推定の結果

  • メモリ重み:約 80%

  • CPU 重み:約 20%

  • Pod コスト:USD 152(USD 180 × 80% + USD 40 × 20%)

  • 未割り当てコスト:USD 48

結果:単一リソースコスト推定ポリシー(メモリ使用)では、USD 200 のうち USD 180 が割り当てられ、実際のリソース消費量に非常に近い結果が得られます。一方、加重ポリシーでは USD 152 しか割り当てられず、USD 48 が未割り当てとなります。単一のリソースが支配的なクラスターでは、単一リソースポリシーの方がより正確な結果をもたらします。

image

例 2:両方のリソースタイプが消費される

設定:クラスター内でメモリ集約型アプリケーションと CPU 集約型アプリケーションがそれぞれ 1 つずつ実行されています。

アプリケーション リクエスト vCore 数 リクエストメモリ量
App A 1 vCore 4 GB
App B 4 vCores 1 GB
  • CPU ウォーターマーク:40%

  • メモリウォーターマーク:50%

  • クラスターの日次コスト:USD 200

単一リソースコスト推定の結果

リソースディメンション Pod コスト 計算式
メモリ USD 100 USD 200 × 50%
CPU USD 80 USD 200 × 40%

加重リソースコスト推定の結果

  • メモリ重み:約 56%

  • CPU 重み:約 44%

  • Pod コスト:USD 91.2(USD 100 × 56% + USD 80 × 44%)

  • 未割り当てコスト:USD 8.8

結果:CPU とメモリのウォーターマークが近い値(40% と 50%)であることから、CPU コストとメモリコストがほぼ同等であることがわかります。加重ポリシーでは両方のディメンションを考慮し、未割り当てコストを USD 8.8 に抑えています。一方、単一リソースによる割り当てでは、USD 100 または USD 120 が未割り当てとなります。混合ワークロードを実行するクラスターでは、加重リソースポリシーの方がよりバランスの取れた結果をもたらします。

image

加重ポリシーによる未割り当てコストの削減

原因:一方のリソースのウォーターマークが他方よりもはるかに高い場合、未割り当てコストが発生します。支配的なリソースがボトルネックに達した一方で、もう一方のリソースはアイドル状態になります。たとえば、CPU ウォーターマークがメモリウォーターマークよりもはるかに高い場合、メモリリソースがアイドル状態になります。単一リソースコスト推定ポリシーでは、これらのアイドルリソースのコストを割り当てることができますが、加重ポリシーではそれができません。

解決策:ご利用のワークロードのリソースプロファイルに合った Elastic Compute Service (ECS) インスタンスタイプを選択してください。CPU ウォーターマークとメモリウォーターマークが互いに近い値になるように調整します。あるいは、単一リソースコスト推定ポリシーに切り替えてください。

コストデータ API