CloudWatch RDS 모니터링
와탭은 AWS CloudWatch Exporter로 수집한 Amazon RDS·Aurora 메트릭을 바로 활용할 수 있도록 프리셋 대시보드, config.yml 수집 메트릭 카탈로그, PromQL 알림 템플릿 세 가지를 제공합니다. 대시보드를 처음부터 구성하거나 임계치를 직접 계산하지 않고도 DB 인스턴스의 CPU, 메모리, 스토리지, 디스크 I/O, 네트워크 상태를 확인할 수 있습니다. 본 문서는 CloudWatch Exporter 연동을 마친 프로젝트 관리자를 대상으로 합니다.
해당 기능은 CloudWatch 플랫폼(CLDWATCH)이 활성화된 프로젝트에서만 제공됩니다. CloudWatch Exporter 설치와 config.yml 작성 방법은 CloudWatch 설정 문서를 참고하세요.
RDS 프리셋 대시보드
대시보드 > RDS 메뉴를 선택하세요.
프리셋 대시보드는 5개 섹션에 25개 위젯으로 구성됩니다. 섹션별 구성은 다음과 같습니다.
| Section | Widget |
|---|---|
| Overview | Total DB Instances, Avg CPU Utilization (%), Max CPU Utilization (%), Total DB Connections, Lowest Freeable Memory (bytes), Lowest Free Storage (bytes) |
| CPU Performance | Avg CPU Utilization by Instance (%), Max CPU Utilization by Instance (%), Top 5 CPU Utilization Ranking (%) |
| Memory & Storage | Freeable Memory by Instance (bytes), Swap Usage by Instance (bytes), Free Storage Space by Instance (bytes), Free Local Storage - Aurora (bytes), Aurora Cluster Volume Used (bytes) |
| Disk I/O Performance | Read IOPS by Instance (count/s), Write IOPS by Instance (count/s), Read Latency by Instance (ms), Write Latency by Instance (ms), Read Throughput by Instance (bytes/s), Write Throughput by Instance (bytes/s), Disk Queue Depth by Instance |
| Network & Connections | Database Connections by Instance, Network Receive by Instance (bytes/s), Network Transmit by Instance (bytes/s), Buffer Cache Hit Ratio - Aurora (%) |
Aurora 전용 위젯(Free Local Storage, Aurora Cluster Volume Used, Buffer Cache Hit Ratio)은 Aurora 클러스터 메트릭을 수집하는 경우에만 데이터가 표시됩니다.
수집 메트릭 카탈로그
config.yml에서 aws_namespace를 AWS/RDS로 지정하면 RDS와 Aurora 메트릭을 함께 수집할 수 있습니다. RDS 서비스의 권장 설정값은 다음과 같습니다.
| Parameter | Value |
|---|---|
period_seconds | 60 |
range_seconds | 300 |
delay_seconds | 120 |
공통 메트릭
DB 인스턴스 단위로 수집되는 메트릭입니다. aws_dimensions는 모두 DBInstanceIdentifier를 사용합니다. Default 열의 ✅ 표시는 설치 가이드의 config.yml 작성 단계에서 기본으로 선택되는 메트릭을 뜻합니다.
| Metric | Statistic | Unit | Default | Description |
|---|---|---|---|---|
CPUUtilization | Average, Maximum, Minimum | percent | ✅ | CPU 사용률 |
DatabaseConnections | Average, Maximum | count | ✅ | DB 인스턴스에 연결된 클라이언트 네트워크 커넥션 수 |
FreeableMemory | Average, Minimum | bytes | ✅ | 사용 가능한 메모리 크기 |
FreeStorageSpace | Average, Minimum | bytes | ✅ | 사용 가능한 스토리지 공간. Aurora는 제외됩니다. |
ReadIOPS | Average, Maximum | count/second | ✅ | 초당 디스크 읽기 I/O 작업 수 평균 |
WriteIOPS | Average, Maximum | count/second | ✅ | 초당 디스크 쓰기 I/O 작업 수 평균 |
ReadLatency | Average, Maximum | seconds | ✅ | 디스크 읽기 I/O 작업당 평 균 소요 시간 |
WriteLatency | Average, Maximum | seconds | ✅ | 디스크 쓰기 I/O 작업당 평균 소요 시간 |
ReadThroughput | Average | bytes/second | ✅ | 초당 디스크에서 읽은 평균 바이트 수 |
WriteThroughput | Average | bytes/second | ✅ | 초당 디스크에 쓴 평균 바이트 수 |
NetworkReceiveThroughput | Average | bytes/second | ✅ | DB 인스턴스의 수신 네트워크 트래픽 |
NetworkTransmitThroughput | Average | bytes/second | ✅ | DB 인스턴스의 송신 네트워크 트래픽 |
DiskQueueDepth | Average, Maximum | count | ✅ | 디스크 접근을 대기하는 읽기·쓰기 I/O 요청 수 |
SwapUsage | Average, Maximum | bytes | ✅ | 사용 중인 스왑 공간. SQL Server와 일부 Aurora 인스턴스 클래스는 제외됩니다. |
BurstBalance | Average, Minimum | percent | - | gp2 볼륨의 버스트 버킷에 남은 I/O 크레딧 비율 |
CPUCreditUsage | Average | credits (vcpu-minutes) | - | 사용한 CPU 크레딧 수. T 계열 인스턴스에서만 제공되며 5분 주기로 게시됩니다. |
CPUCreditBalance | Average, Minimum | credits (vcpu-minutes) | - | 적립된 CPU 크레딧 잔량. T 계열 인스턴스에서만 제공되며 5분 주기로 게시됩니다. |
ReplicaLag | Average, Maximum | seconds | - | 읽기 전용 복제본이 소스 DB 인스턴스보다 뒤처진 시간. Aurora는 제외됩니다. |
BinLogDiskUsage | Average | bytes | - | 바이너리 로그가 차지하는 디스크 공간. MySQL·MariaDB 전용 |
EBSIOBalance% | Average, Minimum | percent | - | 버스트 버킷에 남은 I/O 크레딧 비율. 기본 모니터링에서만 제공되며 Sum은 사용할 수 없습니다. |
EBSByteBalance% | Average, Minimum | percent | - | 버스트 버킷에 남은 처리량 크레딧 비율. 기본 모니터링에서만 제공되며 Sum은 사용할 수 없습니다. |
Aurora 전용 메트릭
Aurora 클러스터에서만 제공되는 메트릭입니다. 클러스터 볼륨 계열 메트릭은 aws_dimensions로 DBClusterIdentifier를 사용하므로 인스턴스 단위 메트릭과 분리해 작성해야 합니다.
| Metric | Statistic | Unit | Dimension | Default | Description |
|---|---|---|---|---|---|
AuroraReplicaLag | Average, Maximum | milliseconds | DBInstanceIdentifier | ✅ | 라이터 인스턴스의 변경 사항이 레플리카 인스턴스로 복제되는 데 걸린 시간 |
AuroraReplicaLagMaximum | Maximum | milliseconds | DBInstanceIdentifier | - | 프라이머리와 클러스터 내 Aurora DB 인스턴스 사이의 최대 지연. 프라이머리 인스턴스에 게시됩니다. |
AuroraReplicaLagMinimum | Minimum | milliseconds | DBInstanceIdentifier | - | 프라이머리와 클러스터 내 Aurora DB 인스턴스 사이의 최소 지연. 프라이머리 인스턴스에 게시됩니다. |
FreeLocalStorage | Average, Minimum | bytes | DBInstanceIdentifier | ✅ | 임시 테이블과 로그에 사용할 수 있는 로컬 스토리지 크기. Aurora Serverless는 제외됩니다. |
VolumeBytesUsed | Average, Maximum | bytes | DBClusterIdentifier | ✅ | Aurora DB 클러스터 볼륨이 사용한 스토리지 크기. 약 5분 간격으로 게시됩니다. |
VolumeReadIOPs | Sum | count/5 minutes | DBClusterIdentifier | - | 클러스터 볼륨에서 과금된 읽기 I/O 작업 수. 5분 간격으로 보고됩니다. |
VolumeWriteIOPs | Sum | count/5 minutes | DBClusterIdentifier | - | 클러스터 볼륨에 과금된 쓰기 I/O 작업 수. 5분 간격으로 보고됩니다. |
BufferCacheHitRatio | Average, Minimum | percent | DBInstanceIdentifier | ✅ | 버퍼 캐시가 처리한 요청 비율 |
CommitLatency | Average, Maximum | milliseconds | DBInstanceIdentifier | - | 엔진과 스토리지가 커밋 작업을 완료하는 데 걸린 평균 시간 |
CommitThroughput | Average | count/second | DBInstanceIdentifier | - | 초당 평균 커밋 작업 수 |
Deadlocks | Average, Sum | count/second | DBInstanceIdentifier | - | 초당 평균 데드락 발생 수 |
EngineUptime | Minimum | seconds | DBInstanceIdentifier | - | 인스턴스가 실행된 시간 |
ServerlessDatabaseCapacity | Average, Maximum | count | DBClusterIdentifier | - | Aurora Serverless DB 클러스터의 현재 용량 |
ACUUtilization | Average, Maximum | percent | DBInstanceIdentifier | - | ServerlessDatabaseCapacity를 클러스터의 최대 ACU 값으로 나눈 비율 |
PromQL 알림 템플릿
경고 알림 > 이벤트 설정 메뉴를 선택하세요.
RDS 서비스에 대해 7종의 PromQL 알림 템플릿을 제공합니다. 템플릿을 선택하면 PromQL, 감지 조건, 심각도, 알림 메시지가 미리 채워진 상태로 이벤트를 생성할 수 있습니다.
| Template | PromQL | Condition | Level | Duration | Silence |
|---|---|---|---|---|---|
| CPU 위험 | aws_rds_cpuutilization_maximum | value > 90 | Critical | 1분 | 5분 |
| 스토리지 고갈 임박 | aws_rds_free_storage_space_minimum / 1024 / 1024 / 1024 | value < 10 | Critical | 1분 | 5분 |
| 가용 메모리 부족 | aws_rds_freeable_memory_minimum / 1024 / 1024 | value < 256 | Warning | 5분 | 30분 |
| 커넥션 급증 | aws_rds_database_connections_maximum | value > 100 | Warning | 5분 | 30분 |
| 쓰기 지연 | aws_rds_write_latency_average * 1000 | value > 20 | Warning | 5분 | 30분 |
| 레플리카 지연 (Aurora) | aws_rds_aurora_replica_lag_maximum | value > 1000 | Critical | 1분 | 5분 |
| 로컬 스토리지 부족 (Aurora) | aws_rds_free_local_storage_minimum / 1024 / 1024 / 1024 | value < 10 | Warning | 5분 | 30분 |
Duration은 조건이 유지되어야 하는 시간이고 Silence는 알림 발생 후 같은 이벤트를 다시 알리지 않는 시간입니다. 모든 템플릿의 감지 주기는 60초입니다. 알림 메시지에는 대상 인스턴스 식별자와 측정값이 치환 변수로 포함됩니다.
스토리지·메모리 관련 템플릿의 PromQL은 바이트 단위 원본 메트릭을 GB 또는 MB로 환산해 비교합니다. 임계치를 조정할 때는 환산 후 단위를 기준으로 값을 입력하세요.