PERF03-BP01 데이터 액세스 및 스토리지 요구 사항을 가장 잘 지원하는 목적별 데이터 스토어 사용 - AWS Well-Architected 프레임워크

PERF03-BP01 데이터 액세스 및 스토리지 요구 사항을 가장 잘 지원하는 목적별 데이터 스토어 사용

데이터 특성(공유 가능 여부, 크기, 캐시 크기, 액세스 패턴, 지연 시간, 처리량, 데이터 지속성 등)을 이해하여 워크로드에 적합한 목적별 데이터 스토어(스토리지 또는 데이터베이스)를 선택해야 합니다.

일반적인 안티 패턴:

  • 하나의 특정 데이터베이스 솔루션에 대한 내부 경험과 지식만 갖춘 탓에 하나의 데이터 스토어만 고수합니다.

  • 모든 워크로드의 데이터 스토리지 및 액세스 요구 사항이 비슷하다고 가정합니다.

  • 데이터 자산의 인벤토리 등록을 위한 데이터 카탈로그를 구현하지 않았습니다.

이 모범 사례 확립의 이점: 데이터 특성과 요구 사항을 파악하면 워크로드 요구 사항을 충족하는 가장 효율적이고 성능이 뛰어난 스토리지 기술을 결정할 수 있습니다.

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

구현 가이드

데이터 스토리지를 선택하고 구현할 때는 쿼리, 규모 조정 및 스토리지 특성이 워크로드 데이터 요구 사항을 지원하는지 확인해야 합니다. AWS는 블록 스토리지, 객체 스토리지, 스트리밍 스토리지, 파일 시스템, 관계형, 키 값, 문서, 인메모리, 그래프, 시계열, 원장 데이터베이스를 포함한 다양한 데이터 스토리지 및 데이터베이스 기술을 제공합니다. 각 데이터 관리 솔루션에는 사용 사례 및 데이터 모델을 지원하는 옵션과 구성이 있습니다. 데이터 특성과 요구 사항을 이해하면 모놀리식 스토리지 기술과 제한적인 획일적 접근 방식에서 벗어나 데이터를 적절하게 관리하는 데 집중할 수 있습니다.

