brunch

AWS 비용절감: Cost Explorer

비용을 절약 첫단계, Cost Explorer 이해하기

by 멘토사피엔스

요약


AWS 비용절감을 제대로 하려면 반드시 Cost Explorer의 사용법과 용어를 이해할 수 있어야 합니다. AWS의 Cost Explorer는 비용을 효율적으로 분석하고 절감 전략을 수립하는 핵심 도구입니다. 서비스, 사용량 유형, 리소스 기준으로 그룹화와 필터를 활용하면 EC2, RDS 등 AWS에서 사용하는 모든 서비스의 상세 비용을 세밀하게 보고 흐름을 추적할 수 있습니다. Cost Explorer를 사용하여 이상 현상이 있는지를 탐지하고, 조치를 취한 부분이 잘 반영되었는지를 면밀하게 파악할 수 있습니다.


개요


AWS 비용 분석의 핵심 도구인 Cost Explorer는 단순한 리포트 도구가 아닙니다. Cost Explorer를 보통 비용을 확인하는 용도로 많이 생각하지만 그 이상 자세한 정보를 내포하고 있습니다. 따라서 그 내용을 잘 이해하면 비용에 대한 분석을 다각도로 편리하게 할 수 있습니다. 더불어 실제 비용절감을 하는 것이 가능합니다. 이 글에서는 AWS 각 서비스의 비용을 절감하는 방법을 얘기하기 앞서서 가장 기본이 되는 Cost Explorer를 사용하는 방법에 대해 전반적으로 알아보고자 합니다.


AWS에 접속해서 EC2나 RDS를 검색하는 것처럼 Cost Explorer를 검색하면 쉽게 찾을 수 있습니다. 그런데 사용하는 조직에 따라서 아래와 같이 “액세스가 거부됨”이라고 표현될 수도 있습니다.

img.png


이는 AWS MSP(Managed Service Provider)라고 해서, AWS와 파트너로 계약된 회사를 사용하고 있을 경우에 발생하는 현상입니다. MSP에서 Cost Explorer를 차단하는 이유는 또 다른 주제이기 때문에 차치하겠습니다. 비용관리를 MSP에서 해주기 때문에 비용관리에 관한 부분은 AWS 콘솔에서 직접 확인할 수 없습니다라고 답변을 듣게 되실 거에요. 대신 MSP에서 제공하는 Cost Explorer 관리 서비스가 있습니다. 하지만 MSP의 규모나 개발 상황마다 AWS의 Cost Explorer가 제공하는 모든 기능을 주지 않을 수도 있습니다.


Q. Cost Explorer에서 필수로 필요한 기능은 뭘까요?

A. 항목별로 Group By, Filtering을 여러 단계에 걸쳐 볼 수 있어야 합니다. 아래 설명하는 세부 기준들을 여러가지를 한번 조합해서 볼 수 있어야 세부적인 조사가 파악 가능합니다.


img.png


위 화면은 MSP GS 네오텍에서 제공하는 Clipper라는 서비스의 대쉬보드로 Clipper에서는 Cost Explorer의 데이터를 어느정도 유사하게 확인할 수 있습니다. Cost Explorer는 대략 2-3일 전쯤의 비용과 관련된 데이터부터 제대로 확인할 수 있습니다. 오늘부터 이틀 전까지의 데이터는 집계되지 않으며 3일 전 데이터도 집계 중으로 잡힐 때가 있어 완전한 데이터가 아닐 수 있습니다.


위 대쉬보드에서는 전체적인 서비스의 비용현황을 파악할 수 있으며 월 비용이 얼마나 나올지에 대해서도 충분히 예측할 수 있습니다. 실제 대쉬보드에서 말하는 예상금액보다는 보통 더 나오게 되는데 이는 2-3일 데이터의 집계가 완전하지 않은 까닭이기도 합니다.


Cost Explorer 주요 내용


우리가 가장 밀도 있게 관심을 가지고 봐야 할 메뉴는 Cost Explorer이고 아래 화면과 같습니다.


img.png


위 화면의 주요 내용을 살펴보겠습니다.


먼저 그룹화 기준과 필터를 이해할 필요가 있습니다. 그룹화는 비용 내용을 특정 기준으로 분류해서 모두 보여주는 것이고 필터는 특정 기준의 세부 항목을 선택하거나 제외시킨 내용만 보여줍니다. 가령 서비스 기준으로 그룹화를 하면 EC2, RDS 등 서비스 기준으로 분류해서 내용을 확인할 수 있고 필터로 RDS만 선택한다면 RDS의 비용만 확인할 수 있습니다.


기간을 선택해 보고자 하는 날짜의 범위를 선택할 수 있는데 1년 1개월 전 데이터부터 선택이 가능합니다. 이 기간 내에서 월별 또는 일별로 선택해서 내용을 볼 수 있습니다. 상단 왼쪽에서 월별, 일별을 선택할 수 있습니다.


