次の方法で共有


Azure Kubernetes Service (AKS) のコスト分析

この記事では、Azure Kubernetes Service (AKS) でコスト分析を有効にして、クラスター リソースの詳細なコスト データを表示する方法について説明します。

コスト分析について

AKS クラスターは、仮想マシン (VM)、仮想ディスク、ロード バランサー、パブリック IP アドレスなどの Azure リソースに依存します。 複数のアプリケーションでこれらのリソースを使用できます。 多くの場合、リソース消費パターンはアプリケーションごとに異なるため、クラスター リソース コストの合計に占める割合も異なる場合があります。 一部のアプリケーションでは、複数のクラスターにわたって占有領域が存在する場合があります。これは、コストの属性およびコスト管理を実行するときに課題になる可能性があります。

AKS クラスターでコスト分析を有効にすると、クラスターや名前空間などの Kubernetes 構成、Azure Compute、ネットワーク、ストレージ リソースに絞った詳細なコスト配分を表示できます。 アドオンは、OpenCost (使用状況データ収集のためのオープンソース Cloud Native Computing Foundation Incubating プロジェクト) に基づいて構築されています。 使用状況データは Azure 請求書データと調整され、Azure portal の Cost Management ビューで直接 AKS クラスターのコストの包括的なビューが提供されます。

Microsoft Cost Management の詳細については、「Azure でコストの分析を開始する」を参照してください。

コスト分析アドオンを有効にし、データの収集に時間を割いた後、「AKS の利用状況とコストを理解する」に記載されている情報を使用して、データを理解することができます。

前提条件

  • クラスターでは、Free レベルではなく、Standard レベルまたは Premium レベルが使用される必要があります。
  • コスト分析情報を表示するには、クラスターをホストするサブスクリプションに対して、OwnerContributorReaderCost Management Contributor、または Cost Management Reader のいずれかのロールが必要です。
  • クラスター用に構成された Microsoft Entra ワークロード ID
  • Azure CLI を使用する場合は、バージョン 2.61.0 以降がインストールされている必要があります。
  • コスト分析をいったん有効にすると、まずコスト分析を無効にしない限り、クラスターを Free レベルにダウングレードできません。
  • Azure Resource Manager (ARM) API を含む Azure API へのアクセス。 必要となる完全修飾ドメイン名 (FQDN) の一覧については、「AKS コスト分析で必要な FQDN」を参照してください。

制限事項

  • Kubernetes のコスト ビューは、Enterprise Agreement および Microsoft 顧客契約の Microsoft Azure の提供タイプでのみ使用できます。 詳細については、「サポートされている Microsoft Azure オファー」を参照してください。
  • 現在、仮想ノードはサポートされていません。

AKS クラスターでコスト分析を有効にします

次のいずれかの操作中に、--enable-cost-analysis フラグを使用してコスト分析を有効にできます。

  • Standard レベルまたは Premium レベル AKS クラスターの作成。
  • 既存の Standard レベル または Premium レベル AKS クラスターの更新。
  • Free クラスターの Standard または Premium へのアップグレード。
  • Standard クラスターの Premium へのアップグレード。
  • Premium クラスターの Standard レベルへのダウングレード。

新しいクラスターでコスト分析を有効にする

--enable-cost-analysis フラグ付きの az aks create コマンドを使用して、新しいクラスターのコスト分析を有効にします。 次の例は、コスト分析が有効になっている Standard レベルの新しい AKS クラスターを作成します。

az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

既存のクラスターでコスト分析を有効にする

--enable-cost-analysis フラグ付きの az aks update コマンドを使用して、既存のクラスターのコスト分析を有効にします。 次の例は、コスト分析を有効にするために、Standard レベルの既存の AKS クラスターを更新します。

az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis

Note

アドオンを有効にすると、ひとつのエージェントがクラスターにデプロイされます。 このエージェントは、少量の CPU リソースとメモリ リソースを消費します。

警告

AKS コスト分析アドオンのメモリ使用量は、デプロイされるコンテナーの数によって異なります。 200 MB + 0.5 MB/コンテナーを使用して、メモリ消費量を概算できます。 現在のメモリ制限は 4 GB に設定されており、1 クラスターあたり約 7,000 個のコンテナーがサポートされます。 これらの見積もりは変わる可能性があります。

AKS クラスターでコスト分析を無効にする

--disable-cost-analysis フラグ付きの az aks update コマンドを使用してコスト分析を無効にします。

az aks update --name <cluster-name> --resource-group <resource-group> --disable-cost-analysis

Note

コスト分析が有効になっているときにクラスターを Standard レベルまたは Premium レベルから Free レベルにダウングレードする場合は、まずコスト分析を無効にする必要があります。

コスト データを表示する

Azure portal では、コストの割り当てデータを表示できます。 詳細については、「Microsoft Cost Management での AKS コストの表示」を参照してください。

コストの定義

Kubernetes 名前空間と資産ビューでは、次のいずれかの料金が表示される場合があります。

  • アイドル料金は、ワークロードで使用されていない使用可能なリソース容量のコストを表します。
  • サービス料金は、アップタイム SLA、Microsoft Defender for Containers などのサービスに関連する料金を表します。
  • システム料金は、kubelet やコンテナー ランタイムなどの、クラスターで必要なシステム プロセスを実行するために各ノードの AKS によって予約された容量のコストを表します。 詳細情報。
  • 未割り当て料金は、名前空間に割り当てられなかったリソースのコストを表します。

Note

データの確定には最大で 1 日かかる場合があります。 24 時間後、前日のコストの変動が安定します。

トラブルシューティング

cost-agent ポッドがOOMKilledされたり、Pending状態でスタックするなどの問題が発生している場合は、「AKS コスト分析アドオンの問題のトラブルシューティング」を参照してください。

次のステップ

AKS のコストの詳細については、「Azure Kubernetes Service (AKS) の使用状況とコストについて」を参照してください。