- Tác giả

- Name
- Nguyễn Đức Xinh
- Ngày xuất bản
- Ngày xuất bản
AWS DynamoDB là gì? Hướng dẫn toàn tập về cơ sở dữ liệu NoSQL trên AWS
🔹 Định nghĩa
Amazon DynamoDB là một dịch vụ cơ sở dữ liệu NoSQL được quản lý hoàn toàn (fully managed) của AWS, được thiết kế để cung cấp hiệu năng cao, độ trễ thấp, và khả năng mở rộng tự động để phục vụ các ứng dụng quy mô lớn.
DynamoDB cho phép lưu trữ và truy vấn dữ liệu dạng key-value và document, đồng thời hỗ trợ serverless architecture – nghĩa là bạn không cần quản lý máy chủ, cluster hay backup thủ công.
⚙️ Các tính năng chính
-
Hiệu suất cao & độ trễ thấp
Truy vấn chỉ mất vài mili-giây, ổn định ở mọi quy mô dữ liệu. -
Mở rộng tự động (Auto Scaling)
DynamoDB tự động điều chỉnh công suất đọc/ghi để đáp ứng lưu lượng truy cập biến động. -
Serverless & Fully Managed
Không cần quản trị cơ sở dữ liệu, backup, patching hay replication. -
Tích hợp với các dịch vụ AWS khác
Như Lambda, Kinesis, S3, Glue, và Athena. -
DynamoDB Streams
Cho phép xử lý sự kiện real-time khi có thay đổi dữ liệu (CDC – Change Data Capture). -
Global Tables
Hỗ trợ replication đa vùng (multi-region) để xây dựng hệ thống multi-region active-active.
🔍 Cách hoạt động
DynamoDB lưu dữ liệu trong bảng (Table), mỗi bảng bao gồm:
- Primary Key: gồm Partition Key hoặc (Partition Key + Sort Key)
- Item: tương đương một record.
- Attributes: các cặp key-value trong mỗi item.
Ví dụ:
| userId | name | age | |
|---|---|---|---|
| 001 | An | an@example.com | 27 |
| 002 | Linh | linh@example.com | 30 |
💡 DynamoDB có thể làm được gì?
- Lưu trữ dữ liệu real-time cho ứng dụng web, mobile, IoT.
- Quản lý user session, profile, hoặc cart trong hệ thống e-commerce.
- Làm data store cho microservices.
- Kết hợp với AWS Lambda để tạo ứng dụng serverless hoàn toàn.
- Lưu event logs hoặc dữ liệu từ cảm biến IoT.
🧭 Các trường hợp sử dụng
| Trường hợp sử dụng | Mô tả |
|---|---|
| E-commerce Cart | Lưu dữ liệu giỏ hàng cho từng người dùng. |
| Gaming Leaderboard | Ghi nhận điểm số và xếp hạng real-time. |
| IoT Data Storage | Lưu trữ dữ liệu cảm biến khổng lồ với tốc độ cao. |
| Session Store | Quản lý trạng thái người dùng đăng nhập. |
🔄 So sánh AWS DynamoDB với các dịch vụ tương tự
| Dịch vụ | Kiểu DB | Điểm khác biệt chính |
|---|---|---|
| Amazon RDS | Quan hệ (SQL) | Cần schema cố định, hỗ trợ truy vấn SQL phức tạp. |
| Amazon Aurora | Quan hệ (SQL) | Tối ưu cho OLTP và high availability. |
| Amazon DocumentDB | Document (MongoDB compatible) | Hỗ trợ query phức tạp hơn, nhưng hiệu năng thấp hơn DynamoDB. |
| ElastiCache (Redis) | In-memory cache | Dùng cho tốc độ truy xuất cực nhanh, không phải lưu trữ chính. |
🧩 Best Practices
-
Thiết kế khóa cẩn thận
Chọn Partition Key giúp phân bố dữ liệu đều giữa các node. -
Sử dụng TTL (Time To Live)
Tự động xóa dữ liệu không còn cần thiết để giảm chi phí. -
Bật Auto Scaling
Giúp DynamoDB tự điều chỉnh công suất dựa theo nhu cầu thực tế. -
Tận dụng DAX (DynamoDB Accelerator)
Giảm độ trễ truy vấn xuống micro-giây bằng caching in-memory. -
Theo dõi qua CloudWatch
Giám sát ReadCapacityUnits, WriteCapacityUnits, và ThrottledRequests.
🧠 Ví dụ thực tế
Ví dụ: Lưu thông tin người dùng bằng DynamoDB (Python + Boto3)
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Users')
def add_user(user_id, name, email):
response = table.put_item(
Item={
'userId': user_id,
'name': name,
'email': email
}
)
return response
Ví dụ: Đọc dữ liệu
def get_user(user_id):
response = table.get_item(Key={'userId': user_id})
return response.get('Item')
🧾 Kết luận
AWS DynamoDB là giải pháp cơ sở dữ liệu NoSQL mạnh mẽ, phù hợp với ứng dụng có yêu cầu hiệu suất cao, độ trễ thấp, và khả năng mở rộng linh hoạt.
Với mô hình serverless, hỗ trợ replication toàn cầu và tích hợp sâu với các dịch vụ AWS khác, DynamoDB là lựa chọn hàng đầu cho các hệ thống modern cloud-native applications.
