카테고리 없음

aws에서 중요 data를 dynamoDB에 저장하는 이유가 뭐야

막걸리조아 2024. 5. 27. 23:15
반응형

Q. aws에서 중요 data를 dynamoDB에 저장하는 이유가 뭐야

 

A.

AWS에서 중요한 데이터를 DynamoDB에 저장하는 이유는 여러 가지 장점과 기능 때문입니다. 아래에 그 주요 이유들을 설명하겠습니다.

### DynamoDB의 장점과 기능

1. **완전 관리형 서비스**:
   - **운영 부담 감소**: 하드웨어 프로비저닝, 설정, 복제, 백업 및 복구, 소프트웨어 유지보수 등의 작업을 자동으로 처리하여 운영 부담을 줄여줍니다.

2. **고가용성 및 내구성**:
   - **멀티 AZ 복제**: 데이터는 기본적으로 여러 가용 영역(AZ)에 자동으로 복제되어 저장되므로 고가용성과 내구성이 보장됩니다.
   - **SLA**: 99.999%의 가용성을 제공하는 SLA를 보유하고 있습니다.

3. **확장성**:
   - **자동 확장**: 읽기 및 쓰기 처리량을 자동으로 확장하여 페타바이트급 규모까지 확장할 수 있습니다.
   - **탄력적인 스케일링**: 필요에 따라 자동으로 처리량을 증대하거나 감소시킵니다.

4. **성능**:
   - **일관된 성능**: 짧은 지연 시간으로 일관된 성능을 제공합니다.
   - **글로벌 테이블**: 여러 지역에 걸쳐 데이터를 복제하여 지연 시간을 최소화하고, 전 세계 사용자를 지원합니다.

5. **보안**:
   - **암호화**: 데이터는 전송 중 및 저장 중에 암호화됩니다.
   - **IAM 통합**: 세밀한 접근 제어를 위해 AWS IAM과 통합되어 있습니다.
   - **VPC 엔드포인트**: VPC 엔드포인트를 사용하여 VPC 내부에서 안전하게 데이터에 접근할 수 있습니다.

6. **유연한 데이터 모델**:
   - **스키마리스**: 스키마에 구애받지 않는 NoSQL 데이터 모델을 제공하여, 다양한 유형과 구조의 데이터를 유연하게 처리할 수 있습니다.

7. **비용 효율성**:
   - **지불 방식**: 프로비저닝된 용량 모드와 온디맨드 용량 모드를 제공하여 사용량에 따라 비용을 최적화할 수 있습니다.
   - **백업 및 복구**: 포인트 인 타임 복구(PITR) 및 온디맨드 백업 기능을 통해 데이터를 안전하게 보호할 수 있습니다.

8. **통합 기능**:
   - **AWS 서비스 통합**: S3, Lambda, Kinesis, SNS, SQS 등 다양한 AWS 서비스와 쉽게 통합하여 자동화 및 확장된 기능을 제공합니다.

### DynamoDB의 사용 사례
1. **실시간 분석 및 모니터링**:
   - IoT 기기, 애플리케이션 로그, 사용자 활동 데이터를 실시간으로 수집하고 분석.

2. **세션 관리**:
   - 사용자 세션 데이터를 효율적으로 저장하고 관리.

3. **전자상거래 및 주문 처리**:
   - 온라인 주문 및 거래 데이터를 고성능으로 처리.

4. **게임 리더보드 및 상태 관리**:
   - 게임 상태 및 리더보드 데이터를 초저지연으로 관리.

5. **글로벌 애플리케이션**:
   - 글로벌 테이블을 통해 여러 지역에 걸쳐 분산된 사용자 데이터 관리.

### 요약
AWS에서 중요한 데이터를 DynamoDB에 저장하는 이유는 이 서비스가 제공하는 **고가용성, 확장성, 성능, 보안 및 운영 효율성** 때문입니다. 특히, 완전 관리형 서비스로서 모든 규모의 기업이 쉽게 채택하여 데이터 관리와 비즈니스 요구에 맞는 다양한 사용 사례를 구현할 수 있습니다.

 

 

 

DynamoDB 아키텍처 다이어그램

+-----------------------------------------------------------+
|                Amazon DynamoDB                             |
|                                                           |
|  +-------------------+          +-------------------+     |
|  | Tables            |          | Tables            |     |
|  | - Table 1         |          | - Table 2         |     |
|  |   - Partition Key |          |   - Partition Key |     |
|  |   - Sort Key      |          |   - Sort Key      |     |
|  |   - Attributes    |          |   - Attributes    |     |
|  +-------------------+          +-------------------+     |
|                                                           |
|                                                           |
|  +-------------------+          +-------------------+     |
|  | Indexes           |          | Indexes           |     |
|  | - Global Secondary|          | - Local Secondary|     |
|  | - Local Secondary |          | - Global Secondary|     |
|  +-------------------+          +-------------------+     |
|                                                           |
|                                                           |
|  +-------------------+          +-------------------+     |
|  | Streams           |          | Backups           |     |
|  +-------------------+          +-------------------+     |
|                                                           |
|                                                           |
|  +-----------------------------------------------------+  |
|  | Features (Available for Tables and Indexes)         |  |
|  | - Provisioned/On-Demand Capacity                    |  |
|  | - Point-In-Time Recovery & Continuous Backups       |  |
|  | - Encryption (At Rest & In Transit)                 |  |
|  | - Global Tables                                     |  |
|  | - Time-to-Live (TTL)                                |  |
|  | - Transactions                                      |  |
|  | - Conditional Writes                                |  |
|  | - Streams                                           |  |
|  | - Auto Scaling                                      |  |
|  | - IAM Access Control                                |  |
|  +-----------------------------------------------------+  |
|                                                           |
+-----------------------------------------------------------+

주요 개념 설명

  • Tables (테이블):
    • DynamoDB에서 기본적으로 데이터를 저장하는 단위.
    • 각 테이블에는 고유한 Partition Key와 선택적인 Sort Key가 있음.
  • Attributes (속성):
    • 테이블의 각 항목이 갖는 데이터 필드.
  • Indexes (인덱스):
    • Global Secondary Index (GSI):
      • 테이블과 다른 파티션 키 또는 정렬 키를 사용하여 조회 성능을 높임.
    • Local Secondary Index (LSI):
      • 동일한 파티션 키를 사용하지만 다른 정렬 키를 사용함.
  • Streams (스트림):
    • 테이블에 대한 변경 사항을 실시간으로 캡처하고 다른 AWS 서비스와 통합할 수 있는 기능.
  • Backups (백업):
    • 온디맨드 백업 및 포인트 인 타임 복구(PITR)를 통해 데이터 보호.
  • Features (기능):
    • Provisioned/On-Demand Capacity:
      • 프로비저닝된 용량 또는 온디맨드 용량 모드를 선택하여 사용량에 맞게 확장 가능.
    • Point-In-Time Recovery (PITR):
      • 연속적인 백업을 통해 특정 시점으로 복구.
    • Encryption:
      • 저장 중 및 전송 중 데이터 암호화를 지원.
    • Global Tables:
      • 여러 AWS 리전에 걸쳐 데이터 동기화를 지원.
    • Time-to-Live (TTL):
      • 설정한 시간 이후에 자동으로 항목을 삭제.
    • Transactions:
      • 다중 항목을 원자적으로 처리하는 트랜잭션 기능.
    • Conditional Writes:
      • 조건부로 쓰기 작업을 수행.
    • Auto Scaling:
      • 용량을 자동으로 확장/축소.
    • IAM Access Control:
      • 세밀한 권한 제어를 위해 IAM 통합.
반응형