Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
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-valuedocument, đồ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

  1. 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.

  2. 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.

  3. Serverless & Fully Managed
    Không cần quản trị cơ sở dữ liệu, backup, patching hay replication.

  4. Tích hợp với các dịch vụ AWS khác
    Như Lambda, Kinesis, S3, Glue, và Athena.

  5. DynamoDB Streams
    Cho phép xử lý sự kiện real-time khi có thay đổi dữ liệu (CDC – Change Data Capture).

  6. 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 email 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

  1. 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.

  2. 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í.

  3. 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ế.

  4. Tận dụng DAX (DynamoDB Accelerator)
    Giảm độ trễ truy vấn xuống micro-giây bằng caching in-memory.

  5. 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.