PERF04-BP04 액세스 패턴을 기준으로 데이터 스토리지 선택 - AWS Well-Architected Framework

PERF04-BP04 액세스 패턴을 기준으로 데이터 스토리지 선택

워크로드의 액세스 패턴을 기준으로 하여 사용할 서비스와 기술을 결정합니다. 액세스 패턴은 성능과 확장 등 기능과 관련 없는 요구 사항은 물론 데이터베이스 및 스토리지 솔루션의 선택에 큰 영향을 미칩니다. 첫 번째로 생각해 볼 점은 트랜잭션, ACID 규정 준수 및 일관된 읽기의 필요성입니다. 모든 데이터베이스가 이를 지원하지는 않으며, 대부분의 NoSQL 데이터베이스는 최종 정합성 모델을 제공합니다. 두 번째로 중요한 점은 시간과 공간에 따른 쓰기 및 읽기 분포입니다. 전 세계에 분산된 애플리케이션의 경우 최적의 스토리지 솔루션을 식별할 수 있도록 트래픽 패턴, 지연 시간 및 액세스 요구 사항을 고려해야 합니다. 세 번째로 쿼리 패턴 유연성, 임의의 액세스 패턴 및 일회성 쿼리를 선택하는 것도 중요합니다. 텍스트 및 자연어 처리, 시계열 및 그래프에 대한 고도로 전문화된 쿼리 기능을 중심으로 한 고려 사항도 염두에 두어야 합니다.

원하는 결과: 식별되어 문서화된 데이터 액세스 패턴을 기반으로 데이터 스토리지를 선택했습니다. 여기에는 가장 일반적인 읽기, 쓰기 및 삭제 쿼리, 임시 계산 및 집계 필요성, 데이터 복잡성, 데이터 상호 종속성 및 필수 일관성 요구 사항이 포함될 수 있습니다.

일반적인 안티 패턴:

  • 운영 관리를 간소화하기 위해 데이터베이스 공급업체를 하나만 선택합니다.

  • 시간이 지나면 데이터 액세스 패턴이 일관되게 유지될 것이라고 가정합니다.

  • 애플리케이션에 복잡한 트랜잭션, 롤백 및 일관성 로직을 구현합니다.

  • 데이터베이스가 높은 트래픽 버스트를 지원하도록 구성되어 있어 데이터베이스 리소스가 대부분의 시간 동안 유휴 상태로 유지됩니다.

  • 트랜잭션 및 분석 용도로 공유 데이터베이스를 사용합니다.

이 모범 사례 정립의 이점: 액세스 패턴을 기반으로 데이터 스토리지를 선택하고 최적화하면 개발 복잡성을 줄이고 성능 기회를 최적화하는 데 도움이 됩니다. 읽기 전용 복제본, 글로벌 테이블, 데이터 파티셔닝 및 캐싱을 사용해야 하는 시기를 파악하면 워크로드 요구 사항에 따라 운영 오버헤드를 줄이고 규모를 확장할 수 있습니다.

이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준: 보통

구현 가이드

데이터 액세스 패턴을 식별하고 평가하여 올바른 스토리지 구성을 선택하십시오. 각 데이터베이스 솔루션에는 스토리지 솔루션을 구성하고 최적화하는 데 사용하는 옵션이 있습니다. 수집된 지표와 로그로 옵션을 실험하여 최적의 구성을 찾을 수 있습니다. 다음 테이블에서 데이터베이스 서비스별 스토리지 옵션을 검토하십시오.

AWS 서비스 Amazon RDS, Amazon Aurora Amazon DynamoDB Amazon DocumentDB Amazon ElastiCache Amazon Neptune Amazon Timestream Amazon Keyspaces Amazon QLDB
스토리지 확장 프로비저닝된 스토리지를 자동 확장하는 데 사용 가능한 스토리지 자동 확장 옵션을 이용하면 프로비저닝된 IOPS 스토리지 유형을 활용할 때 프로비저닝된 스토리지를 독립적으로 확장할 수 있습니다. 자동으로 확장됩니다. 테이블은 크기에 제한이 없습니다. 스토리지 자동 확장 옵션을 사용할 수 있는 프로비저닝된 확장 스토리지입니다. 스토리지는 인스턴스 유형 또는 개수에 연결된 메모리 내에 있습니다. 스토리지 자동 확장 옵션을 사용하여 프로비저닝된 스토리지를 자동으로 확장할 수 있습니다. 인 메모리 및 마그네틱 계층에 대한 보존 기간을 일 단위로 구성합니다. 테이블 스토리지를 자동으로 확장 및 축소합니다. 자동으로 확장됩니다. 테이블은 크기에 제한이 없습니다.

구현 단계:

  1. 예상되는 데이터 및 트래픽 증가를 식별하고 문서화하십시오.

    1. Amazon RDS 및 Aurora에서는 문서화된 한도까지 스토리지 자동 확장을 지원합니다. 이 한도를 넘어서는 경우 데이터를 아카이브하고 분석을 위해 과거 데이터를 집계하거나 샤딩을 통해 수평으로 확장하려면 Amazon S3로의 이전을 고려하십시오.

    2. DynamoDB 및 Amazon S3에서는 거의 무제한에 가까운 스토리지 볼륨으로 자동 확장됩니다.

    3. EC2에서 실행 중인 Amazon RDS 인스턴스와 데이터베이스의 크기를 수동으로 조정할 수 있으며, EC2 인스턴스에는 나중에 새 EBS 볼륨을 추가하여 또 다른 스토리지로 활용할 수 있습니다. 

    4. 인스턴스 유형은 활동 변화에 따라 변경될 수 있습니다. 예를 들어, 테스트 과정에서 더 작은 인스턴스로 시작했다가 서비스에 대한 프로덕션 트래픽을 수신하기 시작할 때 인스턴스를 확장하는 것도 가능합니다. Aurora Serverless V2는 로드 변화에 따라 자동으로 확장됩니다. 

  1. 정상 성능과 최고 성능(초당 트랜잭션(TPS) 및 초당 쿼리(QPS)), 일관성(ACID 및 최종 일관성)에 대한 요구 사항을 문서화합니다.

  2. 솔루션 배포 측면과 데이터베이스 액세스 요구 사항(글로벌, 다중 가용 영역, 읽기 전용 복제본, 다중 쓰기 노드)을 문서화합니다.

구현 계획의 작업 수준: 데이터 관리 솔루션에 대한 로그나 지표가 없는 경우 데이터 액세스 패턴을 식별하고 문서화하기 전에 이를 생성해야 합니다. 데이터 액세스 패턴이 파악되면 데이터 스토리지를 선택하고 구성하는 데는 낮은 수준의 노력이 필요합니다.

리소스

관련 문서:

관련 동영상:

관련 예시: