Amazon DynamoDB는 키 값과 문서 데이터 모델을 지원하는 NoSQL 데이터베이스의 일종입니다. 개발자는 DynamoDB를 사용해 최신 서버리스 애플리케이션을 구축하여 우선 작은 규모에서 시작했다가 전역적으로 확장하여 초당 페타바이트 단위의 데이터와 수천만 건의 읽기 및 쓰기 요청을 지원하도록 할 수 있습니다. DynamoDB는 기존의 관계형 데이터베이스에서는 역부족인 인터넷 규모의 고성능 애플리케이션을 실행할 수 있도록 설계되었습니다.
새로운 소식:
- NoSQL Workbench에서 사용 가능한 샘플 데이터 모델 템플릿 및 데이터 세트를 사용하여 DynamoDB에서 데이터 스키마와 테이블을 생성하세요.
- 이제 NoSQL Workbench는 더 빠르게 시작할 수 있도록 로컬 DynamoDB 설계 및 개발 환경을 설정하는 데 도움을 주기 위해 DynamoDB Local과 함께 번들로 제공됩니다.
- 코드를 작성하거나 추가 인프라를 관리하지 않고 Amazon S3에서 새로운 DynamoDB 테이블로 직접 데이터를 가져옵니다.
- AWS Glue가 DynamoDB를 소스로 지원하여 거의 실시간에 가까운 속도로 여러 데이터베이스에서 데이터를 지속적으로 결합하고 복제합니다.
- SQL 호환 쿼리 언어인 PartiQL을 사용하여 DynamoDB에서 테이블 데이터를 쿼리, 삽입, 업데이트 및 삭제합니다.
- DynamoDB 테이블에서 항목 수준 변경 사항을 캡처하려면 Amazon Kinesis Data Streams를 사용하세요.
- DynamoDB 테이블을 전보다 더 빨리 복원할 수 있습니다.
- 이제 AWS 요금 계산기에서 DynamoDB를 지원합니다.
- DynamoDB에서 Amazon Simple Storage Service(Amazon S3)로 데이터를 내보낸 다음, Amazon Athena와 같은 다른 AWS 서비스를 이용해 데이터를 분석하고 조치 가능한 인사이트를 추출할 수 있습니다.
대규모 성능
DynamoDB는 수평 조정 확장을 통해 모든 크기의 테이블을 지원하는 키 값과 도규먼트 데이터베이스입니다. DynamoDB는 초당 천만 개 이상의 읽기 및 쓰기 요청이 있는 테이블과 페타바이트의 데이터 스토리지로 하루에 10조 개 이상의 요청으로 확장됩니다.
키-값 및 문서 데이터 모델
DynamoDB는 키-값과 문서 데이터 모델을 모두 지원합니다. 이와 같이 DynamoDB는 유연한 스키마를 가지므로 어느 시점에서든 각 행은 개수와 상관없이 열을 포함할 수 있습니다. 따라서 관계형 데이터베이스에서처럼 테이블 스키마를 재정의할 필요 없이 비즈니스 요구사항이 변경되면 테이블을 쉽게 조정할 수 있습니다.
DynamoDB Accelerator를 사용하여 지연 시간을 마이크로초 수준으로 최소화
전역 테이블을 사용하여 전역 복제 자동화
DynamoDB 전역 테이블은 선택한 AWS 리전에서 데이터를 자동으로 복제하고, 워크로드를 수용하기 위해 용량을 자동으로 조정합니다. 전역적으로 배포된 애플리케이션은 전역 테이블을 사용하여 선택한 리전에서 로컬로 데이터를 액세스할 수 있으므로 10밀리초 이내의 읽기 및 쓰기 성능을 달성할 수 있습니다.
Kinesis Data Streams for DynamoDB로 고급 스트리밍 애플리케이션 개발
Amazon Kinesis Data Streams for DynamoDB는 DynamoDB 테이블의 항목 수준 변경 사항을 Kinesis 데이터 스트림으로 캡처합니다. 이 기능을 이용하면 실시간 로그 집계, 실시간 비즈니스 분석 및 IoT 데이터 캡처와 같은 고급 스트리밍 애플리케이션을 구축할 수 있습니다. Kinesis Data Streams를 통해 Amazon Kinesis Data Firehose를 이용하여 DynamoDB 데이터를 다른 AWS 서비스에 자동으로 전달할 수도 있습니다.
서버리스
DynamoDB를 사용하면, 서버를 프로비저닝하거나 패치를 적용하거나 관리할 필요가 없으며, 소프트웨어를 설치하거나 관리하거나 운영할 필요도 없습니다. DynamoDB는 용량에 맞게 테이블을 자동으로 조정하므로 별도로 관리하지 않아도 성능을 유지합니다. 가용성과 내결함성을 지원하는 기능이 내장되어 있어서 이러한 기능을 위해 애플리케이션을 설계할 필요가 없습니다.
읽기/쓰기 용량 모드
DynamoDB는 각 테이블에 대해 온디맨드와 프로비저닝의 용량 모드를 제공합니다. 사용률이 높을지 확신할 수 없어서 예측이 어려운 워크로드의 경우, 온디맨드 용량 모드를 사용하면 용량을 관리하고 사용량에 대해서만 비용을 지불할 수 있습니다. 프로비저닝 용량 모드를 사용하는 테이블에는 읽기 및 쓰기 용량을 설정해야 합니다. 지정한 프로비저닝 용량을 충분히 사용할 것으로 확신할 경우에는 프로비저닝 용량 모드가 더 비용 효율적입니다.
온디맨드 모드
온디맨드 용량 모드를 사용하는 테이블의 경우, DynamoDB는 워크로드가 이전에 도달했던 트래픽 수준으로 증가하거나 감소하면서 즉시 워크로드를 수용합니다. 워크로드 트래픽 수준이 새로운 피크를 기록할 경우에는 DynamoDB가 워크로드를 수용하기 위해 신속하게 조정을 수행합니다. 새로운 테이블과 기존 테이블에 모두 온디맨드 용량 모드를 사용할 수 있으며, 코드를 변경하지 않고 기존 DynamoDB API를 계속 사용할 수 있습니다.
Auto Scaling
프로비저닝 용량을 사용하는 테이블의 경우에는 DynamoDB가 애플리케이션의 성능 사용량을 모니터링하여 이전에 설정한 용량을 기반으로 처리량과 스토리지를 자동으로 조정합니다. 애플리케이션 트래픽이 증가할 경우 DynamoDB는 처리량을 늘려 작업 부하를 수용합니다. 애플리케이션 트래픽이 감소할 경우에는 DynamoDB가 축소 조정하므로 사용하지 않은 용량에 대해 요금을 절약할 수 있습니다.
트리거를 사용한 변경 추적
DynamoDB는 AWS Lambda와 통합되어 트리거를 제공합니다. 트리거를 사용하면 DynamoDB 테이블에서 항목 수준 변경 사항이 감지될 때 사용자 지정 함수를 자동으로 실행할 수 있습니다. 트리거를 사용하면 DynamoDB 테이블의 데이터 수정에 응답하는 애플리케이션을 구축할 수 있습니다. Lambda 함수는 알림 보내기, 워크플로 시작과 같이 사용자가 지정하는 작업을 실행할 수 있습니다.
엔터프라이즈에 사용 가능
DynamoDB는 복잡한 비즈니스 로직이 요구되는 광범위한 애플리케이션에 대해 원자성, 일관성, 격리 및 내구성(ACID) 트랜잭션을 지원하는 등, 미션 크리티컬 워크로드를 위한 기능이 내장되어 있습니다. DynamoDB는 암호화를 통해 데이터를 보호하고, 서비스 수준 계약을 통해 지속적으로 데이터를 백업하여 신뢰성을 보장합니다.
ACID 트랜잭션
DynamoDB는 트랜잭션에 대해 네이티브 서버 측 지원을 제공하므로, 개발자가 테이블 내에서 그리고 전체 테이블에 걸쳐 모두 변경하거나 전혀 변경하지 않고 간편하게 조정할 수 있습니다. 개발자는 트랜잭션 지원을 통해 DynamoDB의 규모, 성능 및 엔터프라이즈 이점을 광범위한 미션 크리티컬 워크로드로 확장할 수 있습니다.
저장 중 암호화
DynamoDB는 저장된 모든 고객 데이터를 기본적으로 암호화합니다. 저장 데이터 암호화 기능은 AWS Key Management Service(AWS KMS)에 저장된 암호화 키를 사용하여 데이터 보안을 강화합니다. 저장 시 암호화를 사용하면 엄격한 암호화 규정 준수 및 규제 요구 사항이 필요한, 보안에 민감한 애플리케이션을 구축할 수 있습니다. AWS에서 소유하는 KMS 키를 사용한 기본 암호화는 추가 비용 없이 제공됩니다.
특정 시점으로 복구
특정 시점으로 복구(PITR) 기능을 사용하면 실수로 쓰거나 삭제하지 못하게 하여 DynamoDB 테이블을 보호할 수 있습니다. PITR은 DynamoDB 테이블 데이터를 지속적으로 백업하므로, 이전 35일 동안 두 번째 시점까지 테이블을 복원할 수 있습니다. AWS Management Console에서 클릭 한 번 또는 API 호출 한 번으로 PITR을 활성화하거나 백업 및 복원 작업을 시작할 수 있습니다.
온디맨드 백업 및 복원
온디맨드 백업 및 복원을 통해 DynamoDB 테이블의 전체 데이터 백업을 만들고 이를 아카이브해두면 기업은 물론 정부의 규제 요건을 준수하는 데도 도움이 됩니다. 프로덕션 애플리케이션의 성능 또는 가용성에 영향을 주지 않고 몇 메가바이트에서 수백 테라바이트에 이르는 테이블 데이터를 백업할 수 있습니다.