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
レベルが使用される必要があります。 - コスト分析情報を表示するには、クラスターをホストするサブスクリプションに対して、
Owner
、Contributor
、Reader
、Cost 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) の使用状況とコストについて」を参照してください。
Azure Kubernetes Service