Amazon DynamoDB를 사용하여 변경 데이터 캡처
많은 애플리케이션에서는 DynamoDB 테이블에 저장된 항목의 변경 내용을 해당 변경이 발생하는 시점에 캡처하는 기능을 활용할 수 있습니다. 다음은 사용 사례에 대한 몇 가지 예제입니다.
-
인기 있는 모바일 앱에서는 초당 수천 개 업데이트의 비율로 DynamoDB 테이블의 데이터를 수정합니다. 또 다른 애플리케이션에서 이러한 업데이트 사항을 캡처 후 저장하여 모바일 앱의 사용량을 거의 실시간으로 측정합니다.
-
재무 애플리케이션은 DynamoDB 테이블에서 주식 시장 데이터를 수정합니다. 병렬로 실행되는 여러 애플리케이션에서 이러한 변경 사항을 실시간으로 추적하고, 최대손실금액을 계산하고, 주가 변동에 따라 포트폴리오를 자동으로 리밸런스합니다.
-
운송 차량 및 산업용 장비의 센서에서 데이터를 DynamoDB 테이블로 전송합니다. 여러 애플리케이션에서 성능을 모니터링하고 문제가 감지되면 메시징 경고를 보내고, Machine Learning 알고리즘을 적용하여 잠재적 결함을 예측하고, 데이터를 압축하여 Amazon Simple Storage Service(Amazon S3)에 보관합니다.
-
그룹에 속한 어떤 친구가 사진을 새로 업로드하면 애플리케이션에서 그룹에 속한 모든 친구들에게 즉시 알림을 전송합니다.
-
새로운 고객이 생기면 DynamoDB 테이블에 데이터가 추가됩니다. 이러한 이벤트가 발생하면 새 고객에게 환영 이메일을 발송하는 애플리케이션이 호출됩니다.
DynamoDB는 항목 수준 변경 데이터 캡처 레코드의 스트리밍을 거의 실시간으로 지원합니다. 이러한 스트림을 소비하고 해당 내용을 바탕으로 조치를 취하는 애플리케이션을 빌드할 수 있습니다.
다음 비디오에서는 변경 데이터 캡처의 개념을 소개합니다.
변경 데이터 캡처의 스트리밍 옵션
DynamoDB는 변경 데이터 캡처를 위한 두 가지 스트리밍 모델인 DynamoDB용 Kinesis Data Streams와 DynamoDB Streams를 제공합니다.
애플리케이션에 적합한 솔루션 선택에 도움을 주기 위해 다음 표에서는 각 스트리밍 모델의 기능을 요약합니다.
속성 | DynamoDB용 Amazon Kinesis Data Streams | DynamoDB Streams |
---|---|---|
데이터 보존 | 최대 1년 | 24시간 |
Kinesis Client Library(KCL) 지원 | KCL 버전 1.X 및 2.X 지원 | KCL 버전 1.X 지원 |
소비자 수 | 샤드당 최대 5명의 동시 소비자 또는 향상된 팬아웃을 사용하는 샤드당 최대 20명의 동시 소비자 | 샤드당 최대 2명의 동시 소비자 |
처리량 할당량 | 무제한. | DynamoDB 테이블 및 AWS 리전의 처리량 할당량에 따라 다름 |
레코드 전송 모델 | GetRecords를 사용하여 HTTP를 통해 모델을 풀하고 향상된 팬아웃을 사용하도록 설정하고 Kinesis Data Streams는 SubscribeToShard를 사용하여 HTTP/2를 통해 레코드를 푸시합니다. | GetRecords를 사용하여 HTTP를 통해 모델을 가져옵니다. |
레코드 순서 지정 | 각 스트림 레코드의 타임스탬프 속성을 사용하여 DynamoDB 테이블에서 변경이 발생한 실제 순서를 식별할 수 있습니다. | DynamoDB 테이블에서 수정된 각 항목의 스트림 레코드는 항목의 실제 수정과 동일한 순서로 표시됩니다. |
중복 레코드 | 경우에 따라 중복 레코드가 스트림에 표시될 수 있습니다. | 중복 레코드가 스트림에 표시되지 않습니다. |
스트림 처리 옵션 | AWS Lambda, Amazon Managed Service for Apache Flink, Kinesis Data Firehose 또는 AWS Glue 스트리밍 ETL을 사용하여 스트림 레코드를 처리합니다. | AWS Lambda 또는 DynamoDB Streams Kinesis 어댑터를 사용하여 스트림 레코드를 처리합니다. |
내구성 수준 | 중단 없이 자동 장애 조치를 제공하는 가용 영역. | 중단 없이 자동 장애 조치를 제공하는 가용 영역. |
동일한 DynamoDB 테이블에서 두 스트리밍 모델을 모두 활성화할 수 있습니다.
다음 비디오에 두 옵션의 차이점이 자세히 나와 있습니다.