このトピックでは、実際の企業シナリオに基づき、Cost Insight を使用してクラウドネイティブアーキテクチャにおけるビジネスコスト配分をより正確に計算する方法を説明します。このアプローチにより、企業はクラウドネイティブ技術の柔軟性と効率性を享受しながら、コストを効果的に管理および制御できます。
前提条件
-
バージョン 1.18.8 以降のクラスターを作成します。詳細については、「クラスターの手動アップグレード」をご参照ください。
-
Prometheus のメトリック保存期間が、コストガバナンスサイクルよりも長いことを確認します。詳細については、「コストガバナンスサイクルの決定」および「メトリックの保存期間の調整」をご参照ください。
背景情報
従来の IT ガバナンスシナリオでは、各ビジネスは通常、ノード、Server Load Balancer (SLB) インスタンス、ストレージリソースなど、専用のクラウドリソースセットを使用します。これらのリソースは個別に課金されるため、コスト追跡は比較的簡単です。
クラウドネイティブ時代において、リソース使用パターンは変化しました。単一のノードで複数のビジネスのコンテナが同時に実行されたり、ネットワークリソースやストレージリソースがアプリケーション間で共有されたりすることがあります。このリソース共有モデルはコスト配分の複雑さを増大させ、個々の業務部門にコストを明確に割り当てることが難しくなり、コストの可視化と管理を複雑にします。
この問題に対処するため、ACK では、ビジネスのコスト配分をより正確に計算するのに役立つ、汎用のコストデータモデルを提供しています。実装は以下のとおりです。
-
まず、各 Pod が使用するリソース (CPU、メモリ、ストレージなど) を分析し、そのシミュレーションコストを計算します。
-
次に、すべてのリソース料金を含むクラスターの合計請求額を、シミュレーションコストに基づいて各 Pod に比例配分します。この比例配分により、各 Pod がクラスターの合計請求額に占める割合が算出されます。
-
最後に、特定のビジネスに関連付けられたすべての Pod の配分コストを一定期間にわたって合計し、その業務部門の総コストを決定します。
シナリオ例
次の図に示すように、ある企業はすべてのワークロードを単一の ACK クラスターにデプロイしています。その組織構造には 4 つの部門があります:部門 A はアプリケーション A を管理し、部門 B と C は共同でアプリケーション B を管理し、部門 D はアプリケーション C と D を管理します。
アプリケーション A と B は安定したワークロードを必要とする Web サービスであり、サブスクリプションの Elastic Compute Service (ECS) インスタンスにスケジュールされます。アプリケーション C と D は、データ処理とデータ分析のワークロードを扱い、弾力的なリソース需要があるため、従量課金の ECS インスタンスにスケジュールされます。
Cost Insight を利用したコスト管理と最適化
以下の手順では、Cost Insight の可視化ダッシュボードを使用して、部門別およびアプリケーション別にコストを表示する方法を示します。
ステップ 1:コストガバナンスサイクルの決定
-
クラスターコストの表示サイクル:
ECS インスタンスには 2 つの課金サイクルがあります:サブスクリプションインスタンスは月次または週次で課金され、従量課金インスタンスは時間単位で課金されます。このシナリオでは両方の課金タイプを使用するため、クラスターの総コストを確認する際は、表示サイクルを月次レベルに設定します。請求データの直接比較と分析を簡素化するために、ECS の課金日をコストガバナンスの開始日と終了日として使用します。
-
部門とアプリケーションのコスト表示サイクル:
-
部門 A、B、C はサブスクリプションノードでワークロードを実行するため、コストガバナンスサイクルは月次です。
-
部門 D は従量課金ノードでワークロードを実行するため、コストガバナンスサイクルは日次です。
-
アプリケーションのコスト表示サイクルは、それを所有する部門に基づいて決定します。
-
ステップ 2:ワークロードタイプに基づいたコスト配分戦略の選択
ビジネスコスト配分を計算する際、ACK は各ビジネスに関連付けられた Pod のコストを見積もります。ACK は、単一リソースと加重ハイブリッドリソースの 2 つの見積もり戦略を提供します。
|
見積もり戦略 |
サブ戦略 |
ユースケース |
|
CPU とメモリリソースの単一リソースポリシー |
あるリソースタイプの使用率が他のリソースタイプよりも著しく高いシナリオ、またはクラスター内のワークロードが主に 1 種類のリソースを要求するシナリオ。 |
|
|
CPU-メモリハイブリッド戦略 (推奨ウェイト) と CPU-メモリハイブリッド戦略 (カスタムウェイト)。 |
CPU 集約型とメモリ最適化アプリケーションがクラスター内に混在するシナリオ、または CPU とメモリの使用率レベルが類似しているシナリオ。 |
デフォルトでは、クラスター内のワークロードが主に 1 種類のリソースを要求する場合、単一リソース見積もり戦略を使用します。たとえば、すべてのワークロードが CPU 集約型である場合は、CPU のみの戦略を選択します。
戦略の選択と分析に関する詳細なガイダンスについては、「コスト見積もり戦略」をご参照ください。
ステップ 3:クラスターコストの表示
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、対象のクラスター名をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
コストインサイト ページで、クラスターディメンション タブに移動します。次のフィルターを設定し、コスト結果を確認します。
-
実績/元の請求:クラスターコストの計算オプションを選択します。この例では、割引後の実績請求コストに設定します。
-
時間範囲:この例では、2024-05-01 00:00:00 から 2024-05-31 23:59:59 に設定します。
当月の現在までの支出 - 割引後の実績請求コスト セクションで、2024 年 5 月のクラスターの総コストを表示します。これらの設定を適用すると、ページにはクラスターの支出概要が表示されます。これには、昨日のクラスターコスト、前日比の支出変動、明日の予測コスト、当週の現在までの支出、当月の現在までの支出、月末の予測合計のメトリックカード、およびクラスターの支出と容量のトレンドグラフが含まれます。当月の現在までの支出 - 割引後の実績請求コストに表示される値は、その月のクラスターの実際の総コストを表します。
-
ステップ 4:部門コストの表示
-
コストインサイト ページで、名前空間ディメンション タブに移動します。次のフィルターを設定し、コスト配分結果を確認します。
-
名前空間 (名前空間):部門に対応する名前空間を選択します。この例では、デフォルトの名前空間 default を使用します。
-
実績/元の請求:名前空間のコスト計算オプションを選択します。この例では、割引後の実績請求コストに設定します。
-
時間範囲:この例では、2024-05-31 00:00:00 から 2024-05-31 23:59:59 に設定します。
この例では、部門 D のワークロードはリソース需要が変動します。時間範囲を特定の日 (2024 年 5 月 31 日など) に調整して、部門 D の日次コストを表示することもできます。
その後、名前空間のコスト配分セクションで、部門の配分コストを表示します。
-
ステップ 5:アプリケーションコストの表示
-
コストインサイト ページで、アプリケーションディメンション タブに移動します。次のフィルターを設定し、アプリケーションの支出を確認します。
-
名前空間 (名前空間):アプリケーションが実行される名前空間を選択します。この例では、デフォルトの名前空間 default を使用します。
-
ラベルセレクター:アプリケーションに関連付けられたラベルを入力します。
-
時間範囲:この例では、2024-05-31 10:00 から 2024-05-31 16:59 に設定します。
この例では、アプリケーション C と D はワークロードの特性により日次コストが変動します。そのため、時間範囲を特定のウィンドウ (10:00 から 16:59 など) に絞り、その期間のコストを表示します。
その後、アプリケーションの支出セクションで結果を表示します。
このページには、次のモニタリングメトリックカードが表示されます:アプリケーションの支出 (アプリケーションの総コスト)、現在のレプリカ数 (現在/最大/最小レプリカ)、コンピューティングリソース使用率 (CPU、メモリ、GPU メモリ)、ノードあたりの時間単価 (ノードあたりのコスト)、アプリケーションのランタイム / 消費された合計コア時間、およびクラスター/名前空間のリソース使用率におけるアプリケーションの割合。
-
よくある質問
Cost Insight を有効にした後、先月または先週の支出を表示してもデータがないのはなぜですか?
Cost Insight は、機能を有効にした後からのみデータの記録を開始します。有効化前の期間のデータは存在しません。
過去の支出を表示した際、表示される金額が実際の支出額より低いのはなぜですか?
ARMS Prometheus は、デフォルトでメトリックを 15 日間保存します。選択した時間範囲がこの保存期間内にあることを確認してください。より長いコスト可視化期間が必要な場合は、「メトリックの保存期間の調整」をご参照ください。
関連ドキュメント
-
Cost Insight の可視化ダッシュボードに加えて、Allocation API を使用して、クラスターの請求書から部門およびアプリケーションのコスト配分を取得することもできます。Allocation API を使用すると、名前空間、コントローラー、ラベル、Pod、およびその他のディメンションでビジネスコストを集計できます。
-
Cost Insight のメトリックの詳細な説明については、「クラスターレベルのコスト分析」、「名前空間レベルのコスト分析」、「ノードプールレベルのコスト分析」、および「アプリケーションレベルのコスト分析」をご参照ください。
-
コンテナの request と limit の設定を簡素化したい場合は、リソースプロファイリング機能を使用して、コンテナレベルのリソース推奨値を取得し、アプリケーションの構成を調整します。
-
マルチクラウドおよびハイブリッドクラウドのシナリオでは、リソースが複数のクラウドプロバイダーやオンプレミス環境から提供される場合があり、統一されたリソースモニタリングとコスト管理がより困難になります。ACK One を使用したハイブリッドクラウドのコスト管理の詳細については、「クラスターコストの可視化」をご参照ください。