PERF04-BP01 데이터 특성 파악 - AWS Well-Architected Framework

PERF04-BP01 데이터 특성 파악

워크로드 데이터 세트의 특성, 액세스 패턴 및 요구 사항에 최적으로 일치하는 데이터 관리 솔루션을 선택합니다. 데이터 관리 솔루션을 선택하고 구현할 때는 쿼리, 확장 및 스토리지 특성이 워크로드 데이터 요구 사항을 지원하는지 확인해야 합니다. 다양한 데이터베이스 옵션이 데이터 모델과 어떻게 일치하는지, 어떤 구성 옵션이 사용 사례에 가장 적합한지 알아보십시오. 

AWS에서는 관계형, 키 값, 문서, 인 메모리, 그래프, 시계열 및 원장 데이터베이스를 포함한 수많은 데이터베이스 엔진을 제공합니다. 각 데이터 관리 솔루션에는 사용 사례 및 데이터 모델을 지원하는 옵션과 구성이 있습니다. 워크로드에서 데이터 특성에 따라 여러 가지 데이터베이스 솔루션을 사용할 수 있습니다. 특정 문제에 가장 적합한 데이터베이스 솔루션을 선택하면, 모든 상황에 한 가지 접근 방식을 사용하는 제한적인 모놀리식 데이터베이스에서 탈피하여 고객의 요구를 충족하는 데이터 관리에 집중할 수 있습니다.

원하는 결과: 지원 데이터베이스 솔루션의 선택과 구성을 용이하게 하고 잠재적인 대안에 대한 인사이트를 제공하도록 충분한 세부 정보를 담아 워크로드 데이터 특성을 문서화합니다.

일반적인 안티 패턴:

  • 대규모 데이터 세트를 유사한 특성을 가진 더 작은 데이터 모음으로 분할하는 방법을 고려하지 않아 데이터 및 성장 특성에 보다 적합한 목적별 데이터베이스를 더 많이 사용할 기회를 놓칩니다.

  • 데이터 액세스 패턴을 사전에 식별하지 않아 나중에 많은 비용이 들고 복잡한 재작업을 해야 합니다.

  • 필요에 따라 신속하게 확장되지 않는 데이터 스토리지 전략을 사용하여 성장을 제한합니다.

  • 모든 워크로드에 하나의 데이터베이스 유형과 공급업체를 선택합니다.

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

  • 온프레미스 환경에서 잘 작동했다는 이유로 같은 데이터베이스 솔루션을 그대로 사용합니다.

이 모범 사례 수립의 이점: 다양한 워크로드에 적합한 데이터베이스 솔루션을 결정하려면 모든 AWS 데이터베이스 솔루션에 대해 잘 알아야 합니다. 워크로드에 사용할 데이터베이스 솔루션을 선택한 후에는 이러한 각 데이터베이스 오퍼링을 신속하게 실험하여 워크로드 요구 사항이 계속해서 충족되는지 확인할 수 있습니다.

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

  • 잠재적인 비용 절감 효과가 나타나지 않을 수 있습니다.

  • 데이터가 필요한 수준으로 보호되지 않을 수 있습니다.

  • 데이터 액세스 및 스토리지 성능이 최적의 상태가 아닐 수 있습니다.

구현 가이드

워크로드의 데이터 특성과 액세스 패턴을 정의하십시오. 사용 가능한 모든 데이터베이스 솔루션을 검토하여 데이터 요건을 지원하는 솔루션을 식별해야 합니다. 주어진 워크로드 내에서 다양한 데이터베이스를 선택할 수 있습니다. 각 서비스 또는 서비스 그룹을 평가하고 개별적으로 검토하십시오. 데이터의 일부 또는 전체에 대해 사용할 수 있는 대체 데이터 관리 솔루션이 확인된 경우 비용, 보안, 성능, 신뢰성 측면에서 이점을 제공할 수 있는 대체 구현을 시험해 보면 좋습니다. 새로운 데이터 관리 전략을 채택할 경우 기존 문서를 업데이트합니다.