상단 오른쪽의 막대는 막대, 누적, 선 중에 선택할 수 있는데 간혹 2개 이상의 지표를 볼 때 누적으로 하면 합산된 지표의 흐름을 파악하는데 용이합니다.


그럼 그룹화와 필터에 사용되는 세부 기준들에 대해 살펴보겠습니다. 활용하는 중요도에 따라 별표를 따로 표시했습니다.


서비스 | ★★★★★

의미: 비용이 발생한 AWS 서비스를 보여줍니다. 예로 EC2, RDS, S3 등이 있습니다.


활용: 어떤 서비스가 비용의 대부분을 차지하는지 파악하는 데 핵심인 지표입니다. 예를 들어 EC2가 전체 비용의 60% 차지하고 그 비용이 점점 커지고 있다면 EC2 비용을 집중 분석해야 합니다.


아래 화면은 서비스를 1-depth로 그룹화한 화면입니다. 비용이 높은 순으로 자동으로 정렬해서 보여주는데 보다시피 대부분의 비용은 Amazon Elastic Compute Cloud(EC2)와 Amazon Relational Database Service(RDS)에서 나가고 있음을 확인할 수 있습니다.


img.png


연결된 계정 | ★

의미: 조직 구조(AWS Organizations)에서 연결된 하위 계정의 비용을 분류합니다.


활용: 팀/서비스별 계정을 분리해 운영 중인 경우 비용 책임 주체 파악에 유용합니다. 보통은 dev, staging, prod 등으로 환경별로 분류하기도 합니다.


클리퍼 계정 그룹

의미: MSP(예: GS 네오텍)의 계정 그룹 구분 기준입니다.


활용: 팀별/조직별 클러스터된 그룹별로 비용을 묶어서 볼 수 있습니다. 저희 조직에서는 그룹 설정이 따로 되어 있지 않아 사용하지 않습니다.


리전 | ★

의미: 리소스가 배포된 물리적 리전에 따른 분류 기준입니다. 보통 한국에서는 서울 ap-northeast-2를 많이 선택합니다.


활용: 특정 리전에 의도하지 않은 비용이 나가고 있는지 확인 가능합니다. 작은 서비스에는 잘못 선택하는 경우가 크게 없어 비용 분석에 크게 유용하게 사용되지는 않습니다. CloudFront를 사용하는 경우 트래픽으로 비용이 발생한 리전을 확인할 수 있습니다.


인스턴스유형 | ★★★

의미: 사용 중인 EC2/RDS 등 인스턴스의 타입을 말합니다. (예: r6i.large, t3.medium)


활용: 비용이 대부분 EC2와 RDS에서 많이 발생할 것입니다. 인스턴스가 어떻게 쓰이고 있는지, 고스펙 인스턴스가 불필요하게 있는지를 파악할 수 있습니다. 다운스케일링 후보 탐색에 용이합니다.


사용량 유형 | ★★★★★

의미: 비용이 어떤 사용 방식에서 발생했는지 구체적으로 보여줍니다. 예를 들어 BoxUsage(인스턴스), DataTransfer-Out-Bytes(데이터 전송), GP2-VolumeUsage(EBS) 등으로 서비스나 인스턴스, 리소스가 어떤 방식으로 사용되었는지를 파악할 수 있습니다.


활용: 사용량 유형은 매우 중요하고 자세히 이해할 수 있어야 합니다. 사용량 유형을 파악해 세부적인 비용 원인을 파악하고 최적화 방향을 설정할 수 있습니다. 예를 들어 데이터 전송비용이 최근 높아졌다면 트래픽 경로 점검할 수 있습니다.


리소스 | ★★★★★

의미: 비용이 발생한 리소스의 ARN을 보여줍니다. 예로 특정 EC2, RDS 인스턴스의 리소스가 무엇인지 파악할 수 있습니다. 인스턴스유형과 조금 성격이 다른데 인스턴스유형은 서버의 스펙을 모아서 보여준다면 리소스는 사용하고 있는 특정 인스턴스를 구체적으로 파악할 수 있습니다.


활용: 특정 서버나 데이터베이스의 비용을 추적할 때 매우 유용합니다. 어떤 리소스에서 고비용을 지출하고 있는지 정확히 식별 가능합니다.


데이터베이스 엔진 | ★

의미: RDS 또는 Aurora 사용 시 DB 종류를 분류합니다. (MySQL, PostgreSQL, Oracle 등)


활용: 어떤 엔진이 더 많은 비용을 유발하는지 비교 가능합니다. 다만 리소스를 통해서도 어느정도 파악이 가능하므로 활용도가 높지는 않습니다.


API 작업 | ★★

의미: 어떤 API 호출이 비용을 발생시켰는지 확인할 수 있습니다. 예로 CreateDBInstance, PutObject, Invoke 등을 들 수 있는데 우리가 사용하는 API가 아니라 AWS 내에서 사용된 API를 보여주는 것으로 이해하면 됩니다.


