このトピックでは、コストインサイト機能を使用して、企業の実際のビジネス状況に基づいてクラウドネイティブアーキテクチャにおける IT 支出を正確に計算する方法について説明します。 コストインサイト機能により、企業はクラウドネイティブテクノロジーの柔軟性と高性能を活用し、コストを効率的に管理および制御できます。
前提条件
Kubernetes 1.18.8 以降でContainer Service for Kubernetes (ACK) クラスタが作成されている。既存のクラスタをアップグレードするには、「ACK クラスタを手動でアップグレードする」をご参照ください。
Prometheus メトリックデータの保存期間がコストガバナンスサイクルよりも長いことを確認します。必要に応じて、「メトリックデータの保存期間を変更する」をご参照ください。
背景情報
従来の IT ガバナンスシナリオでは、アプリケーションは通常、ノード、Server Load Balancer (SLB) インスタンス、ストレージリソースなど、一連のクラウドリソースへの排他的アクセス権を持っています。 これらのクラウドリソースは個別に課金されるため、コスト追跡はより簡単でシンプルです。
クラウドネイティブ時代では、リソースは異なるモードで消費されます。 1 つのノードで異なるアプリケーションのコンテナーを同時に実行でき、ノードのネットワークリソースとストレージリソースをこれらのアプリケーションで共有できます。 リソース共有モードはコスト配分の複雑さを増し、コストを各業務部門に明示的に配分できないことを意味します。 その結果、コストインサイトと管理が複雑になります。
ACK は、ビジネスコストを正確に計算するのに役立つ汎用のコストデータモデルを提供します。 コストインサイト機能の仕組みを以下に示します。
まず、各ポッドで使用されているリソースを分析して、各ポッドのコストを推定します。 リソースには、CPU、メモリ、ストレージリソースが含まれます。
次に、すべてのリソースのコストを含むクラスタの総コストを、推定コストに基づいて各ポッドに比例配分します。 クラスタの総コストを比例配分することで、ポッドあたりのクラスタコストを取得できます。
最後に、コストガバナンスサイクル内で業務部門に関連付けられているすべてのポッドのコストを合計することで、業務部門のコストを取得できます。
シナリオ
次の図は、企業が ACK クラスタにアプリケーションをデプロイしていることを示しています。 企業には 4 つの部門があります。部門 A はアプリケーション A を担当し、部門 B と部門 C はアプリケーション B を担当し、部門 D はアプリケーション C とアプリケーション D を担当しています。
アプリケーション A とアプリケーション B は、安定したトラフィック負荷を処理するための Web サービスを提供するため、サブスクリプション Elastic Compute Service (ECS) インスタンスにスケジュールされます。 アプリケーション C とアプリケーション D は、ビジネスデータの処理と分析に柔軟なリソースが必要なため、従量課金制 ECS インスタンスにスケジュールされます。
コストインサイト機能を使用してコストを管理および最適化する
コストインサイトダッシュボードを使用して部門とアプリケーションのコストを表示する方法を以下に示します。
手順 1:コストガバナンスサイクルを決定する
クラスタコストガバナンスサイクルを決定する:
ECS インスタンスは 2 つの課金サイクルをサポートしています。 サブスクリプションインスタンスは月単位または週単位で課金されます。 従量課金制インスタンスは時間単位で課金されます。 このトピックでは、クラスタにはサブスクリプション ECS インスタンスと従量課金制 ECS インスタンスが含まれています。 クラスタの総コストを表示するには、コストガバナンスサイクルを月単位に設定する必要があります。 課金データをより適切に比較および分析するために、ECS の課金日をコストガバナンスの開始日と終了日として使用します。
部門またはアプリケーションのコストガバナンスサイクルを決定する:
部門 A、B、および C は、サブスクリプション ECS インスタンスでサービスを実行しています。 これらの部門のコストを表示するには、コストガバナンスサイクルを月単位に設定する必要があります。
部門 D は、従量課金制 ECS インスタンスでサービスを実行しています。 部門のコストを表示するには、コストガバナンスサイクルを日単位に設定する必要があります。
アプリケーションコストを表示するには、アプリケーションが属する部門に基づいてコストガバナンスサイクルを決定できます。
手順 2:ビジネスタイプに基づいてコスト配分ポリシーを決定する
ビジネスコストを計算する場合、ビジネスに関連付けられているポッドのコストを推定する必要があります。 ACK は、単一リソースコスト推定と加重リソースコスト推定の 2 つのコスト推定ポリシーを提供します。
ポリシー | 説明 | シナリオ |
CPU またはメモリでコストを推定する | このポリシーは、クラスタの CPU またはメモリのウォーターマークがもう一方よりもはるかに高いシナリオに適しています。 このポリシーは、クラスタ内のほとんどのアプリケーションが 1 種類のリソースのみを使用するシナリオにも適しています。 | |
推奨される重みまたはカスタム重みに基づいて CPU とメモリでコストを推定する。 | このポリシーは、クラスタの CPU ウォーターマークがメモリのウォーターマークに近いシナリオに適しています。 このポリシーは、クラスタ内のアプリケーションが両方のタイプのリソースを使用するシナリオにも適しています。 |
デフォルトでは、単一リソースコスト推定ポリシーは、クラスタ内のほとんどのアプリケーションが 1 種類のリソースのみを使用するシナリオに適しています。 クラスタ内のアプリケーションが CPU リソースのみを使用する場合は、単一リソースコスト推定ポリシーを選択できます。
さまざまなシナリオでのコスト推定ポリシーの選択方法の詳細については、「コスト推定ポリシー」をご参照ください。
手順 3:クラスタコストを表示する
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけ、その名前をクリックします。左側のペインで、 を選択します。
[コストインサイト] ページの [クラスタディメンション] タブで、次のフィルター条件を設定してクラスタコストを表示します。
[実際/元の請求額]:クラスタコストを計算する方法を選択します。 この例では、[割引適用後の実際の請求コスト] が選択されています。
時間範囲:この例では、時間範囲を [2024-05-01 00:00:00 から 2024-05-31 23:59:59] に設定します。
[月間累積費用 - 割引適用後の実際の請求コスト] セクションで、2024 年 5 月のクラスタの総コストを表示します。

