AWS CUR(or DBR) 데이터 연동을 통한 리소스 비용 시각화 방법 리서치

김재민·2024년 7월 15일
0

Background


  • 우리 팀은 모든 서비스가 AWS 에서 동작 한다. 그리고 AWS 이용을 위해 MSP 로 진행 하여, 파트너사에서 제공하는 Clipper 라는 빌링 페이지를 통해 각 리소스의 과금 상태를 확인할 수 있다.
  • 그런데, Clipper 페이지를 접속하지 않고 AWS 비용 데이터를 S3 에 적재하여 'Redash 시각화', '커스텀 Tag 기반 비용 집계', '특정 리소스 사용량 알람 설정', 'EKS 클러스터 내 서비스별 비용 집계' 등에 대한 요구사항이 발생 했다.
  • 관련하여 리서치 하였던 내용을 간단히 기록한다.

AWS CUR(Cost and Usage Report) 데이터 연동


  • AWS 와 직계약 하여 사용하는 경우 직접 AWS Cost Explorer API 를 사용하거나, 계정의 빌링 설정을 통해 CUR 데이터를 S3 로 추출할 수 있다. 그러나 우리팀은 MSP 로 AWS 를 계약 하여 사용 중이기 때문에, API 도 사용할 수 없고 CUR 데이터를 직접 설정 하여 추출 할 수도 없었다.
  • 파트너사에 문의해보니 이런 경우 대게 파트너사에서 요구하는 양식에 맞춰 계정 정보 및 요구사항을 전달 하면 CUR 데이터를 요청한 S3 Bucket 에 업로드 해준다고 한다.
  • 아마, 많은 회사들이 MSP 로 AWS 를 이용할 것 같아 차후 같은 일이 있을 때 참고하면 좋을 것 같다.
  • 나의 경우 파트너사에서 아래 정보를 요청 하였다.
  • 향후 작업 방향: CUR 데이터를 S3 에 적재하면, Glue Catalog 로 관리 하여 Athena 쿼리 가능하도록 만들 생각이다.

AWS EKS 클러스터 내 서비스 별 비용 측정


  • EC2 인스턴스, Redshift 클러스터, EKS 클러스터 등 실질적인 리소스 단위는 위에 AWS CUR 데이터를 제공 받으면 자체 집계가 가능하다.
  • 그러나, AWS EKS 내 서비스 별 또는 노드그룹 별 비용 집계는 CUR 데이터만 이용하기에 한계가 있다.
  • 노드그룹의 경우 Kubernetes 에서 사용하는 논리적 개념이라 실제 리소스로 취급하지 않는다고 한다. 때문에 Tag 를 지정 하여도 Tag 기반 비용 집계가 바로 지원 되지는 않는다.
  • 추가 리서치 중 카카오페이증권에서 작성한 클라우드 비용 가시화 관련 게시글을 보았다.
  • Kubecost 라는 오픈소스를 이용하여 각 Pod 의 리소스 사용 비용을 측정하고 시각화 하였다고 한다.(Kubecost helm chart)

Kubecost 적용 방향

  • 위 내용을 공유 드린 후 팀리드님이 추가 리서치를 도와 주셨는데, Kubecost 는 아래 이미지와 같이 EKS 클러스터 Add-on 으로도 제공한다고 한다.
  • 아마, 실제 작업이 진행 되면 우리팀에서는 Add-on 으로 추가할 것 같다.

다음에...


  • 리서치는 내가 했지만, 실제 작업은 언제, 누가 진행할지 아직 모른다. 중요한 내용 또는 주요 진행 과정은 차후 더 기록해 봐야겠다.

참고 문서


profile
안녕하세요. 데이터 엔지니어 김재민 입니다.

2개의 댓글

comment-user-thumbnail
2024년 11월 29일

안녕하세요 재민님!
블로그 작성글 잘봤습니다!

저희도 kubecost를 PoC중인데 MSP 파트너사로 인해 CUR을 다운로드받지 못하고 있습니다..
혹시 위 방법을 어떻게 조치하셨는지 여쭤볼수 있을까요?

kubecost에서 제 계정의 빌링정보 또는 한국리전의 cost를 통합하려면 무조건 CUR 방식밖에 없는것 같은데 혹시 이것도 맞을지 여쭤볼수있을까요?

1개의 답글