AWS EKS Cost Explorer 비용 분석하기

by 멘토사피엔스

EKS 비용이 복잡하게 발생하고 있어 정확한 비용 진단과 효율적인 관리에 어려움을 겪을 수 있습니다. 특히, EKS의 비용은 제어 플레인, 워커 노드, 그리고 다양한 연관 서비스에서 발생하므로, 전체 비용 구조를 명확히 이해하고 분석하는 것이 필수적인 상황입니다.


AWS Cost Explorer를 활용하여 EKS 비용을 체계적으로 분석하고, 주요 비용 발생 항목을 식별하며, 이를 바탕으로 효과적인 비용 절감 방안을 수립해야 합니다. 구체적으로, Cost Explorer의 UsageType, Resource ID, Tag 등의 그룹핑 및 필터링 기능을 활용하여 클러스터별, 서비스별 비용을 심층 진단하는 것이 목표입니다.


이 분석을 통해 EKS 비용의 주요 원인을 파악하고, 불필요한 비용을 제거하며, 장기적인 비용 효율성을 확보하고자 합니다. 궁극적으로는 안정적인 서비스 운영을 유지하면서도 EKS비용을 최적화하여 비즈니스 가치를 극대화할 필요가 있습니다.


EKS 비용 진단 및 분석


AWS EKS(Elastic Kubernetes Service)는 컨테이너화된 애플리케이션을 운영하는 데 필수적인 서비스입니다. 강력한 기능을 제공하지만, 복잡한 비용 구조를 정확히 이해하고 현재 비용을 진단해야 효율적인 관리가 가능합니다. EKS 비용은 주로 Control Plane, Data Plane(워커 노드), 그리고 연관 서비스에서 발생하므로, 이 항목들을 중심으로 분석해야 효과적인 비용 절감 전략을 수립할 수 있습니다.


EKS의 비용을 분석하려면 AWS Cost Explorer를 활용하는 것이 가장 효과적입니다. 다음은 Cost Explorer를 통해 EKS 비용을 확인하고 분석하는 구체적인 방법입니다.


Cost Explorer 접속 방법


AWS EKS 비용 분석을 시작하려면, 먼저 AWS Management Console에 로그인하세요. 콘솔 상단의 검색창에 "Cost Explorer"를 입력하여 해당 서비스를 선택한 다음, "Cost Explorer 열기" 버튼을 클릭하여 비용 분석 도구에 진입합니다.


Group By 설정


비용 데이터를 효과적으로 분류하고 분석하려면 Group By 항목을 전략적으로 설정하는 것이 중요합니다. EKS 관련 비용을 파악할 때는 다음 기준들을 활용하는 것이 특히 효과적입니다.


UsageType

이 설정을 통해 EKS의 다양한 과금 요소별로 비용 항목을 명확하게 구분할 수 있습니다. 예를 들어, EKS Control Plane 사용 시간(Cluster-Hours), EC2 워커 노드 인스턴스 사용료(BoxUsage), Fargate vCPU/메모리 사용료, EBS 볼륨 비용 등을 명확히 분리하여 볼 수 있습니다. 이를 통해 어떤 사용 패턴이 전체 EKS 비용에서 가장 큰 비중을 차지하는지 한눈에 파악하여 최적화의 우선순위를 정할 수 있습니다.


Resource ID

Resource ID를 기준으로 그룹핑하면 각 EKS 클러스터(ARN)나 EC2 워커 노드(Instance ID)별로 발생하는 개별 비용을 상세히 확인할 수 있습니다. 이를 통해 "어떤 클러스터 또는 노드가 가장 많은 비용을 발생시키고 있는가?"를 명확히 파악하고, 특정 애플리케이션이나 서비스에 연결된 클러스터의 비용을 심층 분석할 수 있습니다.


Tag

EKS 환경에서는 리소스에 Tag를 적용하여 비용을 추적하는 것이 매우 중요합니다. 예를 들어, team, project, environment 같은 태그를 기준으로 그룹핑하면, 특정 팀이나 프로젝트에서 사용하는 EKS 관련 리소스(EC2, EBS, ALB 등)의 총비용을 정확하게 추적하고 분배할 수 있습니다.


필터링 설정


정확하고 집중적인 EKS 비용 분석을 위해서는 다음 필터링 설정을 적용해야 합니다. EKS 비용은 여러 서비스에 걸쳐 발생하므로 다중 필터링이 필수적입니다.


Service

Service 필터에서 단일 서비스가 아닌 EKS와 관련된 모든 서비스를 선택해야 합니다.

