Những điều cơ bản về DocumentDB

3 min read

Amazon DocumentDB (với khả năng tương thích MongoDB) là cơ sở dữ liệu tài liệu JSON gốc được quản lý đầy đủ, giúp vận hành khối lượng công việc tài liệu quan trọng ở hầu hết mọi quy mô mà không cần quản lý cơ sở hạ tầng một cách dễ dàng và tiết kiệm chi phí. Amazon DocumentDB đơn giản hóa kiến trúc của bạn bằng cách cung cấp các biện pháp bảo mật tích hợp sẵn tốt nhất, sao lưu liên tục và tích hợp gốc với các dịch vụ AWS khác. Bạn có thể cải thiện các ứng dụng của mình với các chức năng trí tuệ nhân tạo (AI) tạo sinh và máy học (ML) bằng cách sử dụng tìm kiếm véc-tơ dành cho Amazon DocumentDB và tích hợp với Amazon SageMaker Canvas.

Giới thiệu chung

  • Một dạng MongoDB
    • JSON
    • Tương thích với các MongoDB app, drivers, tools
  • Hiệu năng cao, hỗ trợ scalability (cả storage và compute) và high availability
  • Hỗ trợ flexible index, analytics, ad-hoc query
  • Tối đa 15 read replicas (Multi AZs)
  • Storage
    • Auto scaling với interval là 10GB: từ 10Gb tới 64TB
    • Chịu lỗi và tự động sửa chữa
  • Backup: hỗ trợ backup tự động (increment) và PITR

So sánh DocumentDB với các dạng DB khác

  • DocumentDB và Relational DB
  • Một số ưu điểm của DocumentDB
    • Lưu thẳng giá trị được trả về từ API
    • Model, data types rất flexible
    • Dễ dàng thêm/xoá indexes
    • Hỗ trợ analytics workload hoặc các workload phức tạp
  • Khá tương đồng với DynamoDB, NHƯNG DynamoDB yêu cầu define structure ngay từ đầu, còn DocumentDB thì không

Cấu trúc

  • Tương tự như Aurora
  • Sử dụng mô hình quorum
    • 6 copies được chia đều ra 3 AZs ⇒ Rất khó để mất dữ liệu
    • Storage được chia thành 100 volumes
  • Share chung storage giữa computes node (master) và read replicas ⇒ KHÔNG cần replicate dữ liệu
  • Độ trễ giữa master và read replicas khoảng 10ms
  • Gồm 2 tầng là computestorage, sử dụng cơ chế incremental log
  • Data được backup liên tục về S3
  • Nên sử dụng cluster endpointreader endpoint

Backup và restore

  • Hỗ trợ backup tự động
  • Retention tối đa 35 ngày
  • RPO = 5 mins
  • Backup đầu là full backup, các backup sau là increment
  • Hỗ trợ manually snapshot
  • Có thể restore một snapshot thành một cluster mới (hỗ trợ từ unencrypted thành encrypted)
  • Khi restore một encrpyted snapshot ⇒ cần access tới KMS key
  • Có thể share manual snapshot
    • Có thể share cho các account khác những cần phải cùng region
    • Tương tự như RDS, snapshot KHÔNG được mã hoá bằng default KMS key

Scaling

  • KHÔNG hỗ trợ sharding
  • Scale ngang – add/remove thêm các read replica
  • Scale dọc
  • Storage: từ 10GB tới 64TB (hoàn toàn tự động)

Security

  • Sử dụng IAM để giới hạn các quyền thay đổi đến DocumentDB
  • Hỗ trợ SCRAM (Salted Challenge Response Authentication Mechanism) và RBAC (role-based access control)
  • VPC:
  • Encryption
    • At rest: sử dụng KMS, sẽ được apply cho data, indexes, logs, backups, snapshots
    • In transit : sử dụng TLS

Pricing

  • On-demand instances – trả tiền mỗi giây mà instance chạy, tối thiểu là 10 mins
  • IOPS – tính tiền theo mỗi triệu requests
    • Read – 8KB
    • Write – 4KB
  • DB storage, backups, data transfer
  • Instance sẽ TỰ ĐỘNG bật lại sau 7 ngày bị stopped

Monitoring

  • Các API calls: sử dụng CloudTrail
  • Một số metrics trong CloudWatch
    • CPU và RAM utilization
    • IOPS
    • DB connections
    • Storage
    • Network traffic

Các loại logs

  • Profiler logs (performance logs)
    • Giúp tìm ra các query chậm
    • Để bật cần chỉnh parameter groupenable log export trong setting của instance
      • profiler
      • profiler_threshold_ms
      • profiler_sampling_rate
  • Audit logs
    • Logs của tất cả các actions: thay đổi data, login……
    • Ở dạng JSON
    • Để bật cần chỉnh parameter group(audit_logs=enabled) và enable log export trong setting của instance

Avatar photo

Unity IAP: Triển khai Mua Hàng Consumable

Giới Thiệu Việc tích hợp tính năng mua hàng trong ứng dụng Unity là không thể tránh khỏi. Mua hàng trong ứng dụng có...
Avatar photo Tam Canh Le Chi
6 min read

Leave a Reply

Your email address will not be published. Required fields are marked *