유형 AWS 서비스 주요 특징 일반 사용 사례
관계형 Amazon RDS, Amazon Aurora 참조 무결성, ACID 트랜잭션, 쓰기 스키마 ERP, CRM, 상용 소프트웨어
키-값 Amazon DynamoDB 높은 처리량(throughput), 짧은 지연 시간, 무한에 가까운 확장성 장바구니(전자 상거래), 제품 카탈로그, 채팅 애플리케이션
문서 Amazon DocumentDB JSON 문서를 저장하고 모든 속성 쿼리 콘텐츠 관리(CMS), 고객 프로파일, 모바일 애플리케이션
인 메모리 Amazon ElastiCache, Amazon MemoryDB 마이크로초 단위의 지연 시간 캐싱, 게임 리더보드
그래프 Amazon Neptune 데이터 간의 관계가 의미를 갖는 고도의 관계형 데이터 소셜 네트워크, 개인화 엔진, 사기 탐지
시계열 Amazon Timestream 기본 차원이 시간인 데이터 DevOps, IoT, 모니터링
와이드 컬럼 Amazon Keyspaces Cassandra 워크로드 산업 장비 유지보수, 경로 최적화
원장 Amazon QLDB 변경 불가능하고 암호로 확인할 수 있는 원장 변경 사항 기록 시스템, 의료, 공급망, 금융 기관

구현 단계

  1. 데이터가 어떻게 구조화되었습니까?(예: 비정형, 키 값, 반정형, 관계형)

    1. 데이터가 비정형인 경우 Amazon S3 와 같은 객체 스토어 또는 Amazon DocumentDB와 같은 NoSQL 데이터베이스를 고려합니다.

    2. 키 값 데이터의 경우 DynamoDB, ElastiCache for Redis 또는 MemoryDB를 고려합니다.

    3. 데이터가 관계형 구조를 가진다면 어느 정도의 참조 무결성이 요구됩니까?

      1. 외래 키 제약 조건의 경우 Amazon RDSAurora 와 같은 관계형 데이터베이스가 원하는 무결성 수준을 제공할 수 있습니다.

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

  2. 원자성, 일관성, 격리, 내구성(ACID) 규정 준수가 필요합니까?

    1. 관계형 데이터베이스와 연결된 ACID 속성이 필요한 경우 Amazon RDSAurora와 같은 관계형 데이터베이스를 고려합니다.

  3. 어떤 정합성 모델이 필요합니까?

    1. 애플리케이션에서 최종 일관성을 허용할 수 있다면 NoSQL 구현을 고려합니다. 다른 특성을 검토하면 가장 적합한 NoSQL 데이터베이스를 선택하는 데 도움이 됩니다.

    2. 철저한 일관성이 필요한 경우 DynamoDB 또는 Amazon RDS와 같은 관계형 데이터베이스로 강력히 일관된 읽기를 사용할 수 있습니다.

  4. 어떤 쿼리 및 결과 형식을 지원해야 합니까?(예: SQL, CSV, Parque, Avro, JSON 등)

  5. 어떤 데이터 유형, 필드 크기 및 전체 용량을 사용합니까?(예: 텍스트, 숫자, 공간, 시계열 계산, 바이너리 또는 블롭, 문서)

  6. 시간이 흐르면서 스토리지 요구 사항이 어떻게 변경되며, 이러한 변화가 확장성에 어떤 영향을 미칩니까?

    1. 서버리스 데이터베이스( DynamoDBAmazon Quantum Ledger Database )는 무한에 가까운 스토리지로 동적으로 확장됩니다.

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

  7. 쓰기 쿼리 대비 읽기 쿼리의 비율은 얼마입니까? 캐싱이 성능을 향상시킬 가능성이 있습니까?

    1. 읽기 집약적인 워크로드는 캐싱 계층을 통해 이점을 얻을 수 있습니다. 이는 ElastiCache 또는 DAX일 수 있습니다 (데이터베이스가 DynamoDB인 경우).

    2. 읽기는 관계형 데이터베이스 (예: Amazon RDS)가 있는 읽기 전용 복제본으로 오프로드될 수 있습니다.

  8. 저장 및 수정(OLTP - 온라인 트랜잭션 처리) 또는 검색 및 보고(OLAP - 온라인 분석 처리)가 높은 우선순위를 가집니까?

    1. 처리량(throughput)이 많은 트랜잭션 처리의 경우 DynamoDB 또는 Amazon DocumentDB와 같은 NoSQL 데이터베이스를 고려합니다.

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

  9. 이 데이터의 중요도와 필요한 보호 및 암호화 수준은 어느 정도입니까?

    1. Amazon RDS 및 Aurora 엔진은 AWS KMS를 사용하여 데이터 암호화를 지원합니다. 또한 Microsoft SQL Server 및 Oracle은 Amazon RDS를 사용할 때 기본 투명한 데이터 암호화(TDE)를 지원합니다.

    2. DynamoDB의 경우 IAM 과 함께 세분화된 액세스 제어를 통해 누가 키 수준에서 어떤 데이터에 액세스할지 제어할 수 있습니다.

  10. 데이터에 필요한 내구성은 어느 정도입니까?

    1. Aurora는 리전 내 3개의 가용 영역에서 데이터를 자동으로 복제하므로, 데이터 손실 가능성이 적으면서도 데이터의 내구성이 매우 높아집니다.

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

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

  11. 할 것 Recovery Time Objective(RTO) 또는 Recovery Point Objective(RPO) 요건이 솔루션에 영향을 미칩니까?

    1. Amazon RDS, Aurora, DynamoDB, Amazon DocumentDB, Neptune은 모두 시점 복구와 온디맨드 백업 및 복원을 지원합니다. 

    2. 고가용성 요구 사항을 위해 DynamoDB 테이블은 글로벌 테이블 기능을 사용하여 전역적으로 복제할 수 있으며, Aurora 클러스터는 글로벌 데이터베이스 기능을 사용하여 여러 리전에 걸쳐 복제할 수 있습니다. 나아가 S3 버킷은 교차 리전 복제를 사용하여 AWS 리전에 걸쳐 복제 가능합니다. 

  12. 상용 데이터베이스 엔진/라이선싱 비용에 대한 걱정을 덜고 싶습니까?

    1. Amazon RDS 또는 Aurora에서 PostgreSQL 및 MySQL과 같은 오픈 소스 엔진을 고려합니다.

    2. 그리고 AWS DMSAWS SCT 를 활용하여 상용 데이터베이스 엔진에서 오픈 소스로 마이그레이션을 수행합니다.

  13. 데이터베이스에 대한 운영상의 기대치는 어떠합니까? 관리형 서비스로 전환하는 것이 주요 관심사입니까?

    1. Amazon EC2 대신 Amazon RDS를 활용하고 자체 호스팅한 NoSQL 데이터베이스 대신 DynamoDB 또는 Amazon DocumentDB를 활용하여 운영 오버헤드를 줄일 수 있습니다.

  14. 현재 데이터베이스에 어떻게 액세스합니까? 애플리케이션 액세스만 가능합니까? 아니면 비즈니스 인텔리전스(BI) 사용자와 기타 연결된 상용 애플리케이션이 있습니까?

    1. 외부 도구에 의존하는 경우 해당 도구가 지원하는 데이터베이스와의 호환성을 유지해야 할 수도 있습니다. Amazon RDS는 Microsoft SQL Server, Oracle, MySQL, PostgreSQL 등 지원하는 다양한 엔진 버전과 완벽하게 호환됩니다.

  15. 잠재적인 데이터 관리 서비스 목록과 이러한 서비스를 가장 효과적으로 사용할 수 있는 위치는 다음과 같습니다.

    1. 관계형 데이터베이스는 미리 정의된 스키마와 스키마 간의 관계를 사용하여 데이터를 저장합니다. 이러한 데이터베이스는 ACID(원자성, 일관성, 격리, 내구성) 트랜잭션을 지원하고 참조 무결성과 강력한 데이터 일관성을 유지하도록 설계되었습니다. 많은 기존 애플리케이션, 엔터프라이즈 리소스 계획(ERP), 고객 관계 관리(CRM) 및 전자 상거래의 데이터가 관계형 데이터베이스를 사용하여 저장됩니다. 이러한 데이터베이스 엔진의 다수를 Amazon EC2에서 실행하거나 AWS 관리형 데이터베이스 서비스Amazon AuroraAmazon RDS 및 Amazon Redshift중에서 선택할 수 있습니다.

    2. 키-값 데이터베이스는 대개 대량의 데이터를 저장 및 검색하는 일반적인 액세스 패턴에 최적화되어 있습니다. 이 데이터베이스는 동시 요청의 양이 매우 많은 경우에도 빠른 응답 시간을 제공합니다. 트래픽이 많은 웹 앱, 전자 상거래 시스템 및 게임 애플리케이션은 키 값 데이터베이스의 일반적인 사용 사례입니다. AWS에서는 Amazon DynamoDB를 활용할 수 있습니다. Amazon DynamoDB는 인터넷 규모의 애플리케이션을 위한 보안, 백업 및 복원, 인 메모리 캐싱 기능이 내장된 탁월한 내구성을 지닌 완전관리형 다중 리전, 다중 마스터 데이터베이스입니다.

    3. 인 메모리 데이터베이스는 데이터에 대한 실시간 액세스, 가장 짧은 지연 시간 및 가장 높은 처리량(throughput)이 필요한 애플리케이션에 사용됩니다. 이 데이터베이스는 데이터를 메모리에 직접 저장함으로써 밀리초 단위의 지연 시간도 허용되지 않는 애플리케이션에 마이크로초 단위의 지연 시간을 제공합니다. 애플리케이션 캐싱, 세션 관리, 게임 순위표 및 지리 공간 애플리케이션에 인메모리 데이터베이스를 사용할 수 있습니다. Amazon ElastiCache 는 다음과 호환되는 완전관리형 인메모리 데이터 스토어입니다. Redis 또는 Memcached. 애플리케이션의 내구성 요건이 더 높은 경우 Amazon MemoryDB for Redis 에서는 이를 조합하여 놀랍도록 빠르고 내구성이 뛰어난 인 메모리 데이터베이스 서비스를 제공합니다.

    4. 도큐먼트 데이터베이스는 반정형 데이터를 JSON 유사 문서로 저장하도록 설계되었습니다. 이러한 데이터베이스는 개발자가 콘텐츠 관리, 카탈로그 및 사용자 프로필과 같은 애플리케이션을 신속하게 구축하고 업데이트하는 데 도움이 됩니다. Amazon DocumentDB 는 MongoDB 워크로드를 지원하는 완전관리형 문서 데이터베이스 서비스로, 탁월한 속도, 확장성 및 고가용성을 제공합니다.

    5. 와이드 컬럼 스토어는 NoSQL 데이터베이스의 한 유형입니다. 테이블, 행 및 열을 사용하지만 관계형 데이터베이스와 달리 열의 이름과 형식은 동일한 테이블에서 행마다 다를 수 있습니다. 일반적으로 와이드 컬럼 스토어는 대규모 산업 앱에서 장비 유지 관리, 플릿 관리 및 라우팅 최적화를 위해 사용됩니다. Amazon Keyspaces(Apache Cassandra용) 는 와이드 컬럼 확장성 및 고가용성을 갖춘 관리형 Apache Cassandra 호환 데이터베이스 서비스입니다.

    6. 그래프 데이터베이스는 밀접한 관계가 있는 그래프 데이터 세트 간에 밀리초 단위의 지연 시간으로 수백만 개의 관계를 탐색하고 쿼리해야 하는 애플리케이션을 위한 솔루션입니다. 많은 기업에서 사기 탐지, 소셜 네트워킹 및 추천 엔진에 그래프 데이터베이스를 사용합니다. Amazon Neptune 은 빠르고 안정적인 완전 관리형 그래프 데이터베이스 서비스로, 상호 연결성이 높은 데이터 세트를 활용하는 애플리케이션을 쉽게 구축하고 실행할 수 있습니다.

    7. 시계열 데이터베이스는 시간이 지남에 따라 변화하는 데이터에서 효율적으로 분석 정보를 수집, 통합 및 도출합니다. IoT 애플리케이션, DevOps 및 산업용 텔레메트리에 시계열 데이터베이스를 활용할 수 있습니다. Amazon Timestream 은 IoT 및 운영 애플리케이션을 위한 고속의 확장 가능한 완전관리형 시계열 데이터베이스 서비스입니다. 이 서비스를 사용하면 하루에 수조 건의 이벤트를 손쉽게 저장하고 분석할 수 있습니다.

    8. 원장 데이터베이스는 모든 애플리케이션에 대해 확장 가능하고 변경 불가능하며 암호화 방식으로 확인 가능한 트랜잭션 레코드를 유지하는 신뢰할 수 있는 중앙 집중식 권한을 제공합니다. 레코드 시스템, 공급망, 등록 및 심지어 은행 거래 시스템에 원장 데이터베이스가 사용되는 것을 볼 수 있습니다. Amazon Quantum Ledger Database(Amazon QLDB) 는 신뢰할 수 있는 중앙 기관이 소유한 투명하고 변경 불가능하며 암호화 방식으로 확인 가능한 트랜잭션 로그를 제공하는 완전관리형 원장 데이터베이스입니다. Amazon QLDB는 모든 애플리케이션 데이터 변경 사항을 추적하고 시간 경과에 따른 완전하고 확인 가능한 변경 기록을 유지합니다.

구현 계획의 작업 수준: 워크로드가 한 데이터베이스 솔루션에서 다른 데이터베이스 솔루션으로 이동하는 경우 데이터 및 애플리케이션을 리팩터링하는 데 많은 노력이 필요할 수 있습니다.  

리소스

관련 문서:

관련 동영상:

관련 예시: