Azure Kubernetes Service 비용 분석
AKS(Azure Kubernetes Service) 클러스터는 가상 머신, 가상 디스크, 부하 분산 장치, 공용 IP 주소와 같은 Azure 리소스에 의존합니다. 여러 애플리케이션에서 이러한 리소스를 사용할 수 있으며, 이는 조직 내의 여러 팀에서 유지 관리할 수 있습니다. 해당 애플리케이션의 리소스 사용량 패턴은 가변적인 경우가 많으므로 전체 클러스터 리소스 비용에 대한 기여도도 다를 수 있습니다. 일부 애플리케이션은 여러 클러스터에 걸쳐 공간을 가질 수도 있으며, 이는 비용 특성 및 비용 관리를 수행할 때 발생하는 문제가 될 수 있습니다.
이전에는 Microsoft Cost Management(MCM)가 클러스터 리소스 그룹 아래에서 클러스터 리소스 사용을 집계했습니다. MCM을 사용하여 비용을 분석할 수 있었지만 몇 가지 문제가 있었습니다.
클러스터 리소스 사용량을 클러스터보다 더 세분화된 수준으로 표시하는 Azure 네이티브 기능이 없었습니다. 컴퓨팅(CPU 코어 및 메모리 포함), 스토리지, 네트워킹과 같은 개별 범주 내역이 없었습니다.
비용 형식(예: 개별 애플리케이션 비용과 공유 비용)을 구분하는 Azure 네이티브 기능이 없었습니다. MCM은 리소스 비용을 보고했지만 개별 애플리케이션을 실행하는 데 리소스 비용이 얼마나 사용되었는지, 클러스터에 필요한 시스템 프로세스에 예약된 리소스 비용 또는 클러스터와 관련된 유휴 비용에 대한 인사이트는 없었습니다.
동일한 구독 범위의 여러 클러스터에서 비용을 분석하는 Azure 네이티브 메커니즘이 없었습니다.
결과적으로 타사 솔루션을 사용하여 네임스페이스 또는 Pod와 같은 Kubernetes 특정 세부 수준에 따라 리소스 사용량 및 비용을 수집하고 분석했을 수 있습니다. 하지만 타사 솔루션은 각 AKS 클러스터마다 배포, 미세 조정, 유지 관리 작업이 필요합니다. 경우에 따라 고급 기능에 대한 비용도 지불해야 하므로 클러스터의 총 소유 비용이 증가합니다.
이 문제를 해결하기 위해 AKS는 Azure Compute, Network, Storage 범주 외에도 클러스터와 네임스페이스 같은 Kubernetes 구문에 범위가 지정된 자세한 비용 드릴다운을 제공할 목적으로 MCM과 통합했습니다.
AKS 비용 분석 추가 기능은 사용 현황 데이터 수집을 위한 오픈 소스 Cloud Native Computing Foundation 샌드박스 프로젝트인 OpenCost를 기반으로 빌드되었습니다. 비용 분석은 Azure 청구서 데이터와 조정됩니다. 후처리된 데이터는 MCM 비용 분석 포털 환경에 직접 표시됩니다.
필수 구성 요소 및 제한 사항
클러스터는
Free
계층이 아닌Standard
또는Premium
계층이어야 합니다.비용 분석 정보를 보려면 클러스터를 호스트하는 구독에서 소유자, 기여자, 읽기 권한자, 비용 관리 기여자 또는 Cost Management 읽기 권한자 역할 중 하나가 있어야 합니다.
비용 분석을 사용하도록 설정한 후에는 먼저 비용 분석을 사용하지 않도록 설정하지 않으면 클러스터를
Free
계층으로 다운그레이드할 수 없습니다.클러스터는 Microsoft Entra 워크로드 ID가 구성된 상태로 배포해야 합니다.
Kubernetes 비용 보기는 다음 Microsoft Azure 제공 형식에서만 사용할 수 있습니다. 제공 형식에 대한 자세한 내용은 지원되는 Microsoft Azure 제품을 참조하세요.
- 기업계약
- Microsoft 고객 계약
ARM(Azure Resource Manager) API를 포함한 Azure API에 액세스합니다. 필요한 FQDN(정규화된 도메인 이름) 목록은 AKS 비용 분석 필수 FQDN을 참조하세요.
현재 가상 노드는 지원되지 않습니다.
AKS 자동은 현재 지원되지 않습니다.
Azure CLI를 사용하는 경우 버전
2.61.0
이상이 설치되어 있어야 합니다.
AKS 클러스터에서 비용 분석 사용
다음 작업 중 하나를 수행하는 동안 --enable-cost-analysis
플래그를 사용하여 비용 분석을 사용하도록 설정할 수 있습니다.
Standard
또는Premium
계층 AKS 클러스터를 만듭니다.이미
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로 설정됩니다. 이러한 추정치는 다양한 요인에 따라 다소 달라질 수 있고 변경될 수 있습니다.
추가 기능 Pod가 OOMKilled
상태에 빠지거나 Pending
상태에서 중단되는 등의 문제가 발생하는 경우 AKS 비용 분석 추가 기능 문제 해결 가이드를 참조하세요.
비용 분석 사용 안 함
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)에서 비용 최적화를 참조하세요.
Azure Kubernetes Service