AWS 클라우드
AWS 클라우드
Amazon DynamoDB 시작하기

NoSQL 데이터베이스는 확장 가능한 성능 및 스키마 없는 데이터 모델에 최적화된 비관계형 데이터베이스입니다. 또한, NoSQL 데이터베이스는 개발 용이성, 짧은 지연 시간 및 복원력으로 널리 인정받고 있습니다. 열 기반, 문서, 그래프, 인 메모리 키-값 스토어를 비롯한 다양한 데이터 모델을 사용합니다. 이 페이지에는 NoSQL 데이터베이스 사용을 시작하는 데 도움이 되는 리소스가 나와 있습니다.

PurposeBuilt-reInvent
58:35
What’s New for AWS Purpose-Built, Nonrelational Databases

NoSQL 데이터베이스 시스템에서는 인 메모리 키-값 스토어, 그래프 데이터 모델, 문서 스토어 등 데이터 관리를 위해 다양한 모델을 사용합니다. 이러한 데이터베이스 유형은 큰 테이터 볼륨, 짧은 지연 시간, 유연한 데이터 모델이 필요한 애플리케이션에 최적화되었으며, 이는 기존 관계형 데이터베이스의 데이터 일관성 제약을 일부 완화함으로써 이루어집니다.

NoSQL 데이터베이스는 기존 관계형 데이터베이스보다 더 큰 규모와 더 빠른 응답성이 필요한 많은 빅 데이터, 모바일 및 웹 애플리케이션에 매우 적합합니다. 간단한 데이터 구조와 수평적 확장 덕분에 일반적으로 NoSQL 데이터베이스는 관계형 데이터베이스보다 더 빠르게 응답하고 더 쉽게 확장할 수 있습니다.

RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형) 데이터베이스에는 서로 다른 장단점이 있습니다. RDBMS에서는 데이터를 유연하게 쿼리할 수 있지만, 쿼리 비용이 상대적으로 높으며 트래픽이 많은 상황에서는 확장성이 떨어집니다. NoSQL 데이터베이스에서는 몇 가지 방법으로 데이터를 효율적으로 쿼리할 수 있지만, 그 외에는 쿼리 비용이 높고 속도가 느립니다.

  관계형 데이터베이스 NoSQL 데이터베이스
데이터 모델 관계형 모델은 데이터를 행과 열로 구성된 테이블로 정규화합니다. 스키마는 테이블, 행, 열, 인덱스, 테이블 간 관계, 기타 데이터베이스 요소를 엄격하게 정의합니다. NoSQL 데이터베이스는 일반적으로 스키마를 강제 적용하지 않습니다. 파티션 키는 값, 열 세트, 반정형 JSON, XML 또는 관련 항목 속성을 포함하는 다른 문서에 일반적으로 사용됩니다.
ACID 속성 기존 RDBMS에서는 관계형 데이터베이스의 ACID 속성(원자성, 일관성, 격리성, 내구성)을 지원합니다. 원자성은 트랜잭션이 완전히 실행되거나 전혀 실행되지 않는 '모두 실행 또는 전혀 실행되지 않음'을 의미합니다. 일관성은 트랜잭션이 커밋되면 데이터가 데이터베이스 스키마를 준수해야 함을 의미합니다. 격리성은 동시에 일어나는 트랜잭션들이 각기 별도로 실행되어야 함을 의미합니다. 내구성은 예기치 못한 시스템 장애 또는 정전 시 마지막으로 알려진 상태로 복구하는 기능입니다. NoSQL 데이터베이스는 종종 수평으로 확장되는 더 유연한 데이터 모델을 위해 기존 RDBMS의 일부 ACID 속성을 절충합니다. 이러한 특성 덕분에 기존 RDBMS가 성능 병목 지점, 확장성, 운영상의 복잡성, 늘어나는 관리 업무 및 지원 비용의 복합적으로 발생하는 문제를 해결하기 어려운 구조적 문제에 직면하는 경우 NoSQL 데이터베이스가 탁월한 옵션이 됩니다.
성능 성능은 일반적으로 디스크 하위 시스템에 따라 다릅니다. 최고 성능을 달성하기 위해서는 쿼리, 인덱스 및 테이블 구조를 최적화해야 합니다. 성능은 일반적으로 기본 하드웨어 클러스터 크기, 네트워크 지연 시간 및 호출 애플리케이션의 기능입니다.
확장 가능 더 빠른 하드웨어로 스케일 업하기가 가장 쉬움. 분산 시스템을 확장하기 위해서는 관계형 테이블에 대해 추가적인 투자가 필요합니다. 지연 시간을 늘리지 않고 처리량을 높일 수 있도록 저비용 하드웨어의 분산 클러스터를 사용하여 스케일 아웃하도록 설계되었습니다.
API 데이터를 저장 및 검색하기 위한 요청은 SQL(구조화 질의 언어)을 준수하는 쿼리를 사용하여 전달됩니다. 이러한 쿼리는 RDBMS에서 파싱하여 실행합니다. 객체 기반 API를 통해 앱 개발자가 인 메모리 데이터 구조를 쉽게 저장 및 검색할 수 있습니다. 파티션 키를 사용하면 앱에서 키-값 페어, 열 세트 또는 일련의 앱 객체 및 속성을 포함하는 반정형 문서를 검색할 수 있습니다.
도구 SQL 데이터베이스는 일반적으로 데이터베이스로 구동되는 애플리케이션의 배포를 간소화하기 위해 다양한 도구 세트를 제공합니다. NoSQL 데이터베이스는 일반적으로 클러스터 관리 및 조정을 위한 도구를 제공합니다. 애플리케이션은 기본 데이터에 대한 주요 인터페이스입니다.
15