구현 단계

  • 워크로드에 존재하는 다양한 데이터 유형의 인벤토리를 수행합니다.

  • 다음과 같은 데이터 특성 및 요구 사항을 이해하고 문서화합니다.

    • 데이터 형식(비정형, 반정형, 관계형)

    • 데이터 볼륨 및 증가

    • 데이터 내구성: 영구, 임시, 일시적

    • 원자성, 일관성, 격리, 내구성(ACID) 요구 사항

    • 데이터 액세스 패턴(읽기 중심 또는 쓰기 중심)

    • 지연 시간

    • 처리량

    • 초당 입출력 연산 수(IOPS)

    • 데이터 보존 기간

  • 데이터 특성에 맞는 AWS의 워크로드에 사용할 수 있는 다양한 데이터 스토어(스토리지데이터베이스 서비스)에 대해 알아봅니다(PERF01-BP01 사용 가능한 클라우드 서비스 및 기능 학습 및 이해 참조). 다음은 AWS 스토리지 기술의 몇 가지 예와 주요 특성입니다.

    유형 AWS 서비스 주요 특징
    객체 스토리지 Amazon S3 무제한 확장성, 고가용성, 다양한 접근성 옵션. Amazon S3 안팎에서 객체를 전송하고 객체에 액세스할 때 전송 가속화 또는 액세스 포인트와 같은 서비스를 사용하여 위치, 보안 요구 사항 및 액세스 패턴을 지원할 수 있습니다.
    아카이빙 스토리지 Amazon S3 Glacier 데이터 보관을 위해 제작되었습니다.
    스트리밍 스토리지

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka(Amazon MSK)

    스트리밍 데이터의 효율적인 수집 및 저장.
    공유 파일 시스템

    Amazon Elastic File System(Amazon EFS)

    여러 유형의 컴퓨팅 솔루션에서 액세스할 수 있는 탑재 가능한 파일 시스템입니다.

    공유 파일 시스템 Amazon FSx 최신 AWS 컴퓨팅 솔루션을 기반으로 구축되어 일반적으로 사용되는 네 가지 파일 시스템인 NetApp ONTAP, OpenZFS, Windows 파일 서버, Lustre를 지원합니다. Amazon FSx 지연 시간, 처리량, IOPS는 파일 시스템에 따라 달라지며 워크로드의 요구 사항에 적합한 파일 시스템을 선택할 때 고려해야 합니다.
    블록 스토리지 Amazon Elastic Block Store(Amazon EBS) Amazon Elastic Compute Cloud(Amazon EC2)를 위해 설계된 확장 가능한 고성능 블록 스토리지 서비스. Amazon EBS에는 IOPS 집약적 트랜잭션 워크로드를 위한 SSD 지원 스토리지와 처리량 집약적 워크로드를 위한 HDD 지원 스토리지가 포함됩니다.
    관계형 데이터베이스 Amazon AuroraAmazon RDSAmazon Redshift. 원자성, 일관성, 격리, 내구성(ACID) 트랜잭션을 지원하고 참조 무결성과 강력한 데이터 일관성을 유지하도록 설계되었습니다. 많은 기존 애플리케이션, 엔터프라이즈 리소스 계획(ERP), 고객 관계 관리(CRM) 및 전자 상거래의 데이터가 관계형 데이터베이스를 사용하여 저장됩니다.
    키 값 데이터베이스 Amazon DynamoDB 대개 대량의 데이터를 저장 및 검색하는 일반적인 접근 패턴에 최적화되어 있습니다. 트래픽이 많은 웹 앱, 전자 상거래 시스템, 게임 애플리케이션은 키 값 데이터베이스의 일반적인 사용 사례입니다.
    문서 데이터베이스 Amazon DocumentDB 반정형 데이터를 JSON과 유사한 문서로 저장하도록 설계되었습니다. 이러한 데이터베이스는 개발자가 콘텐츠 관리, 카탈로그 및 사용자 프로필과 같은 애플리케이션을 신속하게 구축하고 업데이트하는 데 도움이 됩니다. 
    인 메모리 데이터베이스 Amazon ElastiCache, Amazon MemoryDB for Redis 데이터에 대한 실시간 액세스, 최저 지연 시간 및 최대 처리량을 요하는 애플리케이션에 사용됩니다. 애플리케이션 캐싱, 세션 관리, 게임 순위표, 저지연 ML 특성 저장소, 마이크로서비스 메시징 시스템, 고처리량 스트리밍 메커니즘에 인메모리 데이터베이스를 사용할 수 있습니다.
    그래프 데이터베이스 Amazon Neptune 밀접한 관계가 있는 그래프 데이터 세트 간에 밀리초 단위의 지연 시간으로 수백만 개의 관계를 탐색하고 쿼리해야 하는 애플리케이션을 위한 솔루션입니다. 많은 기업에서 사기 탐지, 소셜 네트워킹 및 추천 엔진에 그래프 데이터베이스를 사용합니다.
    시계열 데이터베이스 Amazon Timestream 시간이 지남에 따라 변화하는 데이터에서 효율적으로 분석 정보를 수집, 통합 및 도출합니다. IoT 애플리케이션, DevOps 및 산업용 원격 측정에 시계열 데이터베이스를 활용할 수 있습니다.
    와이드 컬럼 Amazon Keyspaces(Apache Cassandra용) 테이블, 행 및 열을 사용하지만 관계형 데이터베이스와 달리 동일한 테이블 내의 열의 이름과 형식이 행마다 다를 수 있습니다. 일반적으로 와이드 컬럼 스토어는 대규모 산업 앱에서 장비 유지 관리, 플릿 관리 및 라우팅 최적화를 위해 사용됩니다. 
    원장 Amazon Quantum Ledger Database(Amazon QLDB) 모든 애플리케이션에 대해 확장 가능하고 변경 불가능하며 암호화 방식으로 확인 가능한 트랜잭션 레코드를 유지하는 신뢰할 수 있는 중앙 집중식 권한을 제공합니다. 레코드 시스템, 공급망, 등록 및 심지어 은행 거래 시스템에 원장 데이터베이스가 사용되는 것을 볼 수 있습니다.  
  • 데이터 플랫폼을 구축하는 경우 AWS의 최신 데이터 아키텍처를 활용하여 데이터 레이크, 데이터 웨어하우스, 목적별 데이터 스토어를 통합합니다.

  • 워크로드에 맞는 데이터 스토어를 선택할 때 고려해야 할 주요 질문은 다음과 같습니다.

    질문 고려할 사항
    데이터는 어떻게 구성되어 있나요?
    어느 정도 수준의 참조 무결성이 필요한가요?
    • 외래 키 제약 조건의 경우 Amazon RDSAurora와 같은 관계형 데이터베이스가 이 수준의 무결성을 제공할 수 있습니다.

    • 일반적으로 NoSQL 데이터 모델 내에서는 문서나 테이블을 조인하는 대신 단일 요청으로 검색하도록 데이터를 단일 문서 또는 문서 모음으로 비정규화합니다. 

    원자성, 일관성, 격리, 내구성(ACID) 규정을 준수해야 하나요?
    • 관계형 데이터베이스와 연결된 ACID 속성이 필요한 경우 Amazon RDSAurora와 같은 관계형 데이터베이스를 고려하세요.

    • NoSQL 데이터베이스에 강력한 일관성이 필요한 경우 DynamoDB를 사용하여 강력하게 일관된 읽기를 사용할 수 있습니다.

    시간의 경과에 따라 스토리지 요구 사항이 어떻게 변하나요? 이러한 변화가 확장성에 어떤 영향을 미치나요?
    • DynamoDBAmazon Quantum Ledger Database(Amazon QLDB)와 같은 서버리스 데이터베이스는 동적으로 규모가 조정됩니다.

    • 관계형 데이터베이스는 프로비저닝된 스토리지에 대한 상한선이 있으며, 한도에 도달하면 샤딩과 같은 메커니즘을 통해 수평으로 분할해야 하는 경우가 많습니다.

    쓰기 쿼리 대비 읽기 쿼리의 비율이 어떻게 되나요? 캐싱으로 성능이 향상될 가능성이 있나요?
    • 읽기 중심의 워크로드는 데이터베이스가 DynamoDB인 경우 ElastiCache 또는 DAX와 같은 캐싱 계층을 활용할 수 있습니다.

    • Amazon RDS와 같은 관계형 데이터베이스를 사용하여 읽기 복제본으로 읽기를 오프로드할 수도 있습니다.

    저장 및 수정(OLTP - 온라인 트랜잭션 처리) 또는 검색 및 보고(OLAP - 온라인 분석 처리)의 우선순위가 더 높은가요?
    • 처리량이 많은 읽기 그대로의 트랜잭션 처리의 경우 DynamoDB와 같은 NoSQL 데이터베이스를 고려합니다.

    • 처리량이 많고 일관성이 있는 복잡한 읽기 패턴(예: 조인)의 경우 Amazon RDS를 사용합니다.

    • 분석 쿼리의 경우 Amazon Redshift와 같은 열 형식 데이터베이스를 고려하거나 Amazon S3로 데이터를 내보내고 Athena 또는 Amazon QuickSight를 사용하여 분석을 수행하는 방법을 고려하세요.

    데이터에 필요한 내구성은 어느 정도인가요?
    • Aurora는 리전 내 3개의 가용 영역에서 데이터를 자동으로 복제하므로, 데이터 손실 가능성이 적으면서도 데이터의 내구성이 매우 높아집니다.

    • DynamoDB는 여러 가용 영역에 걸쳐 자동으로 복제되므로, 높은 가용성과 데이터 내구성을 제공합니다.

    • Amazon S3는 99.999999999%의 내구성을 지원합니다. Amazon RDS 및 DynamoDB와 같은 많은 데이터베이스 서비스는 장기 보존 및 아카이브를 위해 Amazon S3로 데이터 내보내기를 지원합니다.

    상용 데이터베이스 엔진을 쓰고 싶지 않거나 라이선싱 비용을 들이고 싶지 않은가요?
    운영상 데이터베이스에 대해 어떤 점을 기대하나요? 주된 관심 사항이 관리형 서비스로 전환하는 것인가요?
    • Amazon EC2 대신 Amazon RDS를 활용하고 자체 호스팅한 NoSQL 데이터베이스 대신 DocumentDB 또는 Amazon DocumentDB를 활용하여 운영 오버헤드를 줄일 수 있습니다.

    현재 데이터베이스에 어떻게 액세스하고 있나요? 애플리케이션 액세스만 가능한가요? 아니면 비즈니스 인텔리전스(BI) 사용자와 기타 연결된 상용 애플리케이션이 있나요?
    • 외부 도구에 대한 종속성이 있는 경우 해당 도구가 지원하는 데이터베이스와의 호환성을 유지해야 할 수 있습니다. Amazon RDS는 Microsoft SQL Server, Oracle, MySQL, PostgreSQL 등 지원하는 다양한 엔진 버전과 완벽하게 호환됩니다.

  • 비프로덕션 환경에서 실험 및 벤치마킹을 수행하여 워크로드 요구 사항을 가장 잘 해결할 수 있는 데이터 스토어를 파악합니다.

리소스

관련 문서:

관련 비디오:

관련 예제: