기록

청구서와 Cost Explorer : AWS 비용 모니터링 본문

DevOps

청구서와 Cost Explorer : AWS 비용 모니터링

youngyin 2024. 11. 22. 23:57

시작하면서

AWS 프리티어를 초과하여 예상치 못한 비용이 발생하게 되면서, 기존 계정을 정리하고 새로운 계정을 생성하여 리소스를 이관하는 작업을 진행했습니다. 그러나 새로운 리소스를 생성하고 기존 리소스를 종료하는 과정에서 여전히 비용이 부과되는 문제에 직면했습니다. 이 글에서는 그 비용 발생 원인을 분석하고 해결했던 과정을 공유하려고 합니다.

비용 발생 원인 분석

1. 비용 분석: 청구서와 Cost Explorer 활용

먼저 AWS 청구서Cost Explorer는 AWS의 비용 관리 도구로, 특정 기간 동안의 비용과 사용량을 분석하고 각 서비스별로 발생한 비용을 시각적으로 확인할 수 있는 기능을 제공합니다. 이를 통해 비용이 발생하는 주요 서비스를 보다 쉽게 파악할 수 있습니다. Cost Explorer를 통해 비용이 발생하는 주요 서비스를 분석했고, 특정 리전에서 ElastiCacheRDS와 관련된 비용이 계속 발생하고 있다는 점을 발견했습니다.

Cost Explorer에서 제공하는 다양한 필터링 기능을 통해 서비스별, 리전별, 사용 유형별로 비용을 세분화하여 분석할 수 있었습니다. 이 기능을 활용해 문제가 되는 리소스를 명확히 파악할 수 있었습니다.

Cost Explorer 월별 비용 확인

2. CloudWatch Logs로 리소스 활동 추적 및 설정 방법

다음으로 CloudWatch Logs Insights를 활용해 리소스의 활동 내역을 확인했습니다. 로그를 통해 해당 리소스가 종료되었는지 혹은 여전히 활성 상태인지 추적하면서 문제의 원인을 점점 더 구체화할 수 있었습니다.

  • CloudWatch 설정 방법: CloudWatch를 사용하려면 먼저 AWS 콘솔에서 CloudWatch 서비스로 이동한 후, 로그 그룹을 설정해야 합니다. 로그 그룹은 애플리케이션, 서비스, 또는 시스템의 로그를 논리적으로 그룹화하여 관리할 수 있는 단위입니다.
    1. 로그 그룹 생성: AWS 콘솔의 CloudWatch 메뉴에서 로그 그룹을 생성합니다. 이때, 특정 리소스의 활동을 추적하기 위한 이름을 지정할 수 있습니다.
    2. 로그 스트림 생성: 로그 그룹 내에서 발생하는 로그 데이터를 로그 스트림으로 관리합니다. 이는 리소스가 생성하거나 삭제될 때마다 자동으로 생성됩니다.
    3. 로그 데이터 수집 설정: 애플리케이션 로그를 CloudWatch로 보내기 위해 AWS SDK를 사용하거나 EC2 인스턴스에 CloudWatch 에이전트를 설치할 수 있습니다.
    4. Logs Insights 쿼리 실행: Logs Insights 탭으로 이동하여 필요한 데이터를 필터링할 수 있습니다. 예제 쿼리를 활용하거나 직접 로그 데이터를 검색하여 특정 이벤트를 분석할 수 있습니다.

 

사례 1: ElastiCache 비용 문제 해결

문제
ElastiCache 서비스에서 예상하지 못한 비용이 발생했습니다.

Cost Explorer 일별 비용 확인 : CreateCacheCluster:0002 API

 

해결 과정

ElastiCache 콘솔 확인: 모든 리전에서 ElastiCache 리소스를 확인했으나 콘솔에서는 클러스터가 보이지 않았습니다.

CloudWatch 로그 확인: ElastiCache 리소스가 11/16일 삭제되었음을 확인했습니다.

CloudWatch 로그 확인

 

사례 2: RDS 비용 문제 해결

문제
RDS를 사용하면서 프리티어 범위 내에서 사용할 계획이었지만, 예상치 못한 비용이 발생했습니다.

청구서에서 비용청구 확인

조치방법

1. 자동 조정 기능을 비활성화

AWS RDS의 스토리지 자동 조정(Auto Scaling) 기능은 데이터베이스의 스토리지 용량이 부족할 때 자동으로 확장하여 서비스 중단 없이 안정적인 운영을 지원합니다. 그러나 이 기능이 활성화되면 추가 스토리지에 대한 비용이 발생할 수 있습니다. 그 이유는 다음과 같습니다:

자동 스토리지 확장에 따른 비용 증가: 스토리지 자동 조정이 활성화되면, RDS는 사용 가능한 스토리지 공간이 할당된 스토리지의 10% 이하로 감소하고 이 상태가 5분 이상 지속될 경우 자동으로 스토리지를 확장합니다. 이때 추가된 스토리지 용량에 대해 비용이 부과됩니다. 

프리 티어 한도 내에서 사용하려면 스토리지 자동 조정 기능을 비활성화하고, 수동으로 스토리지 용량을 관리하는 것이 좋습니다.

 

2. 스토리지 유형변경 gp2 스토리지

프리티어에 해당하는 gp2 스토리지로 변경했습니다. 기존에는 비용이 발생하는 gp3 스토리지가 설정되어 있었습니다. gp3는 프리티어에 포함되지 않아 추가 비용의 원인이 되었습니다.

참고 : gp2는 스토리지 용량에 따라 IOPS가 비례해 증가하고 비용도 이에 따라 증가하는 스토리지입니다. gp3는 스토리지 용량과 IOPS를 독립적으로 조정 가능하며, 비용이 더 저렴하고 성능 조정이 유연합니다. gp3는 gp2 대비 비용 효율성과 성능 최적화가 장점입니다.

결과
이후 비용이 더 이상 증가하지 않았으며, gp3 스토리지 사용이 주요 비용 발생 원인이었음을 확인했습니다.

gp3는 프리티어에 포함되지 않음(https://aws.amazon.com/ko/rds/free/)

 

Cost Explorer와 CloudWatch Logs 활용 방법 및 관련 메뉴 설명

1. Cost Explorer를 통한 비용 분석 및 개념 설명

  • Billing 콘솔에서 Cost Explorer로 이동하여, 서비스별 혹은 리전별로 비용 발생 내역을 분석할 수 있습니다. Billing 콘솔에서는 다양한 메뉴를 통해 비용과 결제 관련 항목을 확인할 수 있습니다:
    • 청구서: 현재까지 발생한 비용 및 결제 내역을 상세히 확인할 수 있습니다. 청구서에서는 각 서비스별로 발생한 총 비용과 결제 기록을 확인할 수 있으며, 청구 내역을 기반으로 매달 발생한 비용을 모니터링하는 데 유용합니다.
    • 반면, Cost Explorer는 비용을 보다 세분화하여 분석하고 시각화할 수 있는 기능을 제공하며, 비용 증가 추이 및 특정 서비스나 리전별 사용 내역을 파악할 때 사용합니다. 예를 들어, 청구서에서는 총액만 확인할 수 있지만, Cost Explorer를 통해 특정 기간 동안의 비용 증감 원인, 리소스별 상세 비용 등을 확인할 수 있습니다.
    • 비용의 전체적인 흐름을 파악하고 싶다면 청구서를, 세부적이고 분석적인 접근이 필요하다면 Cost Explorer를 참고하는 것이 좋습니다.
  • Cost Explorer를 사용하면 특정 날짜를 기준으로 비용 증가 추이를 확인하여 문제 발생 시점을 정확히 파악할 수 있습니다.

2. CloudWatch Logs로 리소스 활동 추적

  • CloudWatch Logs Insights를 사용해 리소스의 상태를 추적할 수 있습니다. 예를 들어, "start", "terminate", "snapshot" 등의 키워드를 검색하여 문제가 되는 리소스를 확인할 수 있습니다.
  • 예를 들어, CloudWatch Logs Insights에서 특정 로그 그룹을 선택하고 쿼리를 실행하면 리소스의 상태 변경을 추적하고, 문제가 되는 지점을 빠르게 확인할 수 있습니다.

결론

AWS에서 발생하는 예상치 못한 비용 문제를 해결하려면, 비용 발생 원인을 정확히 파악하고 리소스의 설정을 세부적으로 검토하는 것이 중요합니다. 이번 ElastiCache와 RDS 비용 문제 해결 사례를 통해 AWS 리소스를 관리할 때의 주의점과 모범 사례를 배울 수 있었습니다. 특히, 자동으로 발생할 수 있는 추가 비용 요소들을 꼼꼼히 점검하는 것이 비용 절감의 핵심임을 다시 한번 깨달았습니다.

AWS 리소스를 사용할 때는 비용 관련 설정을 정기적으로 검토하고, CloudWatch와 Cost Explorer를 적극적으로 활용해 리소스 상태를 모니터링하는 습관을 들이는 것이 중요합니다.

Comments