Azure Kubernetes Service 비용 분석

AKS(Azure Kubernetes Service) 클러스터는 가상 머신, 가상 디스크, 부하 분산 장치 및 공용 IP 주소와 같은 Azure 리소스에 의존합니다. 여러 애플리케이션에서 이러한 리소스를 사용할 수 있습니다. 이러한 리소스는 조직 내의 여러 팀에서 기본 얻을 수 있습니다. 이러한 애플리케이션에 대한 리소스 사용 패턴은 종종 가변적이므로 총 클러스터 리소스 비용에 대한 기여도 달라질 수 있습니다. 또한 일부 애플리케이션은 여러 클러스터에 공간을 포함할 수 있으므로 비용 특성 및 비용 관리를 수행할 때 문제가 될 수 있습니다.

이전에는 Microsoft Cost Management(MCM)가 클러스터 리소스 그룹 아래에서 클러스터 리소스 사용을 집계했습니다. MCM을 사용하여 비용을 분석할 수 있었지만 몇 가지 문제가 있었습니다.

  • 클러스터 리소스 사용량을 클러스터보다 더 세분화된 수준으로 표시하는 Azure 네이티브 기능이 없었습니다. 컴퓨팅(CPU 코어 및 메모리 포함), 스토리지, 네트워킹과 같은 개별 범주 내역이 없었습니다.

  • 비용 유형(예: 개별 애플리케이션 비용과 공유 비용)을 구분하는 Azure 네이티브 기능이 없었습니다. MCM은 리소스 비용을 보고했지만 개별 애플리케이션을 실행하는 데 사용된 리소스 비용의 양, 클러스터에 필요한 시스템 프로세스에 예약된 양 또는 클러스터와 관련된 유휴 비용에 대한 인사이트는 없었습니다.

  • 동일한 구독 범위의 여러 클러스터에서 비용을 분석하는 Azure 네이티브 메커니즘이 없었습니다.

결과적으로 타사 솔루션을 사용하여 네임스페이스 또는 Pod와 같은 Kubernetes별 세분성 수준에서 리소스 소비 및 비용을 수집하고 분석했을 수 있습니다. 하지만 타사 솔루션은 각 AKS 클러스터마다 배포, 미세 조정, 유지 관리 작업이 필요합니다. 경우에 따라 고급 기능에 대한 비용을 지불해야 하므로 클러스터의 총 소유 비용이 증가합니다.

이 문제를 해결하기 위해 AKS는 MCM과 통합되어 Azure Compute, Network 및 Storage 범주 외에도 클러스터 및 네임스페이스와 같은 Kubernetes 구문에 대한 자세한 비용 드릴다운 범위를 제공합니다.

AKS 비용 분석 추가 기능은 사용량 현황 데이터 수집을 위한 오픈 소스 클라우드 네이티브 컴퓨팅 파운데이션 샌드박스 프로젝트인 OpenCost를 기반으로 합니다. 비용 분석은 Azure 청구서 데이터와 조정됩니다. 후처리된 데이터는 MCM 비용 분석 포털 환경에 직접 표시됩니다.

필수 구성 요소 및 제한 사항

  • 클러스터는 Free 계층이 아닌 Standard 또는 Premium 계층이어야 합니다.

  • 비용 분석 정보를 보려면 클러스터를 호스트하는 구독에서 소유자, 기여자, 읽기 권한자, 비용 관리 기여자 또는 Cost Management 읽기 권한자 역할 중 하나가 있어야 합니다.

  • 비용 분석을 사용하도록 설정한 후에는 먼저 비용 분석을 사용하지 않도록 설정하지 않고 클러스터를 Free 계층으로 다운그레이드할 수 없습니다.

  • 클러스터는 Microsoft Entra 워크로드 ID가 구성된 상태로 배포해야 합니다.

  • Azure CLI를 사용하는 경우 버전 2.44.0 이상이 설치되어 있어야 하며, aks-preview Azure CLI 확장 버전이 0.5.155 이상이 설치되어 있어야 합니다.

  • Kubernetes 비용 보기는 다음 Microsoft Azure 제공 형식에서만 사용할 수 있습니다. 제공 형식에 대한 자세한 내용은 지원되는 Microsoft Azure 제품을 참조하세요.

    • 기업계약
    • Microsoft 고객 계약
  • 현재 가상 노드는 지원되지 않습니다.

