AKS(Azure Kubernetes Service) 비용 분석

이 문서에서는 AKS(Azure Kubernetes Service)에서 비용 분석을 사용하도록 설정하여 클러스터 리소스에 대한 자세한 비용 데이터를 보는 방법을 알아봅니다.

AKS 비용 분석 개요

AKS 클러스터는 VM(가상 머신), 가상 디스크, 부하 분산 장치 및 공용 IP 주소와 같은 Azure 리소스를 사용합니다. 여러 애플리케이션에서 이러한 리소스를 사용할 수 있습니다. 리소스 사용 패턴은 종종 각 애플리케이션에 따라 다르므로 총 클러스터 리소스 비용에 대한 기여도도 다를 수 있습니다. 일부 애플리케이션은 여러 클러스터에 걸쳐 자취를 남길 수 있으며, 이는 비용 할당 및 비용 관리 시 문제를 일으킬 수 있습니다.

AKS 클러스터에서 비용 분석을 사용하도록 설정하면 클러스터 및 네임스페이스, Azure Compute, 네트워크 및 스토리지 리소스와 같은 Kubernetes 구문으로 범위가 지정된 자세한 비용 할당을 볼 수 있습니다. 추가 기능은 사용량 현황 데이터 수집을 위한 오픈 소스 클라우드 네이티브 컴퓨팅 파운데이션 인큐베이팅 프로젝트인 OpenCost를 기반으로 합니다. 사용량 현황 데이터는 Azure 포털에서 직접 AKS 클러스터 비용을 포괄적으로 볼 수 있도록 Azure 청구서 데이터와 조정됩니다.

Microsoft Cost Management에 대한 자세한 내용은 Azure에서 비용 분석 시작을 참조하세요.

비용 분석 추가 기능을 사용하도록 설정하고 데이터를 수집할 수 있도록 최대 24시간을 허용한 후 AKS 사용량 및 비용 이해 의 정보를 사용하여 데이터를 이해하는 데 도움이 될 수 있습니다.

필수 조건

  • 클러스터는 Standard 계층 또는 Premium 계층을 사용해야 하며, Free 계층은 사용해서는 안 됩니다.
  • 비용 분석 정보를 보려면 클러스터OwnerContributorReaderCost Management ContributorCost Management Reader를 호스트하는 구독에서 다음 역할 중 하나가 있어야 합니다.
  • 클러스터에 구성된 관리 ID입니다.
  • 클러스터에서 사용하도록 설정된 Azure Disk Container Storage Interface(CSI) 드라이버
  • Azure CLI를 사용하는 경우 버전 2.61.0 이상이 설치되어 있어야 합니다.
  • 비용 분석을 사용하도록 설정하면 먼저 비용 분석을 사용하지 않도록 설정하지 않고는 클러스터를 Free 계층으로 다운그레이드할 수 없습니다.
  • ARM(Azure Resource Manager) API를 포함한 Azure API에 액세스합니다. 필요한 FQDN(정규화된 도메인 이름) 목록은 AKS 비용 분석 필수 FQDN을 참조하세요.

제한 사항

  • Kubernetes 비용 보기는 기업계약 및 Microsoft 고객 계약 Microsoft Azure 제품 유형에만 사용할 수 있습니다. 자세한 내용은 지원되는 Microsoft Azure 제품을 참조하세요.
  • 현재 가상 노드는 지원되지 않습니다.
  • 추가 기능은 usnateast, usnatwest, usseceast, 또는 ussecwest 지역에서는 사용할 수 없습니다. 자세한 내용은 AKS 비용 분석 추가 기능 문제 및 문제 해결을 참조하세요.
  • AKS 비용 분석 추가 기능은 현재 4GB 메모리 제한에 따라 클러스터당 약 7,000개의 컨테이너를 지원하며 변경될 수 있습니다.

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

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

  • AKS 클러스터를 Standard 또는 Premium 계층으로 만듭니다.
  • 기존 Standard 또는 Premium 계층의 AKS 클러스터를 업데이트합니다.
  • 클러스터를 FreeStandard 또는 Premium.로 업그레이드
  • 클러스터Standard를 .로 Premium 업그레이드
  • 클러스터 PremiumStandard 계층으로 다운그레이드합니다.

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

