

# PERF03-BP02 데이터 스토어에 사용 가능한 구성 옵션 평가
<a name="perf_data_evaluate_configuration_options_data_store"></a>

 데이터 스토어에 사용할 수 있는 다양한 기능과 구성 옵션을 이해하고 평가하여 워크로드에 맞는 스토리지 공간과 성능을 최적화하세요.

 **일반적인 안티 패턴**: 
+  모든 워크로드에 Amazon EBS와 같은 하나의 스토리지 유형만 사용합니다.
+  모든 스토리지 계층을 기준으로 한 실제 테스트 없이 워크로드 전체에 프로비저닝된 IOPS를 사용합니다.
+  선택한 데이터 관리 솔루션의 구성 옵션을 알지 못합니다.
+  다른 사용 가능한 구성 옵션을 고려하지 않고 인스턴스 크기만 늘립니다.
+  데이터 스토어의 규모 조정 특성을 테스트하고 있지 않습니다.

 **이 모범 사례 확립의 이점:** 데이터 스토어 구성을 탐색하고 실험하여 인프라 비용을 절감하고, 성능을 개선하며, 워크로드를 유지하는 데 들여야 하는 수고를 줄일 수 있습니다.

 **이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준:** 중간 

## 구현 지침
<a name="implementation-guidance"></a>

 워크로드에는 데이터 스토리지 및 액세스 요구 사항에 따라 하나 이상의 데이터 스토어가 사용될 수 있습니다. 성능 효율성과 비용을 최적화하려면 데이터 액세스 패턴을 평가하여 적절한 데이터 스토어 구성을 결정해야 합니다. 데이터 스토어 옵션을 탐색하는 동안 스토리지 옵션, 메모리, 컴퓨팅, 읽기 복제본, 일관성 요구 사항, 연결 풀링 및 캐싱 옵션과 같은 다양한 측면을 고려하세요. 이러한 다양한 구성 옵션을 실험하여 성능 효율성 지표를 개선해 보세요.

### 구현 단계
<a name="implementation-steps"></a>
+  데이터 스토어의 현재 구성(인스턴스 유형, 스토리지 크기, 데이터베이스 엔진 버전 등)을 파악합니다.
+  AWS 설명서 및 모범 사례를 검토하여 데이터 스토어의 성능을 개선하는 데 도움이 되는 권장 구성 옵션에 대해 알아보세요. 다음과 같은 주요 데이터 스토어 옵션을 고려해야 합니다.


<table>
<thead>
  <tr><th> 구성 옵션 </th><th> 예제 </th></tr>
</thead>
<tbody>
  <tr><td> 읽기 오프로드(예: 읽기 전용 복제본 및 캐싱) </td><td> <ul><li>  DynamoDB 테이블의 경우 캐싱을 위해 DAX를 사용하여 읽기를 오프로드할 수 있습니다. </li><li>  Amazon ElastiCache(Redis OSS) 클러스터를 생성하고 요청된 항목이 없는 경우 데이터베이스로 되돌아가서 캐시에서 먼저 읽도록 애플리케이션을 구성할 수 있습니다. </li><li>  Amazon RDS 및 Aurora와 같은 관계형 데이터베이스와 Neptune 및 Amazon DocumentDB와 같은 프로비저닝된 NoSQL 데이터베이스는 모두 읽기 전용 복제본을 추가하여 워크로드의 읽기 부분을 오프로드할 수 있도록 지원합니다. </li><li>  DynamoDB와 같은 서버리스 데이터베이스는 자동으로 규모가 조정됩니다. 워크로드를 처리하기에 충분한 읽기 용량 단위(RCU)가 프로비저닝되었는지 확인합니다. </li></ul> </td></tr>
  <tr><td> 쓰기 규모 조정(예: 파티션 키 샤딩 또는 대기열 도입) </td><td> <ul><li>  관계형 데이터베이스의 경우 인스턴스 크기를 늘려 확장된 워크로드를 수용하거나 프로비저닝된 IOPS를 늘려 기본 스토리지에 대한 처리량을 증대할 수 있습니다. </li><li>  데이터베이스에 직접 쓰는 대신 데이터베이스 앞에 대기열을 적용할 수도 있습니다. 이 패턴을 사용하면 데이터베이스에서 수집 정보를 분리하고 흐름 속도를 제어하여 데이터베이스가 과부하되지 않도록 할 수 있습니다.   </li><li>  단기간 트랜잭션을 많이 만들지 않고 쓰기 요청을 일괄 처리하면 쓰기 볼륨이 많은 관계형 데이터베이스의 처리량을 향상시킬 수 있습니다. </li><li>  DynamoDB와 같은 서버리스 데이터베이스는 자동으로 쓰기 처리량을 조정하거나 용량 모드에 따라 프로비저닝된 쓰기 용량 단위(WCU)를 조절해 조정할 수 있습니다.   </li><li>  특정 파티션 키에 대한 처리량 제한에 도달하면 핫 파티션과 관련된 문제가 발생할 수 있습니다. 이 문제는 보다 고르게 분산된 파티션 키를 선택하거나 파티션 키를 쓰기 샤딩하여 해결할 수 있습니다.   </li></ul> </td></tr>
  <tr><td> 데이터세트의 수명 주기 관리 정책 </td><td> <ul><li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html">Amazon S3 수명 주기</a>를 사용하여 전체 수명 주기 동안 객체를 관리할 수 있습니다. 액세스 패턴을 알 수 없거나 패턴이 변화하거나 예측할 수 없는 경우 <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering.html">Amazon S3 Intelligent-Tiering</a>을 사용할 수 있으며, 이를 통해 액세스 패턴을 모니터링하고, 액세스하지 않은 객체를 더 저렴한 액세스 계층으로 자동으로 이동할 수 있습니다. <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html">Amazon S3 Storage Lens</a> 지표를 활용하여 수명 주기 관리에서 최적화 기회와 격차를 식별할 수 있습니다. </li><li>  <a href="https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html">Amazon EFS 수명 주기 관리</a>는 파일 시스템에 대한 파일 스토리지를 자동으로 관리합니다. </li></ul> </td></tr>
  <tr><td> 연결 관리 및 풀링 </td><td> <ul><li>  Amazon RDS 프록시는 Amazon RDS 및 Aurora와 함께 사용하여 데이터베이스에 대한 연결을 관리할 수 있습니다.   </li><li>  DynamoDB와 같은 서버리스 데이터베이스에는 연계된 연결이 없으니, 프로비저닝된 용량 및 자동 규모 조정 정책을 고려하여 로드 급증을 처리합니다. </li></ul> </td></tr>