aks-preview Azure CLI 확장 설치 또는 업데이트

az extension add 명령을 사용하여 aks-preview Azure CLI 확장을 설치합니다.

az extension add --name aks-preview

확장 버전을 업데이트해야 하는 경우 az extension update 명령을 사용하여 이 작업을 수행할 수 있습니다.

az extension update --name aks-preview

AKS 클러스터에서 비용 분석 사용

다음 작업 중 하나에서 플래그를 사용하여 --enable-cost-analysis 비용 분석을 사용하도록 설정할 수 있습니다.

  • AKS 클러스터를 Standard 만들거나 Premium 계층화합니다.

  • 이미 Standard 또는 Premium 계층에 있는 AKS 클러스터 업데이트

  • Free 클러스터를 Standard 또는 Premium으로 업그레이드

  • Standard 클러스터를 Premium으로 업그레이드

  • Premium 클러스터를 Standard로 다운그레이드

다음 예제에서는 비용 분석을 사용하도록 설정된 계층에 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

다음 예제에서는 비용 분석을 사용하도록 계층의 Standard 기존 AKS 클러스터를 업데이트합니다.

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

Warning

AKS 비용 분석 추가 기능 메모리 사용량은 배포된 컨테이너 수에 따라 달라집니다. 메모리 사용량은 컨테이너당 약 200MB + 0.5MB 정도가 될 수 있습니다. 현재 메모리 제한은 클러스터당 약 7,000개의 컨테이너를 지원하지만 다양한 요인에 따라 다소 지원될 수 있는 4GB로 설정됩니다. 이러한 추정치는 변경될 수 있습니다.

비용 분석 사용 안 함

az aks update를 사용하여 언제든지 비용 분석을 사용하지 않도록 설정할 수 있습니다.

az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis

참고 항목

비용 분석을 사용하는 동안 클러스터를 Standard 또는 Premium 계층에서 Free 계층으로 다운그레이드하려는 경우 먼저 여기에 나온 것처럼 비용 분석을 명시적으로 사용하지 않도록 설정해야 합니다.

비용 데이터 보기

Azure Portal에서 비용 할당 데이터를 볼 수 있습니다. 비용 분석 UI 보기를 탐색하는 방법에 대한 자세한 내용은 Cost Management 설명서를 참조하세요.

비용 정의

Kubernetes 네임스페이스 및 자산 보기에서 다음 요금이 표시됩니다.

  • 유휴 요금: 워크로드에서 사용하지 않은 사용 가능한 리소스 용량의 비용을 나타냅니다.
  • 서비스 요금: 가동 시간 SLA, 컨테이너용 Microsoft Defender 등과 같은 서비스와 관련된 요금을 나타냅니다.
  • 시스템 요금: kubelet 및 컨테이너 런타임을 포함하여 클러스터에 필요한 시스템 프로세스를 실행하기 위해 각 노드에서 AKS가 예약한 용량 비용을 나타냅니다. 자세히 알아보기.
  • 할당되지 않은 요금: 네임스페이스에 할당할 수 없는 리소스 비용을 나타냅니다.

참고 항목

데이터를 완료하는 데 최대 1일이 걸릴 수 있습니다. 24시간 후에는 전날의 비용 변동이 안정화됩니다.

문제 해결

다음 AKS 비용 분석 추가 기능 이슈 문제 해결 가이드를 참조하세요.

자세한 정보

가시성은 비용 관리의 한 요소입니다. kubernetes 비용을 제어하는 방법에 대한 다른 모범 사례는 AKS(Azure Kubernetes Service) 의 비용 최적화를 참조하세요.