aws에서 중요 data를 dynamoDB에 저장하는 이유가 뭐야
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):
- 동일한 파티션 키를 사용하지만 다른 정렬 키를 사용함.
- Global Secondary Index (GSI):
- 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 통합.
- Provisioned/On-Demand Capacity: