다음을 통해 공유


AKS(Azure Kubernetes Service) 비용 분석

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

비용 분석 정보

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

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

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

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

필수 조건

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

제한 사항

  • Kubernetes 비용 보기는 기업계약 및 Microsoft 고객 계약 Microsoft Azure 제품 유형에만 사용할 수 있습니다. 자세한 내용은 지원되는 Microsoft Azure 제품을 참조하세요.
  • 현재 가상 노드는 지원되지 않습니다.

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",
    "___location": "WestUS2",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null,
    "type": "Microsoft.ContainerService/managedClusters"
}

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

기존 클러스터에서 az aks update 명령과 --enable-cost-analysis 플래그를 사용하여 비용 분석을 활성화하세요. 다음 예에서는 비용 분석을 사용하도록 설정하기 위해 Standard 계층의 기존 AKS 클러스터를 업데이트합니다.

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

결과:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

참고

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

경고

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

참고

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

노드 풀 자체에 대한 관리 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",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

참고

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

비용 데이터 보기

Azure Portal에서 비용 할당 데이터를 볼 수 있습니다. 자세한 내용은 Microsoft Cost Management에서 AKS 비용 보기를 참조하세요.

비용 정의

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

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

참고

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

문제 해결

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

다음 단계

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