활용: 자동화된 작업, 빈번한 호출이 비용을 초과시키는지 확인 가능합니다. 대부분은 사용량 유형에서 파악이 가능하며 그 세부 작업을 한번 더 분류해서 볼 수 있습니다. 특히 AWS CLI 작업으로 어떤 작업을 많이 한 경우 API 작업으로 분류해낼 수 있습니다.


가용영역 | ★★

의미: 리전 내 세부적인 AZ로 분류해서 비용을 보여줍니다. 가용영역은 보통 ap-northeast-2a, 2c 등으로 표시되는데 a 또는 c 영역에서 많이 사용할 것입니다.


활용: Inter-Zone 트래픽 비용 파악이 가능합니다. 예로 서버 간 통신이 a와 c를 통해 이루어지면 Inter-Zone 비용이 발생함을 알 수 있습니다.


팁: 클라우드 내부 통신 비용은 MSA 구조를 사용할 경우 주의해야 합니다. 참고로 EC2와 RDS 간 통신은 같은 리전이기만 해도 비용이 발생하지 않습니다. 즉 AZ가 달라도 EC2와 RDS의 통신 비용은 무료입니다. 그러나 EC2 간 통신은 AZ가 다를 경우 Inter-Zone 비용이 발생하며 $0.01/GB 로 금액이 책정되어 있습니다.


구매옵션 | ★

의미: 리소스가 어떤 방식으로 구매되었는지 보여줍니다. (On-Demand, Reserved, Spot 등)


활용: 예약 인스턴스나 Savings Plan 적용률을 확인할 수 있습니다. 1년 이상 운영이 예정되어 있다면 Reserved Instance 또는 Savings Plan을 구매하는게 반드시 필수라고 할 수 있습니다. 다만 On-Demand가 아닌 구매 여부는 다른 항목에서도 파악이 가능하므로 크게 유용하지는 않습니다.


청구주체 | ★

의미: 비용 유형을 나타냅니다. 보통 실제 사용료, 크레딧, 환불 등이 있습니다.


활용: 간혹 MSP나 기타 이유로 크레딧을 제공받았다면 해당 내용을 파악해야 전체 흐름에서 정확한 비용 분석이 가능합니다.


태그 | ★★★

의미: 리소스에 부여된 커스텀 태그로 분류합니다. (예: Environment=prod, Team=data)


활용: 팀, 프로젝트, 서비스별로 비용을 분리하는 기준이 있다면 커스텀하게 삽입한 태그 기준으로 분류하는데 용이합니다. 잘 설계된 태그 전략이 있으면 비용 분석의 강력한 도구로 사용될 수 있습니다.


위에 표시한 대로 가장 많이 활용해야 할 분류 기준은 서비스, 사용량 유형, 리소스입니다. 분석에 대한 경험치가 쌓이고 어느정도 분류에 대한 기준이 잡힌다면 AWS에서 제시하는 기준 외의 별도의 기준을 태그로 활용해서 리소스에 반영할 수 있습니다.


Cost Explorer를 활용하는 몇가지 방법에 대해 살펴보겠습니다.

Cost Explorer를 살펴보는 핵심은 비용이 어떻게 발생하고 있고 그 흐름의 추세가 어떤지를 파악하는 것입니다.

특히 그룹화 기준과 필터를 적절히 활용하면 2-depth, 3-depth로 정밀한 분석이 가능합니다. 예를 들면 서비스에서 RDS를 필터하고, 사용량 유형에서 StorageIOUsage를 필터하고 그룹화 기준으로 리소스를 선택할 경우 IO 비용으로 사용되는 비용을 각 리소스 별로 볼 수 있습니다. 아래 예시를 보면 3-depth로 필터해 리소스별 IO 비용을 파악할 수 있음을 확인할 수 있습니다. 1-depth에서 볼 수 없는 비용 외 usage를 확인할 수 있는데 여기서는 IO로 처리된 횟수를 파악할 수 있습니다.

img.png

비용 절감을 위해 어떤 정책이나 설정을 적용했다면 반드시 그 날짜를 기록해두고 실제 비용에 어떻게 반영되는지 확인하는 것도 중요합니다.


정리

Cost Explorer를 통해 비용절감을 할 수 있는 포인트를 정확히 파악하는 것이 중요합니다. 위 세부 분류 기준을 통해 완전하게는 아니더라도 어떤 부분에서 비용이 발생하고 있는지, 추세가 어떤지, 예기치 않은 비용 발생 요소가 발생했는지를 면밀하게 추적할 수 있습니다. 특히 서비스, 사용량유형, 리소스로 분류하고 필터하는게 중요한데 그 세부 내용을 자세히 이해하는 것이 매우 중요합니다.


스크린샷 2025-04-23 오후 1.28.36.png

Cost Explorer를 통해 파악한 인사이트를 토대로 비용 절감하는 것이 충분히 가능합니다. 다음 연재에서 그 내용과 사례들을 하나씩 정리해보겠습니다.


keyword