AWS - RDS 모니터링 Tips
날짜: 2024-08-07
목록으로
AWS RDS에서 CPU 사용률이 높은 상태일 때, 원인을 파악하기 위한 절차는 여러 단계로 이루어집니다.
여기에는 모니터링, 로그 분석, 쿼리 최적화 등 다양한 방법이 포함됩니다. 다음은 그 절차에 대한 단계별 가이드입니다.
1. CloudWatch 모니터링
먼저, AWS CloudWatch를 사용하여 CPU 사용률과 관련된 메트릭을 확인합니다.
- CloudWatch 콘솔로 이동:
- AWS Management Console에서 CloudWatch를 선택합니다.
- RDS 인스턴스 메트릭 확인:
Metrics
섹션에서 RDS
를 선택합니다.
- 해당 RDS 인스턴스를 선택하고
CPUUtilization
, DBConnections
, FreeableMemory
등의 메트릭을 확인합니다.
- 특정 시간대에 CPU 사용률이 급증한 경우를 찾아냅니다.
AWS Performance Insights를 사용하면 데이터베이스의 성능을 상세히 분석할 수 있습니다.
- Performance Insights 활성화:
- RDS 콘솔에서 해당 데이터베이스 인스턴스를 선택합니다.
Monitoring
탭에서 Performance Insights
가 활성화되어 있는지 확인합니다. 비활성화되어 있다면 활성화합니다.
- 쿼리 성능 분석:
- Performance Insights 콘솔로 이동하여 CPU 사용률이 높은 기간을 선택합니다.
- CPU 사용률이 높은 동안 실행된 쿼리 목록을 확인하고, 가장 많은 리소스를 소비하는 쿼리를 찾습니다.
- 각 쿼리의 실행 시간, 호출 빈도, 대기 시간 등을 분석합니다.
3. 로그 분석
RDS 인스턴스의 로그를 분석하여 성능 문제의 원인을 찾습니다.
- 로그 파일 확인:
- RDS 콘솔에서 해당 인스턴스를 선택하고
Logs & events
탭으로 이동합니다.
Error logs
, General logs
, Slow query logs
등을 다운로드하여 분석합니다.
- Slow Query Log 분석:
Slow query log
에서 느리게 실행되는 쿼리를 확인합니다.
- 해당 쿼리의 실행 빈도와 실행 시간을 확인하고, 인덱스가 필요한지, 쿼리 구조가 비효율적인지 등을 검토합니다.
4. 데이터베이스 설정 확인
데이터베이스 설정이 최적화되지 않았을 경우 CPU 사용률이 높아질 수 있습니다.
- 파라미터 그룹 설정 확인:
- RDS 콘솔에서 해당 인스턴스를 선택하고
Parameter groups
탭으로 이동합니다.
- 사용 중인 파라미터 그룹을 확인하고, 필요한 경우 파라미터를 조정합니다. 예를 들어,
max_connections
, innodb_buffer_pool_size
등의 설정을 검토합니다.
5. 인덱스와 쿼리 최적화
쿼리 및 인덱스를 최적화하여 성능을 향상시킵니다.
- 인덱스 확인 및 추가:
- 가장 많이 사용되는 테이블에 적절한 인덱스가 설정되어 있는지 확인합니다.
- 필요시 인덱스를 추가하여 쿼리 성능을 향상시킵니다.
- 쿼리 리팩토링:
- Performance Insights와 Slow Query Log에서 확인된 비효율적인 쿼리를 최적화합니다.
- 쿼리의 실행 계획을 분석하여 불필요한 풀 테이블 스캔 등을 피합니다.
6. 필요시 인스턴스 스케일 업
위의 방법으로도 해결되지 않는다면 인스턴스를 스케일 업하여 리소스를 추가합니다.
- 인스턴스 유형 변경:
- RDS 콘솔에서 해당 인스턴스를 선택하고
Modify
버튼을 클릭합니다.
- 더 높은 성능을 제공하는 인스턴스 유형으로 변경합니다.
요약
- CloudWatch를 통해 CPU 사용률을 모니터링하고 이상 현상을 발견합니다.
- Performance Insights를 통해 가장 많은 리소스를 사용하는 쿼리를 분석합니다.
- 로그 파일을 분석하여 성능 문제의 원인을 찾습니다.
- 데이터베이스 설정을 최적화합니다.
- 인덱스와 쿼리를 최적화합니다.
- 필요 시 인스턴스 유형을 스케일 업합니다.
목록으로