az aks create 명령과 --enable-cost-analysis 플래그를 사용하여 새 클러스터에서 비용 분석을 활성화합니다. 다음 예에서는 비용 분석이 사용하도록 설정된 Standard 계층에 새 AKS 클러스터를 만듭니다.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="AKSCostRG$RANDOM_SUFFIX"
export CLUSTER_NAME="AKSCostCluster$RANDOM_SUFFIX"
export LOCATION="WestUS2"
az group create --resource-group $RESOURCE_GROUP --location $LOCATION
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --location $LOCATION --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

결과:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "location": "WestUS2",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null,
    "type": "Microsoft.ContainerService/managedClusters"
}

기존 클러스터에서 비용 분석 사용

기존 클러스터에서 az aks update 명령과 --enable-cost-analysis 플래그를 사용하여 비용 분석을 활성화하세요. 다음 예제에서는 비용 분석을 사용하도록 계층의 Standard 기존 AKS 클러스터를 업데이트합니다. $RESOURCE_GROUP$CLUSTER_NAME를 리소스 그룹 이름과 클러스터 이름으로 바꾸거나 환경 변수로 설정하세요.

az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-cost-analysis

결과:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

참고

추가 기능을 사용하도록 설정하면 에이전트가 클러스터에 배포됩니다. 에이전트는 소량의 CPU 및 메모리 리소스를 사용합니다.

경고

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

참고

비용 분석을 사용하도록 설정하면 클러스터의 노드 리소스 그룹에 대한 읽기 액세스 권한이 있는 관리 cost-analysis-identity가 만들어지고 클러스터의 노드 풀에 할당됩니다. 보고를 위해 클러스터 자산의 ARM 식별자를 수집하는 데 사용됩니다.

노드 풀에는 이미 관리 ID가 있으므로 관리 ID를 사용하는 노드의 모든 명령은 노드 풀의 관리 ID를 사용하는 대신 사용할 ID를 지정 해야 합니다.

예: az login --identity --resource-id <resource ID of identity>.

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

플래그가 있는 az aks update 명령을 사용하여 --disable-cost-analysis 비용 분석을 사용하지 않도록 설정합니다.

az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-cost-analysis

결과:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

참고

비용 분석이 활성화된 동안 클러스터를 Standard 또는 Premium 계층에서 Free 계층으로 다운그레이드하려면 먼저 비용 분석을 비활성화해야 합니다.

비용 데이터 보기

Azure Portal에서 비용 할당 데이터를 볼 수 있습니다.

Azure 포털에서 AKS 클러스터를 호스트하는 Azure 구독으로 이동합니다. Cost Management에서 비용 분석을 선택합니다. 보기 목록에서 목록 드롭다운 항목을 선택한 다음 Kubernetes 클러스터를 선택합니다.

자세한 내용은 Microsoft Cost Management에서 AKS 비용 보기를 참조하세요.

비용 정의

Kubernetes 네임스페이스 및 자산 뷰에 다음 요금이 표시될 수 있습니다.

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

참고

일반적으로 시스템은 8~24시간 내에 비용 및 사용량 현황 데이터를 마무리하고 사용할 수 있도록 합니다.

문제 해결

cost-agent Pod가 OOMKilled 상태가 되거나 Pending 상태에 갇히는 등의 문제가 발생하는 경우 AKS 비용 분석 추가 기능 문제 해결을 참조하세요.

다음 단계

AKS의 비용에 대한 자세한 내용은 AKS(Azure Kubernetes Service) 사용량 및 비용 이해를 참조하세요.