手順 4:部門コストを表示する
[コストインサイト] ページで、[名前空間ディメンション] タブをクリックし、次のフィルター条件を構成して名前空間コストを表示します。
[名前空間 (Namespace)]:部門で使用されている名前空間を選択します。 この例では、[default] 名前空間が選択されています。
[実際/元の請求額]:名前空間のコストを計算する方法を選択します。 この例では、[割引適用後の実際の請求コスト] が選択されています。
時間範囲:この例では、時間範囲を [2024-05-31 00:00:00 から 2024-05-31 23:59:59] に設定します。
この例の部門 D は、リソース需要が変動しています。 2024-05-31 など、日数を指定して部門 D の日次コストを表示することもできます。
[名前空間料金 - 割引適用後の実際の請求コスト] セクションで、部門のコストを表示できます。

手順 5:アプリケーションコストを表示する
[コストインサイト] ページで、[アプリケーションディメンション] タブをクリックし、次のフィルター条件を設定してアプリケーションコストを表示します。
[名前空間 (Namespace)]:アプリケーションの名前空間を選択します。 この例では、[default] 名前空間が選択されています。
[ラベルペアフィルター (LabelSelector)]:アプリケーションラベルを指定します。
時間範囲:この例では、時間範囲を 2024-05-31 10:00 から 2024-05-31 16:59 に設定します。
この例のアプリケーション C と D の日次コストは、ビジネス要件により変動します。 したがって、2024 年 5 月 31 日の 10:00 から 16:59 など、1 日の時間帯を指定して、指定された時間帯のコストを表示する必要があります。
[アプリケーションコスト] セクションで、アプリケーションコストを表示できます。

FAQ
コストインサイト機能を有効にした後、前月または前週のコストデータが見つからないのはなぜですか?
コストインサイト機能は、機能を有効にした後にデータの収集を開始します。 サービスを有効にする前に保持されていた既存データはありません。
表示される既存コストが実際のコストよりも低いのはなぜですか?
デフォルトでは、Managed Service for Prometheus はデータを 15 日間保存します。 指定した時間範囲が Managed Service for Prometheus の保存期間内であることを確認してください。 そうでない場合、既存コストは実際のコストよりも低くなる可能性があります。 15 日間を超えてデータを保存する場合は、「メトリックのデータサンプルの保存期間を変更するにはどうすればよいですか?」をご参照ください。
参照
コストインサイトダッシュボードに加えて、Allocation API を呼び出して部門とアプリケーションのコストをクエリすることもできます。 Allocation API を使用すると、名前空間、コントローラー、ラベル、およびポッド別にコストインサイトデータを集計できます。
コストインサイトメトリックの詳細については、「クラスタコスト分析」、「名前空間コスト分析」、「ノードプールコスト分析」、および「アプリケーションコスト分析」をご参照ください。
コンテナーのリソースリクエストと制限の構成を簡素化するために、リソースプロファイリングを使用して、個々のコンテナーのリソース構成に関する推奨事項を取得できます。 これは、アプリケーションリソース構成の調整に役立ちます。
マルチクラウドおよびハイブリッドクラウドのシナリオでは、異なるクラウドベンダーのリソース、またはオンプレミス環境のリソースも使用されます。 これらのシナリオでの統合ビューによるリソース監視とコスト管理は困難になります。 Distributed Cloud Container Platform for Kubernetes (ACK One) を使用してハイブリッドクラウドコストを管理する方法の詳細については、「クラスタコストインサイト」をご参照ください。