이 가이드에서는 Amazon EKS(Amazon Elastic Kubernetes Service)와 비교하여 AKS(Azure Kubernetes Service)에서 가격 책정 및 비용 관리가 작동하는 방식을 설명합니다. 이 문서에서는 비용을 최적화하고 AKS 클러스터에 대한 비용 거버넌스 솔루션을 구현하는 방법을 설명합니다.
참고 항목
이 문서는 Amazon EKS에 익숙한 전문가가 Azure Kubernetes Service(AKS)를 이해하는 데 도움이 되는 일련의 문서의 일부입니다.
Amazon EKS 비용 기본 사항
Amazon EKS에서는 각 Amazon EKS 클러스터에 대해 시간당 고정 가격을 지불합니다. 또한 클러스터에서 사용하는 네트워킹, 운영 도구 및 스토리지에 대한 비용을 지불합니다.
Amazon EKS 작업자 노드는 표준 Amazon EC2 인스턴스이므로, 일반 Amazon EC2 가격이 발생합니다. Kubernetes 작업자 노드를 실행하기 위해 프로비저닝하는 다른 AWS(Amazon Web Services) 리소스에 대해서도 비용을 지불합니다.
Amazon EKS 관리형 노드 그룹을 사용하는 데 추가 비용은 없습니다. Amazon EC2 인스턴스, Amazon EBS 볼륨, Amazon EKS 클러스터 시간 및 기타 AWS 인프라를 포함하여 프로비저닝하는 AWS 리소스에 대해서만 비용을 지불합니다.
관리형 노드 그룹을 만들 때 주문형 또는 스폿 인스턴스 용량 유형을 사용하여 에이전트 노드의 비용을 관리하도록 선택할 수 있습니다. Amazon EKS는 모든 주문형 또는 모든 스폿 인스턴스를 포함하는 Amazon EC2 Auto Scaling 그룹을 사용하여 관리형 노드 그룹을 배포합니다.
주문형 인스턴스를 사용하면 장기 약정 없이 초 단위로 컴퓨팅 용량에 대한 비용을 지불합니다. Amazon EC2 스폿 인스턴스는 주문형 가격에 비해 할인을 제공하는 예비 Amazon EC2 용량입니다.
EC2에 용량이 다시 필요할 때 2분간 중단 알림과 함께 Amazon EC2 스폿 인스턴스를 중단할 수 있습니다.
Amazon은 주문형 및 스폿 인스턴스 그룹을 자동화하는 방법인 스폿 플릿과 중단을 최소화할 수 있는 지역 또는 가용성 영역을 예측하는 데 도움을 주는 스폿 인스턴스 관리자를 제공합니다.
AWS 스폿 인스턴스 가격은 다양합니다. AWS는 스폿 인스턴스 용량에 대한 장기 공급 및 수요 추세에 따라 가격을 설정하고 인스턴스가 작동하는 시간 동안 적용되는 가격을 지불합니다.
Azure Kubernetes Service 비용 분석
AKS(Azure Kubernetes Service) 클러스터는 가상 머신, 가상 디스크, 부하 분산 장치 및 공용 IP 주소와 같은 다양한 Azure 리소스를 사용합니다. 이러한 리소스는 조직 내의 여러 팀에서 관리할 수 있는 여러 애플리케이션에서 활용할 수 있습니다. 이러한 리소스의 사용 패턴은 다양할 수 있으므로 총 클러스터 리소스 비용에 대한 기여도가 달라질 수 있습니다. 또한 일부 애플리케이션에는 여러 클러스터에 걸쳐 사용 공간이 있을 수 있으므로 비용 특성 및 관리가 어려운 과제가 될 수 있습니다.
클러스터에 단일 워크로드 가 포함된 시나리오의 경우 Microsoft Cost Management 를 사용하여 클러스터 리소스 그룹에서 클러스터 리소스 사용량을 측정할 수 있습니다. 그러나 일부 시나리오는 해당 솔루션만으로는 기본적으로 다루지 않습니다. 예를 들면 다음과 같습니다.
- 컴퓨팅, 네트워크 및 스토리지와 같은 리소스 사용량에 대한 세분화된 분석입니다.
- 개별 애플리케이션 비용과 공유 비용을 구분합니다.
- 동일한 구독 범위의 여러 클러스터에서 비용을 분석합니다.
비용 가시성을 높이기 위해 AKS는 Microsoft Cost Management와 통합되어 클러스터 및 네임스페이스와 같은 Kubernetes 구문에서 자세한 비용 드릴다운을 제공합니다. 이 통합을 통해 Azure 컴퓨팅, 네트워크 및 스토리지 범주에서 비용 분석을 수행할 수 있습니다.
AKS 비용 분석 추가 기능은 사용량 현황 데이터 수집을 위한 오픈 소스 프로젝트인 OpenCost를 기반으로 합니다. Azure 청구서와 데이터를 조정하여 비용 가시성을 제공합니다. 사후 처리된 데이터는 Cost Management 비용 분석 포털에 직접 표시됩니다. 자세한 내용은 Azure Kubernetes Service 비용 분석을 참조 하세요.
비용 정의
Kubernetes 네임스페이스 및 자산 보기에는 다음과 같은 요금이 표시됩니다.
- 유휴 요금: 어떤 워크로드에서도 사용되지 않은 가용 리소스 용량의 요금을 나타냅니다.
- 서비스 요금: SLA(작동 시간 서비스 수준 계약) 및 컨테이너용 Microsoft Defender와 같은 서비스와 관련된 요금을 나타냅니다.
- 시스템 요금: 클러스터에 필요한 시스템 프로세스를 실행하기 위해 각 노드에서 AKS가 예약한 용량 비용을 나타냅니다.
- 할당되지 않은 요금: 네임스페이스에 할당할 수 없는 리소스 요금을 나타냅니다.
AKS 비용 기본 사항
Kubernetes 아키텍처는 컨트롤 플레인과 하나 이상의 노드 또는 노드 풀이라는 두 계층을 기반으로 합니다. AKS 가격 책정 모델은 두 Kubernetes 아키텍처 계층을 기반으로 합니다.
컨트롤 플레인은 API 서버 및
etcd
와 같은 핵심 Kubernetes 서비스와 애플리케이션 워크로드 오케스트레이션을 제공합니다. Azure 플랫폼은 AKS 컨트롤 플레인을 관리하며 AKS 무료 계층의 경우 컨트롤 플레인은 비용이 들지 않습니다.에이전트 노드 또는 작업자 노드라고도 하는 노드가 Kubernetes 워크로드 및 애플리케이션을 호스트합니다. AKS에서 고객은 에이전트 노드에 대한 모든 비용을 완전히 관리하고 지불합니다.
다음 다이어그램은 AKS Kubernetes 아키텍처의 컨트롤 플레인과 노드 간의 관계를 보여 줍니다.
제어 평면
AKS 클러스터를 만들 때 Azure는 컨트롤 플레인 계층을 자동으로 프로비저닝하고 구성합니다. AKS 무료 계층의 경우 컨트롤 플레인은 무료입니다.
더 높은 제어 평면 SLA(서비스 수준 계약)의 경우 표준 계층에서 AKS 클러스터를 만들 수 있습니다. 작동 시간 SLA는 기본적으로 표준 계층에 포함되며 클러스터별로 사용하도록 설정됩니다. 가격은 시간당 클러스터당 $0.10입니다. 자세한 내용은 AKS 가격 책정 세부 정보를 참조 하세요.
표준 계층의 클러스터에는 API 서버 인스턴스 수, Etcd 리소스 제한, 최대 5,000개의 노드 확장성 및 재정적으로 지원되는 기존 가동 시간 SLA 지원과 같은 제어 평면 리소스가 더 많이 있습니다. AKS는 가용성 요구 사항을 충족하기 위해 업데이트 및 장애 도메인에서 주 노드 복제본을 사용합니다.
프로덕션 워크로드에서 표준 계층을 사용하여 더 높은 제어 평면 구성 요소 가용성을 제공하는 것이 가장 좋습니다. 무료 계층 클러스터에는 복제본이 적고 제어 평면 리소스가 제한되어 있으며 프로덕션 워크로드에는 권장되지 않습니다.
노드
AKS에서는 하나 이상의 노드 풀에 에이전트 또는 작업자 노드를 만듭니다. 이 노드는 Kubernetes 환경 내에서 많은 Azure 핵심 기능을 사용할 수 있습니다. AKS는 AKS 클러스터에 연결된 노드에 대해서만 비용을 청구합니다.
AKS 노드는 가상 머신 확장 집합, 가상 네트워크 및 관리형 디스크를 포함하여 여러 Azure 인프라 리소스를 사용합니다. 예를 들어 AKS 내에서 직접 대부분의 Azure VM(가상 머신) 유형을 사용할 수 있습니다. 컴퓨팅에 Azure Reservations 및 Azure 절감 플랜을 사용하여 이러한 리소스에 대한 상당한 할인을 받을 수 있습니다.
AKS 클러스터 가격 책정은 노드 풀에 있는 VM의 클래스, 개수 및 크기를 기반으로 합니다. VM 비용은 크기, CPU 유형, vCPU 수, 메모리, 제품군 및 사용 가능한 스토리지 유형(예: 고성능 SSD(반도체 드라이브) 또는 표준 HDD)에 따라 달라집니다. 자세한 내용은 가상 머신 시리즈를 참조하세요. 애플리케이션 요구 사항, 노드 수 및 클러스터 스케일링 성능 필요성에 따라 노드 크기를 계획합니다.
에이전트 노드 및 노드 풀에 대한 자세한 내용은 이 시리즈의 노드 풀 문서 및 AKS(Azure Kubernetes Service)에서 클러스터에 대한 여러 노드 풀 만들기 및 관리를 참조하세요.
AKS 클러스터 배포
각 AKS 배포는 두 Azure 리소스 그룹에 걸쳐 있습니다.
Kubernetes 서비스 리소스만 포함하고 관련 비용이 없는 첫 번째 리소스 그룹을 만듭니다.
AKS 리소스 공급자는 배포 중 두 번째 또는 노드 리소스 그룹을 자동으로 만듭니다. 이 리소스 그룹의 기본 이름은
MC_<resourcegroupname>_<clustername>_<location>
이지만, 다른 이름을 지정할 수 있습니다. 자세한 내용은 AKS 노드 리소스 그룹에 대한 고유한 이름 제공을 참조하세요.노드 리소스 그룹에는 모든 클러스터 인프라 리소스가 포함되며 구독에 대한 요금을 표시하는 리소스입니다. 리소스에는 Kubernetes 노드 VM, 가상 네트워킹, 스토리지 및 기타 서비스가 포함됩니다. AKS는 클러스터가 삭제될 때마다 노드 리소스 그룹을 자동으로 삭제하므로, 클러스터의 수명 주기를 공유하는 리소스에만 사용해야 합니다.
컴퓨팅 비용
크기 및 사용량에 따라 Azure VM에 대한 요금을 지불합니다. Azure 컴퓨팅이 AWS와 비교되는 방법에 대한 자세한 내용은 Azure 및 AWS의 컴퓨팅 서비스를 참조하세요.
일반적으로 노드 풀에 대해 선택하는 VM 크기가 클수록 에이전트 노드의 시간당 비용이 올라갑니다. GPU(그래픽 처리 장치)가 지원되거나 메모리가 최적화되는 등 노드 풀에 사용하는 VM 시리즈가 특수화될수록, 풀의 비용이 많이 듭니다.
Azure VM 가격 책정을 조사할 때 다음 사항에 유의하세요.
가격 책정은 지역마다 다르며 지역마다 일부 서비스 및 VM 크기를 사용할 수 없습니다.
여러 유형의 워크로드에 최적화된 여러 VM 제품군이 있습니다.
OS 드라이브로 사용되는 관리형 디스크는 별도로 요금이 부과되며 그 비용을 예상 비용을 추가해야 합니다. 관리 디스크 크기는 표준 HDD, 표준 SSD, 프리미엄 SSD 또는 Ultra Disk Storage와 같은 클래스에 따라 달라집니다. IOPS(초당 입력 출력 작업 수) 및 처리량(MB/초)은 크기와 클래스에 따라 달라집니다. 임시 OS 디스크는 무료이며 VM 가격에 포함됩니다.
영구 볼륨 클레임을 사용하여 만든 데이터 디스크는 선택 사항이며 표준 HDD, 표준 SSD, 프리미엄 SSD 및 Ultra Disk Storage와 같은 클래스에 따라 개별적으로 요금이 청구됩니다. 비용 예측에 데이터 디스크를 명시적으로 추가해야 합니다. 허용되는 데이터 디스크, 임시 스토리지 SSD 및 IOPS 수와 처리량(MB/초)은 VM 크기 및 클래스에 따라 달라집니다.
에이전트 노드가 작동되고 실행되는 시간이 많을수록 총 클러스터 비용이 올라갑니다. 개발 환경은 일반적으로 지속적으로 실행할 필요가 없습니다.
NIC(네트워크 인터페이스)는 무료입니다.
스토리지 비용
CSI(Container Storage Interface)는 블록과 파일 스토리지 시스템을 Kubernetes의 컨테이너화된 워크로드에 공개하는 표준입니다. CSI를 채택하고 사용하면 AKS는 핵심 Kubernetes 코드를 조정하고 릴리스 주기를 기다릴 필요 없이 Kubernetes 스토리지 시스템을 공개하는 플러그인을 작성, 배포 및 반복할 수 있습니다.
AKS 클러스터에서 CSI 영구 볼륨을 사용하는 워크로드를 실행하는 경우 애플리케이션이 프로비저닝하고 사용하는 스토리지의 관련 비용을 고려하세요. AKS의 CSI 스토리지 드라이버는 다음 스토리지 옵션에 대한 기본 지원을 제공합니다.
Azure 디스크는 Kubernetes 데이터 디스크 리소스를 만듭니다. 디스크는 고성능 SSD를 통해 지원되는 Azure Premium Storage 또는 일반 HDD나 표준 SSD를 통해 지원되는 Azure Standard Storage를 사용할 수 있습니다. 대부분의 프로덕션 및 개발 워크로드는 Premium Storage를 사용합니다. Azure 디스크는
ReadWriteOnce
로 탑재되어, 한 AKS 노드에서만 사용할 수 있습니다. 여러 Pod에서 동시에 액세스할 수 있는 스토리지 볼륨에는 Azure Files를 사용합니다. 비용 정보는 Managed Disks 가격 책정을 참조하세요.Azure Files는 Azure Storage 계정에서 지원되는 SMB(서버 메시징 블록) 3.0/3.1 파일 공유를 AKS Pod에 탑재합니다. 여러 노드 및 Pod 간에 데이터를 공유할 수 있습니다. Azure Files는 일반 HDD를 통해 지원되는 표준 스토리지 또는 고성능 SSD를 통해 지원되는 프리미엄 스토리지를 사용할 수 있습니다. Azure Files는 Azure Storage 계정을 사용하며 다음 요인에 따라 요금이 발생합니다.
- 서비스: Blob, 파일, 큐, 테이블 또는 비관리형 디스크
- 스토리지 계정 유형: GPv1, GPv2, Blob 또는 프리미엄 Blob
- 복원력: LRS(로컬 중복 스토리지), ZRS(영역 중복 스토리지), GRS(지역 중복 스토리지) 또는 RA-GRS(읽기 액세스 지역 중복 스토리지)
- 액세스 계층: 핫, 쿨 또는 보관
- 작업 및 데이터 전송
- 사용된 용량(GB)
Azure NetApp Files는 여러 SKU 계층에서 사용할 수 있으며 최소 4TiB의 프로비저닝된 용량이 필요하며 1TiB가 증가합니다. Azure NetApp Files 요금은 다음 요인을 기반으로 합니다.
- SKU
- 복원력: LRS, ZRS 또는 GRS
- 사용된 용량이 아닌 프로비저닝된 크기 또는 용량
- 작업 및 데이터 전송
- 백업 및 복원
네트워킹 비용
여러 Azure 네트워킹 서비스는 AKS에서 실행되는 애플리케이션에 대한 액세스를 제공할 수 있습니다.
Azure Load Balancer. 기본적으로 부하 부산 장치는 표준 SKU를 사용합니다. 부하 분산 장치 요금은 다음을 기반으로 합니다.
- 규칙: 구성된 부하 분산 및 아웃바운드 규칙 수입니다. 인바운드 NAT(Network Address Translation) 규칙은 총 규칙 수를 계산하지 않습니다.
- 처리된 데이터: 규칙에 관계없이, 인바운드 및 아웃바운드에서 처리된 데이터의 양. 규칙이 구성되지 않은 표준 부하 분산 장치에는 시간당 요금이 부과되지 않습니다.
Azure Application Gateway. AKS는 Application Gateway 수신 컨트롤러를 통해 또는 수동 관리형 Application Gateway를 사용하는 다른 수신 컨트롤러를 전면에 배치하여 Application Gateway를 사용합니다. Application Gateway는 게이트웨이 라우팅, TLS(전송 계층 보안) 종료 및 웹 애플리케이션 방화벽 기능을 지원합니다. Application Gateway 요금은 다음을 기반으로 합니다.
- 시간 또는 부분 시간별로 설정된 고정 가격.
- 추가 소비 기반 비용인 용량 단가. 각 용량 단위에는 최대 하나의 컴퓨팅 단위, 2,500개의 영구 연결 및 2.22Mbps 처리량이 있습니다.
공용 IP 주소에는 다음에 따라 달라지는 관련 비용이 있습니다.
- 예약된 연결과 동적 연결 비교.
- 기본 계층과 보안된 영역 중복 표준 계층 비교.
스케일 아웃 비용
노드 풀에 추가 용량을 추가하기 위해 AKS 클러스터를 스케일링하는 여러 옵션이 있습니다.
요청 시 노드 풀의 일부인 VM 수를 수동으로 업데이트하거나 노드 풀을 더 추가할 수 있습니다.
AKS 클러스터 자동 크기 조정기는 리소스 제약 조건 때문에 노드에 예약할 수 없는 Pod를 감시하고 자동으로 노드 수를 증가시킵니다.
AKS는 가상 kubelet 구현을 사용하여 Azure Container Instances의 컨테이너 실행을 지원합니다. AKS 가상 노드는 몇 초 만에 시작하는 Container Instances Pod를 프로비저닝하여 AKS가 평균 워크로드에 충분한 용량으로 실행되도록 합니다. AKS 클러스터의 용량이 부족하면 추가 서버를 관리하지 않고도 더 많은 Container Instances Pod를 스케일 아웃할 수 있습니다. 이 접근 방식을 클러스터 자동 크기 조정기 및 수동 스케일링과 결합할 수 있습니다.
주문형 스케일링 또는 클러스터 자동 크기 조정기를 사용하는 경우 추가된 VM을 고려합니다. Container Instances 요금은 다음 요인에 기반합니다.
- 컨테이너 그룹당 사용량 기반 메트릭 청구
- 컬렉션 vCPU 및 메모리
- 단일 컨테이너 사용 또는 여러 컨테이너 공유
- 네트워크 및 노드 수명 주기를 공유하는 공동 예약 컨테이너 사용
- 이미지 끌어오기 시작 또는 다시 시작에서 중지될 때까지 계산된 사용 기간
- Windows 컨테이너 그룹에 대해 추가된 요금
업그레이드 비용
AKS 클러스터 수명 주기 중에는 최신 Kubernetes 버전으로 정기적으로 업그레이드됩니다. 최신 보안 릴리스를 적용하고 최신 기능을 얻는 것은 중요합니다. AKS 클러스터 및 단일 노드 풀을 수동 또는 자동으로 업그레이드할 수 있습니다. 자세한 내용은 AKS(Azure Kubernetes Service) 클러스터 업그레이드를 참조하세요.
기본적으로 AKS는 하나의 추가 노드를 사용하여 서지로 업그레이드를 구성합니다. max-surge
설정에 대한 1
의 기본값은 기존 애플리케이션을 통제하거나 드레이닝하기 전에 이전 버전 노드를 대체할 추가 노드를 만들어 워크로드 중단을 최소화합니다. 노드 풀당 max-surge
값을 사용자 지정하여 업그레이드 속도와 업그레이드 중단 간의 절충안을 허용할 수 있습니다. max-surge
값을 증가시키면 업그레이드 프로세스가 더 빠르게 완료되지만, max-surge
에 대한 값이 크면 업그레이드 프로세스 중에 중단이 발생하고 추가 VM에 대한 추가 비용이 발생할 수 있습니다.
기타 비용
사용량 및 요구 사항에 따라, AKS 클러스터에는 다음과 같은 추가 비용이 발생할 수 있습니다.
기본, 표준 또는 프리미엄 SKU, 이미지 빌드 및 사용된 스토리지에 따른 Azure Container Registry 비용. 추가된 데이터 전송 요금을 방지하기 위해 클러스터와 동일한 지역에 Container Registry를 배포합니다. 필요한 경우 복제를 사용하고 가능한 한 이미지 크기를 줄여 스토리지 비용 및 배포 시간을 줄이세요.
Azure에서 아웃바운드 데이터 전송뿐만 아니라, 지역 간 트래픽.
데이터베이스와 같은 기타 스토리지 또는 PaaS(Platform as a Service) 서비스.
AKS 워크로드의 퍼블릭 엔드포인트로 트래픽을 라우팅하는 Azure Traffic Manager 또는 Azure Front Door와 같은 글로벌 네트워킹 서비스.
AKS 클러스터로 드나드는 트래픽을 검사하고 허용하거나 차단하는 Azure Firewall과 같은 방화벽 및 보호 서비스.
Azure Monitor Container Insights, Azure Monitor Application Insights 및 Cloud용 Microsoft Defender와 같은 모니터링 및 로깅 서비스. 자세한 내용은 Container Insights에 대한 모니터링 비용 이해를 참조하세요.
Azure DevOps Services 또는 GitHub와 같은 DevOps 도구와 관련된 비용.
비용 최적화
다음 권장 사항은 AKS 클러스터 비용을 최적화하는 데 도움이 됩니다.
AKS용 Azure Well-Architected Framework의 비용 최적화 섹션을 검토하세요.
다중 테넌트 솔루션의 경우 물리적 격리는 비용이 많이 들고 관리 오버헤드를 추가합니다. 논리적 격리는 더 많은 Kubernetes 경험이 필요하고 변경 및 보안 위협에 대한 노출 영역을 증가시키지만 비용을 공유합니다.
Azure Reservations는 AKS 클러스터의 VM과 같은 여러 제품에 대한 1년 또는 3년 플랜으로 커밋하여 비용을 절약하는 데 도움을 줄 수 있습니다. 용량을 예약하여 할인을 받을 수 있습니다. 스토리지 및 컴퓨팅에 대한 Azure 예약을 사용하여 에이전트 노드 비용을 절감합니다.
예약은 용량제 가격에서 최대 72%까지 리소스 비용을 줄일 수 있고 리소스의 런타임 상태에는 영향을 주지 않습니다. 예약을 구매한 후 일치하는 리소스에 할인이 자동으로 적용됩니다. Azure Portal에서 또는 Azure REST API, PowerShell 또는 Azure CLI를 사용하여 예약을 구매할 수 있습니다. Log Analytics 작업 영역에 의존하는 작업 도구를 사용하는 경우, 이 스토리지에도 Reservations를 사용하는 것이 좋습니다.
AKS 클러스터에 하나 이상의 스폿 노드 풀을 추가하세요. 스폿 노드 풀은 Azure Spot Virtual Machine Scale Sets에서 지원되는 노드 풀입니다. AKS 클러스터 노드에 스폿 VM을 사용하면 상당한 비용 절감을 얻으면서 미사용 Azure 용량을 이용할 수 있습니다. 사용 가능한 미사용 용량의 양은 노드 크기, 지역 및 하루 중 시간을 비롯한 여러 요인에 따라 달라집니다. 사용 가능한 용량이 있지만 스폿 노드에 대한 SLA가 없는 경우 Azure에서 스폿 노드를 할당합니다. 스폿 노드 풀을 백업하는 스폿 확장 집합은 단일 장애 도메인에 배포되며 고가용성 보장을 제공하지 않습니다. Azure에 용량이 다시 필요하면 Azure 인프라는 스폿 노드를 제거합니다.
스폿 노드 풀을 만들 때 시간당 지불할 최대 가격을 정의하고 스폿 노드 풀에 권장되는 클러스터 자동 크기 조정기를 사용할 수 있습니다. 클러스터 자동 크기 조정기는 실행 중인 워크로드에 따라 노드 풀의 노드 수를 스케일 아웃 및 스케일 인합니다. 스폿 노드 풀의 경우 여전히 노드가 필요하면 클러스터 자동 크기 조정기가 제거 후 노드 수를 스케일 아웃합니다. 자세한 내용은 AKS(Azure Kubernetes Service) 클러스터에 스폿 노드 풀 추가를 참조하세요.
워크로드의 CPU 및 메모리 요구 사항에 따라 AKS 클러스터 노드 풀에 적합한 VM 크기를 선택합니다. Azure는 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합을 사용하여 광범위한 사용 사례에 맞는 다양한 VM 인스턴스 유형을 제공합니다. 모든 유형은 하나 이상의 크기로 제공되므로, 리소스를 쉽게 스케일링할 수 있습니다.
이제 Ampere Altra ARM 기반 프로세서에서 실행되는 AKS를 사용하여 컨테이너화된 애플리케이션을 배포하고 관리할 수 있습니다. 자세한 내용은 Ampere Altra ARM 기반 프로세서를 사용하는 Azure Virtual Machines를 참조하세요.
특수 목적 및 워크로드를 위해 VM 크기가 다른 여러 노드 풀을 만듭니다. Kubernetes 테인트 및 톨러레이션 및 노드 레이블을 사용하여 특정 노드 풀에 리소스를 많이 사용하는 애플리케이션을 배치하여 노이지 네이버 문제를 피합니다. 노드 리소스가 필요한 워크로드에 이러한 노드 리소스를 계속 사용하도록 하고, 이러한 노드에 다른 워크로드를 예약하지 않습니다. 다른 노드 풀에 서로 다른 VM 크기를 사용하면 비용을 최적화할 수도 있습니다. 자세한 내용은 AKS(Azure Kubernetes Service)에서 여러 노드 풀 사용을 참조하세요.
시스템 모드 노드 풀에는 하나 이상의 노드가 포함되어야 하는 반면, 사용자 모드 노드 풀에는 0개 이상의 노드가 포함될 수 있습니다. 가능하면 사용자 모드 노드 풀을 구성하여
0
개에서N
개 노드로 자동으로 스케일링할 수 있습니다. Horizontal Pod Autoscaler를 사용하여 워크로드를 스케일 아웃하고 스케일 인하도록 구성할 수 있습니다. 자동 스케일링을 CPU 및 메모리에 기반하거나, Kubernetes 이벤트 기반 자동 스케일링(KEDA)을 사용하여 Apache Kafka, RabbitMQ 또는 Azure Service Bus와 같은 외부 시스템의 메트릭에 기반하여 자동 스케일링합니다.Pod에 대한 요청 및 제한을 적절하게 설정하여 애플리케이션 밀도를 개선하고 워크로드에 너무 많은 CPU 및 메모리 리소스가 할당되지 않도록 하세요. Prometheus 또는 Container Insights를 사용하여 CPU 및 메모리의 평균 및 최대 사용량을 관찰합니다. 배포에 대한 YAML 매니페스트, Helm 차트 및 Kustomize 매니페스트에서 Pod에 대한 제한 및 할당량을 적절하게 구성합니다.
ResourceQuota 개체를 사용하여 지정된 네임스페이스에서 실행 중인 모든 Pod의 총 메모리 및 CPU에 대한 할당량을 설정합니다. 리소스 할당량의 체계적인 사용은 노이지 네이버 문제를 방지하고, 애플리케이션 밀도를 개선하며, 에이전트 노드 수와 총 비용을 줄입니다. 또한 LimitRange 개체를 사용하여 네임스페이스의 Pod에 대한 기본 CPU 및 메모리 요청을 구성합니다.
버스팅에 Container Instances를 사용합니다.
AKS 워크로드는 개발 클러스터 노드 풀의 특정 워크로드와 같이 지속적으로 실행할 필요가 없을 수 있습니다. 비용을 최적화하기 위해 AKS 클러스터를 완전히 끄거나 AKS 클러스터에서 하나 이상의 노드 풀을 중지할 수 있습니다. 자세한 내용은 AKS(Azure Kubernetes Service) 클러스터 중지 및 시작 및 AKS(Azure Kubernetes Service)에서 노드 풀 시작 및 중지를 참조하세요.
Azure Policy는 기본 제공 정책을 통해 AKS와 통합하여 중앙 집중식의 일관된 대규모 적용 및 안전 장치를 적용합니다. 클러스터에서 Azure Policy 추가 기능을 사용하도록 설정하고 기본 CPU 요청 및 제한 및 메모리 리소스 제한을 적용합니다. 그렇게 하면 CPU 및 메모리 리소스 제한이 클러스터 컨테이너에 정의됩니다.
Azure Advisor를 사용하여 미사용 리소스를 모니터링하고 해제합니다.
Microsoft Cost Management 예산 및 검토를 사용하여 지출을 추적합니다.
비용 거버넌스
클라우드는 비즈니스 워크로드의 기술적 성능을 크게 향상시킬 수 있습니다. 클라우드 기술은 조직 자산 관리의 비용과 오버헤드를 줄일 수도 있습니다. 그러나 클라우드 배포는 낭비 및 비효율성의 가능성을 높일 수 있으므로 이 비즈니스 기회는 위험도 야기합니다.
비용 거버넌스는 지출과 비용을 제한하기 위한 정책 또는 제어를 지속적으로 구현하는 프로세스입니다. Native Kubernetes 도구와 Azure 도구 모두 자동 관리 모니터링 및 기본 인프라 비용 최적화를 통해 비용 거버넌스를 지원합니다.
Microsoft Cost Management 는 Azure 워크로드 비용을 분석, 관리 및 최적화하는 데 도움이 되는 Microsoft 도구 모음입니다. 도구 모음을 사용하여 조직이 클라우드에서 제공하는 이점을 활용하도록 해줍니다.
Cost Management 분야에 대한 클라우드 채택 프레임워크 거버넌스 모범 사례를 검토하여 클라우드 비용을 관리하고 통제하는 방법을 더 잘 이해합니다.
KubeCost와 같은 오픈 소스 도구를 탐색하여 AKS 클러스터 비용을 모니터링하고 관리합니다. 비용 할당 범위를 배포, 서비스, 레이블, Pod 및 네임스페이스로 지정할 수 있어 클러스터 사용자를 표시하고 요금을 청구하는 데 유연성을 제공합니다.
참조 자료
AKS 비용 분석을 더 잘 이해하고 활용하는 데 도움이 되는 몇 가지 참조 자료는 다음과 같습니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
주요 작성자:
- Paolo Salvatori | 수석 시스템 엔지니어
- Laura Nicolas | 클라우드 솔루션 설계자
기타 기여자:
- Chad Kittel | 주 소프트웨어 엔지니어
- Ed Price | 선임 콘텐츠 프로그램 관리자
- Theano Petersen | 기술 작가
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.
다음 단계
- Amazon EKS 전문가용 AKS
- Kubernetes ID 및 액세스 관리
- Kubernetes 모니터링 및 로깅
- Kubernetes에 대한 네트워크 액세스 보호
- Kubernetes 클러스터에 대한 스토리지 옵션
- Kubernetes 노드 및 노드 풀 관리
- 클러스터 거버넌스