Elastic Kubernetes Service: Control Plane 비용을 확인하기 위해 필수입니다.

Elastic Compute Cloud (EC2): EC2 워커 노드, EBS 볼륨, NAT Gateway, Application Load Balancer(ALB) 등 가장 많은 비용이 발생하는 서비스를 포함합니다.

AWS Fargate: 서버리스 방식의 Pod를 사용하고 있다면 반드시 포함해야 합니다.


UsageType

UsageType 필터에서는 EKS의 주요 비용 항목들을 세부적으로 선택하여 분석할 수 있습니다. 여기에는 주로 다음과 같은 항목들이 포함됩니다.

EKS-Cluster-Hours: EKS Control Plane의 고정 비용을 나타냅니다.

BoxUsage: t3.medium, m5.large 등 워커 노드로 사용되는 EC2 인스턴스 타입별 사용 요금입니다.

DataTransfer-Out-Bytes: 인터넷으로 나가는 데이터 전송 요금으로, 주로 NAT Gateway나 ALB를 통해 발생합니다.

NatGateway-Bytes: Private Subnet의 Pod가 외부와 통신할 때 발생하는 데이터 처리 비용입니다. 이 항목이 높다면 VPC 엔드포인트 사용을 고려해볼 수 있습니다.

EBS:VolumeUsage: Pod가 사용하는 Persistent Volume(PV)의 스토리지 비용입니다.

LoadBalancerUsage: Kubernetes Ingress나 Service를 통해 생성된 ALB/NLB의 사용 요금입니다.


EKS 비용 분석 기간 설정


AWS EKS 비용의 시간적 변화를 파악하고 심층 분석하기 위해서는 적절한 트렌드 분석 기간을 설정하는 것이 중요합니다.


일별 분석

EKS 비용 데이터의 일별 추이를 분석하는 것은 특정 날짜에 발생한 비용 급증의 원인을 파악하는 데 특히 유용합니다.

용도: 예를 들어, 특정 배포 이후 Pod가 비정상적으로 스케일 아웃되거나, 개발자가 테스트용 클러스터를 삭제하지 않고 퇴근하여 불필요한 비용이 발생한 경우를 즉시 식별할 수 있습니다.

활용 팁: 일별 그래프에서 갑작스러운 스파이크를 발견하면, 해당 날짜의 클러스터 오토스케일러 로그나 EC2 인스턴스 생성 기록을 확인하여 원인을 심층적으로 조사할 수 있습니다.


월별 분석

장기적인 관점에서 EKS 비용 추세를 파악하려면 월별 분석이 적합합니다. 이는 서비스 운영의 큰 그림을 이해하고 전략적인 최적화 방안을 모색하는 데 도움을 줍니다.

용도: 월별 분석을 통해 서비스 성장과 함께 워커 노드 비용이 꾸준히 증가하는 패턴을 파악하거나, Savings Plans 또는 스팟 인스턴스 도입 후 비용 절감 효과를 장기적인 관점에서 확인할 수 있습니다.

활용 팁: 월별 EC2 비용이 지속적으로 증가하는 패턴을 파악하면, 워커 노드 인스턴스 타입을 최적화(Right-Sizing)하거나, 사용률이 낮은 시간대에 클러스터를 축소하는 등의 구조적인 최적화 방안을 모색할 수 있습니다.


이처럼 EKS 비용을 체계적으로 분석하고 모니터링함으로써, 안정적인 서비스를 운영하면서도 클러스터 관련 비용을 효율적으로 관리할 수 있습니다. 예를 들어, 특정 일자에 NatGateway-Bytes 비용이 급증했다면, 특정 Pod가 외부 API를 과도하게 호출하거나 대용량 이미지를 외부 레지스트리에서 반복적으로 다운로드하는 등의 원인을 의심해볼 수 있습니다.


Cost Explorer 항목 분석


AWS Cost Explorer는 AWS 사용량과 비용을 시각화하고 관리하는 데 유용한 도구입니다. 특히 Amazon EKS 클러스터 비용을 분석할 때는 EKS 자체뿐만 아니라 워커 노드(EC2), 스토리지(EBS) 등 여러 AWS 서비스의 비용을 종합적으로 고려해야 합니다.


아래는 EKS 비용 분석 시 Cost Explorer에서 자주 접하게 되는 항목들을 그룹별로 상세하게 정리한 내용입니다.


Amazon EKS 제어 plane(클러스터 시간)


EKS 클러스터의 제어 플레인(Control Plane) 자체에 대한 비용입니다. 이 비용은 워커 노드 비용과는 별개이며, EKS 클러스터를 생성하고 유지하는 데 드는 고정 비용으로 볼 수 있습니다.


