오래된 콘텐츠입니다. 이 버전의 Well-Architected Framework는 현재 다음 위치에서 찾을 수 있습니다. https://docs.aws.amazon.com/ko_kr/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 4: 데이터베이스 솔루션 선택 방법

시스템에 대한 최적의 데이터베이스 솔루션은 가용성, 일관성, 파티션 허용 오차, 지연 시간, 내구성, 확장성, 쿼리 기능에 대한 요구 사항에 따라 다릅니다. 여러 시스템은 다양한 하위 시스템에 대해 서로 다른 데이터베이스 솔루션을 사용하고 다양한 기능을 활성화하여 성능을 개선할 수 있습니다. 시스템에 대해 잘못된 데이터베이스 솔루션 및 기능을 선택하면 성능 효율성이 저하될 수 있습니다.

리소스

AWS purpose-built databases (DAT209-L)
Amazon Aurora storage demystified: How it all works (DAT309-R)
Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)
Cloud Databases with AWS
AWS Database Caching
Amazon DynamoDB Accelerator
Amazon Aurora best practices
Amazon Redshift performance
Amazon Athena top 10 performance tips
Amazon Redshift Spectrum best practices
Amazon DynamoDB best practices

모범 사례:

개선 계획

데이터 특성 파악:

  • 데이터 특성 조사 및 문서화: 데이터베이스 솔루션을 선택하기 전에 워크로드의 기능 요구 사항과 워크로드가 데이터와 상호 작용하는 방식을 파악합니다. 데이터베이스 솔루션을 평가할 때는 해당 솔루션이 트랜잭션 또는 고가용성 등의 요구 사항을 가장 효율적으로 충족할 수 있는지를 확인합니다. 그러면 워크로드에 사용할 최적의 데이터베이스 조합을 선택할 수 있습니다. 워크로드 요구 사항을 보다 효과적으로 충족하는 대체 데이터베이스를 평가합니다. 예를 들어 IoT 애플리케이션을 구축하는 경우 Amazon Timestream과 같은 시계열 데이터베이스를 선택하여 관계형 데이터베이스의 1/10에 해당하는 비용으로 매일 수조 건의 이벤트를 손쉽게 저장하고 분석하는 것이 더 좋을 수 있습니다.
  • 사용 가능한 옵션 평가

  • 워크로드에 적합한 데이터베이스 유형 선택: AWS에서는 관계형, 키-값, 문서, 인메모리, 그래프, 시계열 및 원장 데이터베이스를 비롯하여 특별히 구축된 여러 데이터베이스 엔진 중에서 선택할 수 있습니다. AWS의 특별히 구축된 데이터베이스 포트폴리오는 다양한 데이터 모델을 지원합니다. 고객은 사용 사례를 기반으로 확장성이 뛰어난 분산 애플리케이션을 구축할 수 있습니다. 특정 문제 또는 문제 그룹을 해결할 수 있는 최고의 데이터베이스를 선택할 수 있으므로 제한적이고 획일적인 범용 데이터베이스에서 벗어나 비즈니스의 요구 사항을 충족하는 애플리케이션을 구축하는 데 집중할 수 있습니다.
  • 데이터베이스 성능 요구 사항 정의: 워크로드에 중요한 데이터베이스 성능 지표를 파악하고, 벤치마킹 또는 로드 테스트를 사용하여 데이터 기반 접근 방식의 일부로 요구 사항을 구현합니다. 이 데이터를 사용하여 데이터베이스 솔루션이 제한되는 위치를 식별하고, 문제를 해결하는 구성 옵션을 검사합니다.
  • 데이터베이스 캐싱 옵션 활성화: 관계형 데이터베이스 캐싱을 위한 Amazon ElastiCache for Redis 또는 DynamoDB를 위한 완전관리형의 고가용성 인메모리 캐시를 제공하는 Amazon DynamoDB Accelerator(DAX)와 같은 데이터베이스 캐싱 옵션을 평가합니다. 이러한 옵션을 사용할 경우 성능이 개선될 수 있으며 경우에 따라 초당 수백만 개의 요청 처리 속도를 밀리초에서 마이크로초까지 개선할 수 있습니다.
  • 데이터베이스 성능 지표 수집 및 기록

  • 데이터베이스 관련 지표 수집: 데이터베이스 활동 관련 지표를 기록하도록 워크로드를 설계합니다. 데이터베이스 시스템이 워크로드의 전반적인 성능에 미치는 영향과 성능 및 효율성 개선을 위해 변경할 수 있는 영역을 파악하려면 이 데이터가 반드시 필요합니다. 예를 들어 쿼리 시간, 트랜잭션 수, 디스크 사용량, 인덱스 사용량 또는 속도가 느린 쿼리와 같은 데이터 포인트를 추적하면 데이터베이스 시스템을 최적화할 수 있습니다.
  • 지표 모니터링: Amazon CloudWatch는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. CloudWatch 또는 타사 솔루션을 사용하여 임계값 위반 시점을 나타내는 경보를 설정합니다.
  • 액세스 패턴을 기준으로 데이터 스토리지 선택

  • 액세스 패턴을 사용하여 데이터 스토리지 결정: 워크로드의 액세스 패턴을 평가하여 적절한 데이터 스토리지 패턴을 찾습니다. 예를 들어 워크로드에 임시 쿼리 액세스가 필요한 경우 Amazon RDS와 같은 관계형 데이터베이스를 선택할 수 있습니다. 워크로드가 빠른 증가율 또는 높은 트래픽 이벤트로 구동되는 경우 Amazon DynamoDB와 같은 키–값 데이터베이스를 선택해야 합니다.
  • 액세스 패턴 및 지표를 기준으로 데이터 스토리지 최적화

  • 지표 및 패턴을 기준으로 데이터 스토리지 최적화: 보고된 지표를 사용하여 워크로드에서 성능이 낮은 영역을 식별하고 데이터베이스 구성 요소를 최적화합니다. 각 데이터베이스 시스템에서 평가해야 하는 성능 관련 특성(예: 데이터를 캐싱/인덱싱하거나 여러 시스템으로 분산하는 방법)은 서로 다릅니다. 최적화의 영향을 측정합니다.