</tbody>
</table>

+  비프로덕션 환경에서 실험 및 벤치마킹을 수행하여 워크로드 요구 사항을 해결할 수 있는 구성 옵션을 파악합니다.
+  실험을 마친 후에는 마이그레이션을 계획하고 성과 지표를 검증합니다.
+  AWS 모니터링(예: [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)) 및 최적화(예: [Amazon S3 Storage Lens](https://aws.amazon.com/s3/storage-lens/)) 도구를 활용하고 실제 사용 패턴에 기반하여 데이터 스토어를 지속적으로 최적화합니다.

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

 **관련 문서**: 
+  [AWS 기반 클라우드 스토리지](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Amazon EBS 볼륨 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 스토리지](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: Amazon EFS Performance](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre Performance](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server Performance](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier: Amazon Glacier 설명서](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: 요청 속도 및 성능 고려 사항](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [Amazon EBS I/O Characteristics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 
+  [ 클라우드 데이터베이스AWS](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS Database Caching](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Amazon Aurora 모범 사례](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 성능](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena top 10 performance tips](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Amazon Redshift Spectrum best practices](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Amazon DynamoDB 모범 사례](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 

 **관련 비디오:** 
+  [AWS re:Invent 2023: Improve Amazon Elastic Block Store efficiency and be more cost-efficient](https://www.youtube.com/watch?v=7-CB02rqiuw) 
+  [AWS re:Invent 2023: Optimize storage price and performance with Amazon Simple Storage Service](https://www.youtube.com/watch?v=RxgYNrXPOLw) 
+  [AWS re:Invent 2023: Building and optimizing a data lake on Amazon Simple Storage Service](https://www.youtube.com/watch?v=mpQa_Zm1xW8) 
+  [AWS re:Invent 2023: What's new with AWS file storage](https://www.youtube.com/watch?v=yXIeIKlTFV0) 
+  [AWS re:Invent 2023: Dive deep into Amazon DynamoDB](https://www.youtube.com/watch?v=ld-xoehkJuU) 

 **관련 예제:** 
+  [AWS Purpose Built Databases 워크숍](https://catalog.us-east-1.prod.workshops.aws/workshops/93f64257-52be-4c12-a95b-c0a1ff3b7e2b/en-US) 
+  [Databases for Developers](https://catalog.workshops.aws/db4devs/en-US) 
+  [AWS Modern Data Architecture Immersion Day](https://catalog.us-east-1.prod.workshops.aws/workshops/32f3e732-d67d-4c63-b967-c8c5eabd9ebf/en-US) 
+  [Amazon EBS Autoscale](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [ Amazon S3 Examples](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+  [Amazon DynamoDB Examples](https://github.com/aws-samples/aws-dynamodb-examples) 
+  [AWS Database migration samples](https://github.com/aws-samples/aws-database-migration-samples) 
+  [Database Modernization 워크숍](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Working with parameters on your Amazon RDS for Postgress DB](https://github.com/awsdocs/amazon-rds-user-guide/blob/main/doc_source/Appendix.PostgreSQL.CommonDBATasks.Parameters.md) 