APN2-AmazonEKS-Hours:perCluster

표준 지원(Standard Support) 상태의 EKS 클러스터 운영 시간에 대한 과금 항목입니다. 클러스터당 시간당 요금으로 청구됩니다. 리전별로 요금이 다를 수 있으며, 일반적으로 시간당 $0.10(USD)입니다.


APN2-AmazonEKS-Hours:extendedSupport

EKS 확장 지원(Extended Support) 버전을 사용할 때 발생하는 클러스터 운영 시간 과금 항목입니다. 확장 지원 버전은 표준 지원 버전보다 높은 요금이 부과되며, 이 항목은 CUR(Cost and Usage Report) 라인 아이템에 명시적으로 나타납니다.


워커 노드(EC2) – 인스턴스/크레딧


EKS 클러스터에서 실제 워크로드를 실행하는 워커 노드(Worker Node)는 대부분 EC2 인스턴스로 구성됩니다. 따라서 EKS 비용을 정확히 파악하려면 EC2 서비스 비용을 함께 분석하는 것이 필수적입니다. Cost Explorer에서 Service를 Amazon EC2로 설정하고 확인해야 하는 주요 항목들입니다.


APN2-BoxUsage:c6i.large

온디맨드(On-Demand) EC2 인스턴스 사용 시간에 대한 과금 항목입니다. BoxUsage:<InstanceType> 패턴으로 표시되며, 사용한 인스턴스 타입에 따라 요금이 청구됩니다.


APN2-SpotUsage:m7g.large

스팟(Spot) 인스턴스 사용 시간에 대한 과금 항목입니다. SpotUsage:<InstanceType> 패턴으로, 온디맨드보다 저렴한 비용으로 인스턴스를 사용할 수 있습니다.


APN2-CPUCredits:t3.medium

T 시리즈(T-series)와 같은 버스트(Burst) 가능한 인스턴스에 대한 CPU 크레딧 과금 항목입니다. 기준 성능을 초과하여 CPU를 사용할 때 발생하는 비용입니다.


EKS on Fargate


EKS on Fargate는 워커 노드를 직접 관리할 필요 없이 컨테이너를 실행할 수 있는 서비스입니다. Fargate 사용 비용은 vCPU 시간과 메모리 GB-시간을 기준으로 명확하게 분리되어 청구됩니다. Cost Explorer에서 Service를 AWS Fargate로 설정하면 해당 항목들을 확인할 수 있습니다.


APN2-Fargate-vCPU-Hours:perCPU(Hrs)

Fargate에서 사용한 vCPU 시간에 대한 과금 항목입니다.


APN2-Fargate-GB-Hours(Hrs)

Fargate에서 사용한 메모리(GB) 시간에 대한 과금 항목입니다.


APN2-SpotUsage-Fargate-vCPU-Hours:perCPU(Hrs)

Fargate 스팟 인스턴스에서 사용한 vCPU 시간에 대한 과금 항목입니다.


스토리지(EBS, 스냅샷)


EKS 워커 노드에 연결된 볼륨(Volume)이나 퍼시스턴트 볼륨 클레임(PVC)으로 사용되는 EBS 비용과 EBS 스냅샷 비용이 여기에 해당됩니다. Service 항목을 Amazon EBS로 설정하고 분석해야 합니다.


APN2-EBS:VolumeUsage.gp3

EBS gp3 볼륨의 프로비저닝된 용량(GB-월)에 대한 과금 항목입니다. EBS:VolumeUsage.gp2/gp3와 같은 패턴으로 표시됩니다.


APN2-EBS:SnapshotUsage

EBS 스냅샷 저장 용량에 대한 과금 항목입니다.


APN2-EBS:VolumeP-IOPS.gp3

gp3 볼륨에서 추가로 프로비저닝한 IOPS에 대한 요금입니다.


APN2-EBS:VolumeP-Throughput.gp3

gp3 볼륨에서 추가로 프로비저닝한 처리량(Throughput)에 대한 요금입니다.


컨테이너 레지스트리(ECR)


EKS에서 사용하는 컨테이너 이미지를 저장하는 Amazon Elastic Container Registry(ECR) 서비스 비용입니다.


APN2-TimedStorage-ByteHrs

ECR에 저장된 이미지 용량(바이트-시간)에 대한 과금 항목입니다.


APN2-DataTransfer-Out-Bytes

ECR에서 인터넷이나 다른 리전으로 이미지를 전송할 때 발생하는 데이터 전송 비용입니다.


로깅·모니터링(CloudWatch & Container Insights)


