

# PERF04-BP03 데이터베이스 성능 지표 수집 및 기록
<a name="perf_right_database_solution_collect_metrics"></a>

 데이터 관리 시스템의 성능을 이해하려면 관련 지표를 추적해야 합니다. 이러한 지표를 통해 데이터 관리 리소스를 최적화하고, 워크로드 요구 사항을 충족하며, 워크로드의 성능을 명확하게 한눈에 파악할 수 있습니다. 데이터베이스 성능과 관련된 성능 측정값을 기록하는 도구, 라이브러리 및 시스템을 사용합니다. 

 

 데이터베이스가 호스팅되는 시스템과 관련된 지표(예: CPU, 스토리지, 메모리, IOPS)와 데이터 자체에 액세스하기 위한 지표(예: 초당 트랜잭션, 쿼리 속도, 응답 시간, 오류)가 있습니다. 모든 지원 또는 운영 직원이 이러한 지표에 쉽게 액세스할 수 있어야 하며, 지표에 추세와 이상 징후, 병목 현상을 식별할 수 있는 충분한 기록이 남겨져 있어야 합니다. 

 

 **원하는 결과:** 데이터베이스 워크로드의 성능을 모니터링하려면 일정 기간에 걸쳐 여러 성능 지표를 기록해야 합니다. 이를 통해 이상 징후를 탐지할 수 있을뿐더러 비즈니스 지표를 기준으로 성능을 측정하여 워크로드 요구 사항을 충족하는지 확인할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  지표에 대해 수동 로그 파일 검색만 사용합니다. 
+  팀에서 사용하는 내부 도구에만 지표를 게시하고 워크로드를 종합적으로 바라보고 있지 않습니다. 
+  선택한 모니터링 소프트웨어에서 기록한 기본 지표만 사용합니다. 
+  문제가 발생한 경우에만 지표를 검토합니다. 
+  시스템 수준 지표만 모니터링하며 데이터 액세스나 사용량 지표는 캡처하지 않습니다. 

 **이 모범 사례 수립의 이점:** 성능 기준선을 설정하면 워크로드의 정상적인 동작과 요구 사항을 이해하는 데 도움이 됩니다. 비정상적인 패턴을 더 빨리 식별하고 디버깅할 수 있어 데이터베이스의 성능과 신뢰성이 향상됩니다. 성능 저하 없이 최적의 비용을 보장하도록 데이터베이스 용량을 구성할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 
+  정상 상태와 정상 성능 수준을 구분하지 못하면 문제를 식별하고 의사 결정을 내리는 데 어려움을 겪을 수 있습니다. 
+  잠재적인 비용 절감 효과가 나타나지 않을 수 있습니다. 
+  신뢰성 또는 성능 저하를 초래할 수 있는 성장 패턴이 식별되지 않습니다. 

## 구현 가이드
<a name="implementation-guidance"></a>

 데이터베이스 관련 지표를 식별, 수집 및 집계하고 상관 관계를 지정하십시오. 지표에는 데이터베이스를 지원하는 기본 시스템과 데이터베이스 지표가 모두 포함되어야 합니다. 기본 시스템 지표에는 CPU 활용률, 메모리, 사용 가능한 디스크 스토리지, 디스크 I/O, 네트워크 인바운드 및 아웃바운드 지표가 포함될 수 있습니다. 데이터베이스 지표는 초당 트랜잭션, 상위 쿼리, 평균 쿼리 속도, 응답 시간, 인덱스 사용량, 테이블 잠금, 쿼리 시간 초과 및 열린 연결 수로 구성 가능합니다. 이 데이터는 워크로드의 성능과 데이터베이스 솔루션의 사용 방법을 이해하는 데 중요합니다. 이러한 지표를 데이터 중심 전략에 포함시켜 워크로드의 리소스를 조정하고 최적화할 수 있습니다.  

 **구현 단계:** 

1.  어떤 데이터베이스 지표를 추적해야 합니까? 

   1.  [Amazon RDS 모니터링 지표](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html) 

   1.  [성능 개선 도우미를 사용한 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 

   1.  [향상된 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html) 

   1.  [DynamoDB 지표](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html) 

   1.  [DynamoDB DAX 모니터링](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.Monitoring.html) 

   1.  [MemoryDB 모니터링](https://docs.aws.amazon.com/memorydb/latest/devguide/monitoring-cloudwatch.html) 

   1.  [Amazon Redshift 모니터링](https://docs.aws.amazon.com/redshift/latest/mgmt/metrics.html) 

   1.  [시계열 지표 및 차원](https://docs.aws.amazon.com/timestream/latest/developerguide/metrics-dimensions.html) 

   1.  [Aurora용 클러스터 수준 지표](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html) 

   1.  [Amazon Keyspaces 모니터링](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) 

   1.  [Amazon Neptune 모니터링](https://docs.aws.amazon.com/neptune/latest/userguide/monitoring.html) 

1.  데이터베이스 모니터링을 통해 운영 성능 이상 문제를 감지하는 기계 학습 솔루션의 이점을 얻을 수 있습니까? 

   1.  [Amazon DevOps Guru for Amazon RDS](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.overview.how-it-works.html) 에서는 성능 문제에 대한 가시성을 제공하고 권장 수정 조치를 제안합니다. 

1.  SQL 사용과 관련해서 애플리케이션 수준 세부 정보가 필요합니까? 

   1.  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-sql) 에서는 애플리케이션으로 계측하여 인사이트를 얻고, 단일 쿼리의 모든 데이터 포인트를 정리할 수 있습니다. 

1.  현재 승인되어 사용 중인 로깅 및 모니터링 솔루션이 있습니까? 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. CloudWatch 또는 타사 솔루션을 사용하여 임계값 위반 시점을 나타내는 경보를 설정합니다. 

1.  보안 및 운영 목표에 맞게 데이터 보존 정책을 식별하고 구성했습니까? 

   1.  [CloudWatch 지표용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [CloudWatch Logs용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

 **구현 계획의 작업 수준: **이 경우에는 *보통* 수준의 노력을 들여 모든 데이터베이스 리소스에서 지표를 식별, 추적, 수집 및 집계하고 상관 관계를 지정할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+ [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/) 
+ [ Amazon Athena 10가지 성능 향상 팁 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)
+ [ Amazon Aurora 모범 사례 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html)
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/)
+ [Amazon DynamoDB 모범 사례 ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+ [Amazon Redshift Spectrum 모범 사례 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+ [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+ [AWS를 사용한 클라우드 데이터베이스 ](https://aws.amazon.com/products/databases/) 
+  [Amazon RDS 성능 개선 도우미](https://aws.amazon.com/rds/performance-insights/) 

 **관련 동영상:** 
+ [AWS purpose-built databases(DAT209-L) ](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora storage demystified: How it all works(DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+  [Amazon DynamoDB deep dive: Advanced design patterns(DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **관련 예시:** 
+  [레벨 100: CloudWatch 대시보드를 통한 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [AWS 데이터 모으기 지표 수집 프레임워크](https://github.com/awslabs/aws-dataset-ingestion-metrics-collection-framework) 
+  [Amazon RDS 모니터링 워크숍](https://www.workshops.aws/?tag=Enhanced%20Monitoring) 