로그 수집 설정
데이터베이스 클라우드 에이전트는 AWS CloudWatch Logs API를 사용하여 RDS 및 Aurora 인스턴스를 포함한 다양한 로그를 주기적으로 수집할 수 있습니다. 이 문서는 API가 비용에 어떤 영향을 미치는지 이해하고 그에 맞춰 적절한 수집 설정 방법을 안내합니다.
CloudWatch Logs API 사용과 비용 영향
DBXC Agent는 CloudWatch Logs의 FilterLogEvents API를 이용해 이미 저장된 로그를 조회합니다. 이때 발생하는 비용은 크게 두 가지 요소에 의해 결정됩니다.
첫째, 조회된 데이터의 양입니다. API를 호출하면 지정한 시간 범위와 제한 값(regular_fetch_limit)에 따라 CloudWatch Logs에서 해당 로그를 읽어옵니다. 읽어오는 데이터가 많을수록 AWS 내부 처리와 데이터 전송에 따른 비용이 증가합니다
둘째, API 호출 횟수입니다. interval이 짧거나 수집 대상 로그 그룹이 많으면 주기적으로 많은 API 호출이 발생하게 됩니다. 호출 횟수 자체에도 과금이 적용되기 때문에, 짧은 간격으로 자주 호출하면 데이터 양이 적더라도 호출 비용이 누적될 수 있습니다.
결과적으로, FilterLogEvents를 통한 로그 수집에서는 조회 데이터 양이 비용에 더 큰 영향을 주지만, 짧은 주기와 많은 대상 그룹을 함께 사용하면 API 호출 비용도 무시할 수 없게 됩니다. 따라서 효율적인 운영을 위해서 regular_fetch_limit로 불필요하게 많은 로그를 한 번에 가져오지 않도록 하고, interval을 환경에 맞게 조정하여 호출 횟수를 관리하는 것이 중요합니다.
공식 참고 문서
- AWS API Reference: FilterLogEvents
- AWS Pricing: CloudWatch Logs 요금
로그 수집 동작 방식
DBXC Agent는 FilterLogEvents API를 주기적으로 호출하여 지정된 로그 그룹에서 새로운 로그를 가져옵니다.
각 호출 시점에는 마지막 수집 시각부터 현재 시각까지의 로그만 조회하며, 각 로그 그룹별로 수집 상태를 별도로 관리합니다.
마지막 수집 시각은 로컬 상태 파일에 저장되므로, Agent 재시작 시에도 이전 지점부터 이어서 수집할 수 있습니다.