EKS 클러스터와 워크로드의 로그 및 메트릭을 수집하는 Amazon CloudWatch 비용입니다. Container Insights를 활성화하면 상세한 모니터링 비용이 발생합니다.


APN2-DataProcessing-Bytes

CloudWatch Logs로 수집 및 처리된 로그 데이터(바이트)에 대한 과금 항목입니다.


APN2-TimedStorage-ByteHrs

CloudWatch Logs에 저장된 로그 데이터(바이트-시간)에 대한 과금 항목입니다.


APN2-CW:Requests

CloudWatch API(예: PutMetricData) 호출에 대한 과금 항목입니다.


APN2-GMD-Metrics

GetMetricData 요청에 대한 과금 항목입니다.


APN2-MetricStorage:AWS/Logs-EMF

Embedded Metric Format(EMF) 메트릭 스토리지에 대한 과금 항목입니다.


Amazon Managed Service for Prometheus(AMP)


EKS 클러스터에서 Prometheus 메트릭을 수집하고 쿼리하는 데 사용되는 관리형 서비스입니다. AWS Split Cost Allocation Data(SCAD) 기능을 활용하면 CUR(Cost and Usage Report)에 파드(Pod)나 네임스페이스(Namespace) 단위의 세분화된 비용을 확인할 수 있습니다.


APN2-AMP:MetricSampleCount

수집된 메트릭 샘플 수에 대한 과금 항목입니다.


APN2-AMP:MetricStorageByteHrs

AMP에 저장된 메트릭 데이터(바이트-시간)에 대한 과금 항목입니다.


APN2-AMP:QuerySamplesProcessed

쿼리 요청 시 처리된 샘플 수에 대한 과금 항목입니다.


로드 밸런서(ELB; ALB/NLB/GWLB)


EKS 워크로드로 트래픽을 분산하기 위해 사용하는 Application Load Balancer(ALB), Network Load Balancer(NLB) 등의 비용입니다.


APN2-LoadBalancerUsage

로드 밸런서 가동 시간에 대한 과금 항목입니다.


APN2-LCUUsage

ALB/NLB의 처리 단위인 LCU(Load Balancer Capacity Unit) 사용량에 대한 과금 항목입니다.


APN2-TS-LoadBalancerUsage

ALB의 상호 TLS(Mutual TLS) 신뢰 저장소 사용 시간에 대한 과금 항목입니다.


APN2-ReservedLCUUsage

예약된 LCU 사용량에 대한 과금 항목입니다.


NAT 게이트웨이


EKS 클러스터의 프라이빗 서브넷에 있는 워커 노드가 인터넷과 통신하기 위해 사용하는 NAT(Network Address Translation) Gateway 비용입니다.


APN2-NatGateway-Hours

NAT 게이트웨이 운영 시간에 대한 과금 항목입니다.


APN2-NatGateway-Bytes

NAT 게이트웨이를 통해 처리된 데이터(GB)에 대한 과금 항목입니다.


데이터 전송(Data Transfer)


EKS 클러스터에서 발생하는 다양한 데이터 전송 비용을 포괄하는 항목입니다.


APN2-DataTransfer-Regional-Bytes

동일 리전 내 다른 가용 영역(AZ) 간의 데이터 전송에 대한 과금 항목입니다.


APN2-DataTransfer-Out-Bytes

AWS에서 인터넷으로 전송되는 아웃바운드 데이터에 대한 과금 항목입니다.


APN2-USE1-AWS-Out-Bytes / APN2-APN1-AWS-Out-Bytes

특정 리전에서 다른 리전으로 전송되는 데이터에 대한 과금 항목입니다. 예를 들어, APN2-USE1-AWS-Out-Bytes는 아시아 태평양(서울) 리전에서 미국 동부(버지니아 북부) 리전으로의 데이터 전송 비용을 의미합니다.


Cost Explorer 분석 예시


아래는 EKS의 지난 6개월 비용을 usage type과 resource id로 나누어 조회해본 결과입니다.


스크린샷 2025-05-31 오후 8.35.41.png
스크린샷_2025-05-31_오후_8_35_20.png


UsageType별 비용 분석 및 절감 기회


UsageType에 따른 월별 비용과 사용량을 먼저 보겠습니다. 여기서 주목해야 할 두 가지 항목은 APN2-AmazonEKS-Hours:extendedSupport와 APN2-AmazonEKS-Hours:perCluster입니다.


APN2-AmazonEKS-Hours:extendedSupport

총 비용: $5,791.85

총 사용량: 11,583.69시간