NoSQL 데이터베이스에는 열 기반, 문서, 그래프 및 인 메모리 키-값이라는 네 가지 주로 사용되는 유형이 있습니다. 일반적으로 이들 데이터베이스는 데이터가 저장되고, 액세스되고, 구조화되는 방식이 다르며 서로 다른 사용 사례 및 애플리케이션에 최적화되었습니다. 

  1. 열 기반 데이터베이스는 데이터의 행이 아니라 데이터의 열을 읽고 쓰는 데 최적화되었습니다. 데이터베이스 테이블에서는 열 기반 스토리지가 분석 쿼리 성능에 중요한 요소입니다. 전반적인 디스크 I/O 요구 사항과 디스크에서 로드해야 하는 데이터 양을 획기적으로 줄여주기 때문입니다.
  2. 문서 데이터베이스는 주로 JSON 또는 XML 형식의 문서와 같은 반정형 데이터를 저장하도록 설계되었습니다. 기존 관계형 데이터베이스와는 달리, NoSQL 문서별로 다른 스키마를 적용할 수 있으므로 좀 더 유연하게 애플리케이션 데이터를 구성 및 저장하고 선택적 값에 필요한 스토리지를 줄일 수 있습니다.
  3. 그래프 데이터베이스는 간선이라고 부르는 방향 링크와 정점을 저장합니다. 그래프 데이터베이스는 SQL 데이터베이스와 NoSQL 데이터베이스에 구축될 수 있습니다. 정점 및 간선은 각각 이들과 관련된 속성을 가집니다. 
  4. 인 메모리 키-값 스토어는 읽기 중심의 애플리케이션 워크로드(소셜 네트워킹, 게임, 미디어 공유, Q&A 포털 등) 또는 컴퓨팅 집약적 워크로드(추천 엔진 등)에 최적화된 NoSQL 데이터베이스입니다. 인 메모리 캐싱은 핵심 데이터 조각을 메모리에 저장해 액세스 지연 시간을 줄여주므로 애플리케이션 성능이 향상됩니다.
SQL
MongoDB(NoSQL) DynamoDB(NoSQL) Cassandra(NoSQL) Couchbase(NoSQL)
테이블 컬렉션 테이블 테이블 데이터 버킷
문서
항목 문서

필드 속성 필드
기본 키
ObjectId
기본 키 기본 키 문서 ID
인덱스 인덱스 보조 인덱스 인덱스
인덱스
보기 보기 글로벌 보조 인덱스 구체화된 보기 보기
중첩된 테이블 또는 객체
포함 문서
배열
배열 목록 목록 목록

쉽게 Amazon DynamoDB를 시작할 수 있습니다. 시작 안내서를 따라 클릭 몇 번으로 첫 번째 DynamoDB 테이블을 생성하십시오.

또한, 마이그레이션 모범 사례 – RDBMS에서 Amazon DynamoDB로 백서를 다운로드하여 – RDBMS에서 DynamoDB로 워크로드를 마이그레이션하는 모범 사례를 배울 수 있습니다.

Amazon DynamoDB 시작하기