このトピックでは、コストインサイト機能を使用して、企業の実際のビジネスステータスに基づいてクラウドネイティブアーキテクチャのIT支出を正確に計算する方法について説明します。 コストインサイト機能により、企業はクラウドネイティブテクノロジーの柔軟性と高性能の恩恵を受け、コストを効率的に管理および管理できます。
前提条件
Kubernetes 1.18.8以降を実行するContainer Service for Kubernetes (ACK) クラスターが作成されます。 詳細については、「クラスターの作成」および「ACKクラスターの手動アップグレード」をご参照ください。
コストインサイト機能が有効になりました。 詳細については、「コストインサイトの有効化」をご参照ください。
PrometheusのManaged Serviceがクラスターで有効になっています。 詳細については、「手順1: Prometheusのマネージドサービスの有効化」をご参照ください。
Prometheusメトリックデータの保持期間は、コスト管理サイクルよりも長くなります。 コスト管理サイクルを決定する方法の詳細については、「手順1: コスト管理サイクルの決定」をご参照ください。 メトリックデータの保持期間を調整する方法の詳細については、メトリックデータの保持期間を変更するにはどうすればよいですか?
背景情報
従来のITガバナンスのシナリオでは、アプリケーションは通常、ノード、Server Load Balancer (SLB) インスタンス、ストレージリソースなどの一連のクラウドリソースに排他的にアクセスできます。 これらのクラウドリソースは個別に請求されるため、コスト追跡はより簡単で簡単です。
クラウドネイティブ時代では、リソースは別のモードで消費されます。 ノードは、異なるアプリケーションのためのコンテナを同時に実行することができ、ノードのネットワークおよびストレージリソースは、これらのアプリケーションによって共有されることができる。 リソース共有モードでは、コスト割り当ての複雑さが増します。つまり、各ビジネスユニットにコストを明示的に割り当てることはできません。 その結果、コストの洞察と管理が複雑になります。
ACKは、ビジネスコストを正確に計算するのに役立つ汎用のコストデータモデルを提供します。 次のコンテンツは、コストインサイト機能の仕組みを示しています。
まず、各ポッドで使用されるリソースを分析して、各ポッドのコストを見積もります。 リソースは、CPU、メモリ、およびストレージリソースを含む。
次に、推定コストに基づいて、すべてのリソースのコストを含むクラスターの合計コストを各ポッドに比例的に割り当てます。 クラスターの総コストを比例配分することで、ポッドごとのクラスターコストを取得できます。
最後に、コスト管理サイクル内でビジネスユニットに関連付けられているすべてのポッドのコストを合計することで、ビジネスユニットのコストを取得できます。
シナリオ
次の図は、企業がアプリケーションをACKクラスターにデプロイすることを示しています。 企業は4つの部門を有する。部門AはアプリケーションAを担当し、部門Bおよび部門CはアプリケーションBを担当し、部門DはアプリケーションCおよびアプリケーションDを担当する。
アプリケーションAとアプリケーションBは、安定したトラフィック負荷を処理するwebサービスを提供するため、ECS (Elastic Compute Service) インスタンスのサブスクリプションをスケジュールされています。 アプリケーションCおよびアプリケーションDは、ビジネスデータを処理および分析するために柔軟なリソースを必要とするため、従量課金ECSインスタンスにスケジュールされます。
コストインサイト機能を使用してコストを管理および最適化する
次のコンテンツは、コストインサイトダッシュボードを使用して部門とアプリケーションのコストを表示する方法を示しています。
HTTP APIを呼び出して、部門とアプリケーションのコストを照会することもできます。 詳細については、「割り当てAPIを呼び出してコストインサイトデータを照会する」をご参照ください。
ステップ1: コストガバナンスのサイクルを決定する
クラスターのコスト管理サイクルの決定:
ECSインスタンスは2つの課金サイクルをサポートしています。 サブスクリプションインスタンスは、毎月または毎週課金されます。 従量課金のインスタンスは、時間単位で課金されます。 このトピックでは、クラスターにサブスクリプションECSインスタンスと従量課金ECSインスタンスが含まれます。 クラスターの総コストを表示するには、コスト管理サイクルを毎月に設定する必要があります。 課金データをより適切に比較および分析するために、ECSの課金日がコストガバナンスの開始日と終了日として使用されます。
部門またはアプリケーションのコストガバナンスサイクルを決定する:
部門A、B、およびCは、サブスクリプションECSインスタンスでサービスを実行します。 これらの部門のコストを表示するには、コスト管理サイクルを毎月に設定する必要があります。
Department 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に設定します。
[月の累積費用-割引付きの実際の請求コスト] セクションで、5月2024日のクラスターの合計コストを表示します。
ステップ4: 部門コストを表示する
[コストインサイト] ページで、[名前空間ディメンション] タブをクリックし、次のフィルター条件を設定して名前空間コストを表示します。
名前空間 (名前空間): アパートで使用される名前空間を選択します。 この例では、default名前空間が選択されています。
実際の /元の請求書: 名前空間のコストを計算する方法を選択します。 この例では、[実際の課金コスト] が選択されています。
時間範囲: この例では、時間範囲を2024-05-31 00:00:00 ~ 2024-05-31 23:59:59に設定します。
この例の部門Dは、変動する資源需要を有する。 また、2024-05-31などの日を指定して、部門Dの1日の費用を表示することもできます。
[名前空間料金-実際の請求コストと割引] セクションで、部門のコストを表示できます。
ステップ5: アプリケーションのコストを表示する
[コストインサイト] ページで、[アプリケーションディメンション] タブをクリックし、次のフィルター条件を設定してアプリケーションコストを表示します。
名前空間 (名前空間): アプリケーションの名前空間を選択します。 この例では、default名前空間が選択されています。
Label Pair Filter (LabelSelector): アプリケーションラベルを指定します。
時間範囲: この例では、時間範囲を2024-05-31 10:00から2024-05-31 16:59に設定します。
この例のアプリケーションCおよびDの1日のコストは、ビジネス要件によって変動します。 したがって、指定された期間内のコストを表示するには、2024年5月31日の10:00〜16:59など、1日の期間を指定する必要があります。
[アプリケーションコスト] セクションでは、アプリケーションコストを表示できます。
よくある質問
コストインサイト機能を有効にしてから、前月または前週のコストデータが見つからないのはなぜですか。
コストインサイト機能は、機能を有効にした後にデータを記録します。 指定された時間範囲内で機能が有効になっていない場合、データは表示されません。
表示された履歴コストが実際のコストよりも低いのはなぜですか?
デフォルトでは、Managed Service for Prometheusは15日間データを保存します。 指定された時間範囲がPrometheusのマネージドサービスの保存期間内であることを確認してください。 そうでなければ、履歴コストは実際のコストよりも低くなり得る。 データを15日以上保存する場合は、「メトリックのデータサンプルの保存期間を変更する方法」をご参照ください。
関連ドキュメント
コストインサイトダッシュボードに加えて、HTTP APIを使用して部門とアプリケーションのコストを表示することもできます。 Allocation APIを呼び出して、名前空間、コントローラー、ラベル、またはポッドごとにコストインサイトデータを集計できます。 詳細については、「割り当てAPIを呼び出してコストインサイトデータを照会する」をご参照ください。
コストインサイトメトリックの詳細については、「クラスターコスト分析」、「名前空間コスト分析」、「ノードプールコスト分析」、および「アプリケーションコスト分析」をご参照ください。
リソース要求の構成とコンテナーの制限を簡素化する場合は、リソースプロファイリングを使用して、個々のコンテナーのリソース構成の提案を取得できます。 これにより、アプリケーションリソースの設定を調整できます。 詳細については、「リソースプロファイリング」をご参照ください。
マルチクラウドおよびハイブリッドクラウドのシナリオでは、異なるクラウドベンダーまたはオンプレミス環境からのリソースが使用されます。 これらのシナリオにおける統一されたビューによるリソース監視とコスト管理は困難になります。 Distributed Cloud Container Platform For Kubernetes (ACK One) を使用してハイブリッドクラウドコストを管理する方法の詳細については、「クラスターコストのインサイト」をご参照ください。