이 항목은 EKS 확장 지원 버전을 사용하는 클러스터에 대한 비용입니다. 이 비용이 전체 비용의 상당 부분(총 $7,505.82 중 약 77%)을 차지하고 있습니다.


확장 지원 버전은 표준 지원보다 시간당 요금이 훨씬 높습니다($0.60 vs $0.10). 2025년 4월에는 이 비용이 $0이 되었는데, 이는 확장 지원을 사용하는 클러스터들이 모두 제거되었거나 표준 지원으로 전환되었음을 의미합니다. 이미 비용 절감이 이루어졌지만, 만약 이 클러스터들이 필수적이었다면 확장 지원이 필요한지를 다시 검토하고, 가능하면 표준 지원 버전으로 마이그레이션하여 향후 비용을 절감할 수 있었을 것입니다.


APN2-AmazonEKS-Hours:perCluster

총 비용: $1,713.96

총 사용량: 17,139.64시간


이 항목은 표준 지원 EKS 클러스터 제어 플레인에 대한 비용입니다.


클러스터별 비용 분석 및 절감 기회


Resource id를 통해 개별 클러스터를 분류하여 비용 분석이 가능합니다. 즉, 각 EKS 클러스터(resource id)의 월별 비용과 사용 시간을 보여줍니다.


athena-dev-eks

2024년 11월 $432에서 2025년 4월 $72로 비용이 크게 감소했습니다. 사용량(Usage) 역시 1,440시간에서 720시간으로 줄었습니다.


athena-stg-eks와 athena-prod-eks

두 클러스터 모두 2024년 11월부터 2025년 2월까지는 꾸준히 비용이 발생했지만, 2025년 3월 이후에는 비용이 급감하여 4월에는 $0이 되었습니다.



종합 비용 절감 제안


제공된 데이터는 이미 상당한 비용 절감 노력이 이루어졌음을 보여줍니다. 2025년 4월에 전체 비용이 $144.00으로 크게 감소했는데, 이는 사용하지 않는 EKS 클러스터들을 정리하고 고가의 확장 지원 클러스터를 제거한 결과로 보입니다.


향후 추가적인 비용 절감 전략

클러스터 최적화: 현재 athena-dev-eks 클러스터만 비용이 발생하고 있는데, 이 클러스터의 실제 사용량이 지속적으로 필요한지 재평가합니다. 만약 불필요하다면 삭제하고, 필요하다면 필요할 때만 클러스터를 생성하고 사용 후 삭제하는 on-demand 또는 ephemeral 클러스터 전략을 도입하여 사용 시간을 최소화합니다.

워커 노드 비용 분석: 이 데이터에는 EKS 제어 플레인 비용만 포함되어 있습니다. EKS 클러스터의 총비용에는 워커 노드(EC2) 및 기타 종속 서비스(EBS, NAT Gateway 등) 비용이 더 큰 비중을 차지할 수 있습니다. Cost Explorer에서 Service를 Amazon EC2 등으로 변경하여 워커 노드 비용을 추가로 분석해야 합니다. 스팟 인스턴스 사용, EC2 Savings Plans 또는 Reserved Instances 적용 등을 통해 워커 노드 비용을 절감할 수 있습니다.


결론


종합적인 EKS 비용 분석 결과, 우리는 이미 athena-stg-eks, athena-prod-eks, mustlit-test-eks와 같은 불필요한 클러스터를 정리하고, 비용이 높은 확장 지원(Extended Support) 버전을 사용하는 클러스터를 제거함으로써 상당한 비용 절감 효과를 달성했습니다. 이는 2025년 4월 전체 비용이 급감한 데이터로 명확히 확인되었습니다.


앞으로 추가적인 비용 효율성을 확보하기 위한 핵심 과제는 두 가지입니다. 첫째, 현재 비용이 발생하는 유일한 클러스터인 athena-dev-eks의 사용량을 재평가하고, 필요하다면 사용 후 폐기하는 on-demand 또는 ephemeral 전략을 도입하여 불필요한 클러스터 가동 시간을 최소화해야 합니다.


둘째, EKS 제어 플레인 비용 외에 더 큰 비중을 차지할 수 있는 워커 노드(EC2) 및 기타 연관 서비스의 비용을 Cost Explorer에서 심층 분석하여 스팟 인스턴스, Savings Plans 등 비용 절감 옵션을 적극적으로 적용해야 합니다. 이처럼 지속적인 비용 최적화를 통해 안정적인 운영 환경을 유지하면서도 비용 효율을 극대화할 수 있을 것입니다.

keyword
매거진의 이전글AWS EKS 비용 구조 완전 이해하기