Các đặc trưng của Amazon DynamoDB
Giới thiệu về DynamoDB
DynamoDB là dịch vụ cơ sở dữ liệu NoSQL phân tán, phi máy chủ, được quản lý toàn phần, có hiệu năng ở mức mili giây một chữ số ở mọi quy mô. Dịch vụ này không yêu cầu quản lý hạ tầng, cho phép bảo trì không có thời gian ngừng hoạt động và không có khoảng thời gian bảo trì.
Các nhà phát triển có thể sử dụng DynamoDB để xây dựng các ứng dụng phi máy chủ, có thể bắt đầu với quy mô nhỏ và điều chỉnh quy mô ra toàn cầu. DynamoDB điều chỉnh quy mô để hỗ trợ các bảng có gần như mọi kích thước. Độ sẵn sàng, độ bền và khả năng chịu lỗi được tích hợp sẵn và không thể tắt được, vậy nên bạn không cần phải thiết kế các chức năng này cho ứng dụng của mình.
DynamoDB được thiết kế để chạy các ứng dụng hiệu năng cao trên quy mô internet. Đó là các ứng dụng sẽ khiến cơ sở dữ liệu quan hệ truyền thống phải hoạt động quá mức. Dịch vụ này hỗ trợ mô hình dữ liệu khóa-giá trị và tài liệu. DynamoDB có lược đồ linh hoạt nên có thể dễ dàng thích ứng khi yêu cầu kinh doanh của bạn thay đổi, mà không tạo gánh nặng phải xác định lại lược đồ bảng như trong các cơ sở dữ liệu quan hệ.
Với hơn mười năm đầu tư đổi mới tiên phong, DynamoDB cung cấp khả năng điều chỉnh quy mô vô hạn với hiệu năng ổn định ở mức vài mili giây và độ sẵn sàng lên đến 99,999%.
Hiệu năng và khả năng điều chỉnh quy mô
Mở tất cảVới DynamoDB, bạn không cần phải cung cấp, vá hoặc quản lý máy chủ, cũng như không cần phải cài đặt, duy trì hoặc vận hành phần mềm. DynamoDB không có phiên bản (chính, phụ hoặc bản vá), không có cửa sổ bảo trì, và cung cấp bảo trì không gây gián đoạn dịch vụ. Định giá theo yêu cầu của Amazon DynamoDB cung cấp định giá theo mức sử dụng, có quy mô về không và tự động điều chỉnh quy mô bảng để điều chỉnh dung lượng và duy trì hiệu năng mà không cần quản trị.
Tương tự như tất cả các hệ thống cơ sở dữ liệu khác, bạn bắt đầu bằng cách tạo một bảng là một bộ sưu tập các mục. Với DynamoDB, mỗi mục trong bảng có khóa chính riêng. Nhiều ứng dụng cũng có thể được hưởng lợi từ việc có một hoặc nhiều khóa phụ để tìm kiếm dữ liệu hiệu quả hơn bằng cách sử dụng các thuộc tính khác. DynamoDB cung cấp tùy chọn tạo cả chỉ mục phụ toàn cầu và cục bộ, cho phép bạn truy vấn dữ liệu trong bảng bằng khóa phụ hoặc khóa thay thế.
Các chỉ mục phụ toàn cầu còn được gọi là chỉ mục rải rác. Ngoài việc cung cấp cho bạn sự linh hoạt tối đa về cách truy cập dữ liệu của mình, bạn có thể cung cấp thông lượng ghi thấp hơn với hiệu năng tuyệt vời với chi phí thấp hơn.
Bảo mật
Mở tất cảTheo mặc định, DynamoDB mã hóa mọi dữ liệu đang được lưu trữ của khách hàng. Mã hóa ở trạng thái lưu trữ giúp tăng cường bảo mật dữ liệu của bạn bằng cách sử dụng các khóa mã hóa được lưu trữ trong Dịch vụ quản lý khóa của AWS (AWS KMS). Khi thêm SDK mã hóa cơ sở dữ liệu AWS, bạn có thể thực hiện mã hóa cấp thuộc tính để thực thi thêm hoạt động kiểm soát quyền truy cập ở mức độ chi tiết đối với dữ liệu trong bảng. DynamoDB giúp bạn dựng các ứng dụng yêu cầu tính bảo mật cao, qua đó đáp ứng mức tuân thủ bảo mật nghiêm ngặt và các yêu cầu theo quy định.
Khóa mã hóa cung cấp một lớp bảo vệ dữ liệu bổ sung bằng cách bảo mật dữ liệu của bạn khỏi truy cập trái phép vào bộ nhớ bên dưới. Bạn có thể chỉ định liệu DynamoDB có nên sử dụng khóa do AWS sở hữu (loại mã hóa mặc định), khóa được AWS quản lý hay khóa do khách hàng quản lý để mã hóa dữ liệu người dùng hay không. Bạn không phải trả thêm phí cho tính năng mã hóa mặc định bằng cách sử dụng các Khóa của AWS KMS.
DynamoDB sử dụng Quản lý danh tính và truy cập (IAM) trong AWS để xác thực và cấp quyền truy cập tài nguyên. Bạn có thể chỉ định chính sách IAM, chính sách dựa trên tài nguyên, xác định kiểm soát quyền truy cập dựa trên thuộc tính (ABAC) bằng cách sử dụng thẻ trong chính sách và chỉ định các điều kiện cho phép truy cập chi tiết, hạn chế quyền truy cập đọc hoặc ghi vào các mục và thuộc tính cụ thể trong bảng, dựa trên danh tính.
DynamoDB hỗ trợ các điểm cuối cổng đám mây riêng ảo (VPC) và các điểm cuối VPC giao diện cho các kết nối trong VPC hoặc từ các trung tâm dữ liệu tại chỗ. Bạn có thể cấu hình khả năng kết nối mạng riêng từ các ứng dụng tại chỗ sang DynamoDB thông qua điểm cuối VPC giao diện được kích hoạt với AWS PrivateLink. Điều này cho phép khách hàng đơn giản hóa khả năng kết nối riêng tư với DynamoDB và duy trì sự tuân thủ.
Khả năng phục hồi
Mở tất cảTính năng phục hồi về thời điểm trước đó (PITR) giúp bảo vệ các bảng DynamoDB trước hoạt động ghi hoặc xóa do vô tình. PITR liên tục sao lưu dữ liệu bảng DynamoDB và bạn có thể phục hồi bảng đó về bất kỳ thời điểm nào trước đó trong 35 ngày trước.
PITR không sử dụng dung lượng được cung cấp và không ảnh hưởng đến hiệu năng hoặc độ sẵn sàng của các ứng dụng của bạn. Kích hoạt PITR hoặc bắt đầu các hoạt động sao lưu và khôi phục chỉ đơn giản như một bước trong Bảng điều khiển quản lý AWS hoặc một lệnh gọi API duy nhất.
Tính năng sao lưu và khôi phục theo yêu cầu cho phép bạn tạo các bản sao lưu hoàn chỉnh cho dữ liệu của các bảng DynamoDB để lưu trữ dữ liệu, giúp bạn đáp ứng các yêu cầu theo quy định của công ty và chính phủ. Bạn có thể sao lưu các bảng từ vài megabyte đến hàng trăm terabyte dữ liệu, mà không ảnh hưởng đến hiệu năng hoặc khả năng sử dụng các ứng dụng sản xuất. Với tích hợp AWS Backup, bạn cũng có thể sao chép các bản sao lưu theo nhu cầu giữa các tài khoản và liên Khu vực, tạo gắn thẻ phân bổ chi phí cho các bản sao lưu và chuyển đổi bản sao lưu sang kho lưu trữ nguội.
Bảng toàn cầu của Amazon DynamoDB cung cấp khả năng sao chép hoạt động tích cực dữ liệu của bạn trên các Khu vực AWS mà bạn lựa chọn với độ sẵn sàng 99,999%. Bảng toàn cầu đa hoạt động, có nghĩa là bạn có thể đọc và ghi từ bất kỳ bản sao nào và các ứng dụng được phân phối trên toàn cầu của bạn có thể truy cập dữ liệu cục bộ tại các Khu vực đã chọn để có được hiệu năng đọc và ghi một phần nghìn giây.
Ngoài ra, các bảng toàn cầu sẽ tự động điều chỉnh quy mô công suất để phù hợp với khối lượng công việc đa khu vực của bạn. Bảng toàn cầu cải thiện khả năng phục hồi đa khu vực của ứng dụng của bạn và nên được coi là một phần của chiến lược liên tục trong kinh doanh của tổ chức.
DynamoDB được thiết kế cho khối lượng công việc then chốt, bao gồm hỗ trợ các giao tác mang tính nguyên tố, nhất quán, tách biệt và bền vững (ACID) cho tập hợp ứng dụng đòi hỏi logic công việc phức tạp. DynamoDB cung cấp dịch vụ hỗ trợ gốc phía máy chủ cho các giao tác, đơn giản hóa trải nghiệm của nhà phát triển khi thực hiện các thay đổi lớn nhỏ kết hợp cho nhiều mục, cả trong và ngoài bảng.
DynamoDB hỗ trợ 100 hành động cho mỗi giao dịch, cải thiện năng suất của nhà phát triển. Với khả năng hỗ trợ giao tác, nhà phát triển có thể mở rộng quy mô, hiệu năng và lợi ích của DynamoDB cho doanh nghiệp ra tập hợp khối lượng công việc then chốt rộng hơn.
Hiệu quả chi phí
Mở tất cảĐối với các bảng sử dụng chế độ công suất theo yêu cầu, DynamoDB lập tức điều chỉnh khối lượng công việc khi chúng tăng lên hoặc giảm đi cho phù hợp với bất kỳ mức lưu lượng truy cập nào đã đạt đến trước đó. Nếu mức lưu lượng truy cập của khối lượng công việc đạt giá trị đỉnh điểm mới, DynamoDB sẽ nhanh chóng điều chỉnh cho phù hợp với khối lượng công việc đó. Bạn cũng có thể tùy chọn cấu hình thông lượng đọc hoặc ghi tối đa (hoặc cả hai) cho các bảng theo nhu cầu riêng lẻ và các chỉ mục phụ liên quan, giúp dễ dàng cân bằng chi phí và hiệu năng. Bạn có thể sử dụng chế độ công suất theo yêu cầu cho cả bảng mới và bảng hiện có, đồng thời có thể tiếp tục sử dụng các API DynamoDB hiện tại mà không cần thay đổi mã.
Đối với dữ liệu được truy cập không thường xuyên, bạn có thể sử dụng lớp bảng tiêu chuẩn – IA của Amazon DynamoDB, giúp giảm đến 60% chi phí DynamoDB. Chi phí lưu trữ thấp của các bảng tiêu chuẩn – IA được thiết kế để lưu trữ lâu dài dữ liệu không được truy cập thường xuyên, chẳng hạn như bản ghi ứng dụng, dữ liệu trò chơi lịch sử, bài đăng trên phương tiện truyền thông xã hội cũ và vv. Nó có cùng tính khả dụng, độ bền và hiệu năng như bảng Amazon DynamoDB Standard, đây là tùy chọn mặc định và tiết kiệm chi phí nhất cho hầu hết các khối lượng công việc.
- Đối với khối lượng công việc không dễ dự đoán trước và bạn không chắc rằng bạn sẽ sử dụng nhiều hay không, chế độ công suất theo nhu cầu sẽ đảm nhận việc quản lý công suất giúp bạn và bạn chỉ phải chi trả cho tài nguyên mình sử dụng.
- Đối với các bảng sử dụng chế độ công suất được cung cấp, bạn phải đặt dung lượng đọc và ghi. Chế độ dung lượng được cung cấp sẽ tiết kiệm chi phí hơn khi bạn tin rằng mình chỉ định mức sử dụng công suất đó hợp lý.
DynamoDB cung cấp các chế độ công suất cho mỗi bảng: theo nhu cầu và được cung cấp sẵn.
- Nếu lưu lượng truy cập của ứng dụng tăng lên, DynamoDB sẽ tăng thông lượng cho phù hợp với khối lượng công việc.
- Nếu lưu lượng truy cập của ứng dụng giảm đi, DynamoDB sẽ giảm quy mô theo tài nguyên để bạn chi trả ít hơn cho công suất không sử dụng.
Đối với các bảng sử dụng công suất được cung cấp, DynamoDB sẽ tự động điều chỉnh quy mô thông lượng và dung lượng lưu trữ dựa trên công suất bạn đã đặt trước đó bằng cách theo dõi mức sử dụng hiệu năng của ứng dụng.
Tích hợp với các dịch vụ AWS
Mở tất cảNhập và xuất hàng loạt từ Amazon Simple Storage Service (Amazon S3) giúp bạn nhận được nhiều giá trị hơn từ dữ liệu của mình bằng cách loại bỏ nhu cầu viết mã để di chuyển, chuyển đổi và sao chép bảng DynamoDB của bạn từ ứng dụng, tài khoản hoặc khu vực này sang ứng dụng, tài khoản hoặc Khu vực khác. Nhập và xuất hàng loạt không sử dụng dung lượng đọc hoặc ghi của bảng nên bạn không cần lập kế hoạch hoặc cung cấp dung lượng bổ sung. Quá trình nhập và xuất hàng loạt được quản lý hoàn toàn bởi DynamoDB.
Nhập hàng loạt từ Amazon S3 cho phép bạn nhập dữ liệu ở mọi lần điều chỉnh quy mô, từ megabyte đến terabyte bằng các định dạng được hỗ trợ bao gồm CSV, DynamoDB JSON và Amazon Ion. Với nhập hàng loạt từ Amazon S3, khách hàng có thể tiết kiệm tới 66% so với ghi dựa trên máy khách sử dụng dung lượng được cung cấp.
Với việc xuất hàng loạt sang Amazon S3, bạn có thể xuất dữ liệu từ các bảng có bật khôi phục PITR cho bất kỳ thời điểm nào trong 35 ngày qua, với độ chi tiết mỗi giây. Sau khi xuất dữ liệu từ DynamoDB sang Amazon S3, bạn có thể sử dụng các dịch vụ AWS khác như Amazon Athena, Amazon SageMaker và nhiều dịch vụ khác để phân tích dữ liệu và trích xuất thông tin chi tiết có thể thao tác.
DynamoDB Streams là khả năng thu thập dữ liệu thay đổi. Bất cứ khi nào ứng dụng tạo, cập nhật hoặc xóa các mục trong bảng, DynamoDB Streams sẽ ghi lại chuỗi theo thứ tự thời gian của mọi thay đổi cấp độ mục trong thời gian gần như thực, lý tưởng cho các ứng dụng kiến trúc theo hướng sự kiện để sử dụng và thực hiện các thay đổi. Tất cả các thay đổi được khử trùng lặp và lưu trữ trong 24 giờ.
Các ứng dụng cũng có thể truy cập bản ghi này và xem các mục dữ liệu khi chúng xuất hiện trước và sau khi được sửa đổi gần như theo thời gian thực. DynamoDB Streams đảm bảo rằng mỗi bản ghi luồng xuất hiện chính xác một lần trong luồng và đối với mỗi mục đã sửa đổi, bản ghi luồng sẽ xuất hiện theo cùng trình tự như các sửa đổi thực tế đối với mục đó.
Luồng dữ liệu Amazon Kinesis dành cho DynamoDB nắm bắt các thay đổi ở cấp độ mục trong bảng DynamoDB của bạn để cấp quyền cho bảng điều khiển trực tiếp, tạo số liệu và phân phối dữ liệu vào các hồ dữ liệu. Luồng dữ liệu Kinesis cho phép bạn xây dựng các ứng dụng truyền trực tuyến nâng cao, chẳng hạn như tổng hợp bản ghi trong thời gian thực, phân tích doanh nghiệp trong thời gian thực và nắm bắt dữ liệu của IoT.
Thông qua Luồng dữ liệu Kinesis, bạn còn có thể dùng Firehose dữ liệu Amazon Kinesis để tự động cung cấp dữ liệu DynamoDB cho các dịch vụ AWS khác, ví dụ như Amazon S3, Dịch vụ OpenSearch của Amazon và Amazon Redshift.
Để dễ dàng theo dõi hiệu năng cơ sở dữ liệu của bạn, DynamoDB được tích hợp với Amazon Cloudwatch để thu thập và xử lý dữ liệu hiệu năng cơ sở dữ liệu thô. Bạn có thể sử dụng CloudWatch để tạo các chế độ xem và bảng điều khiển tùy chỉnh về số liệu và cảnh báo cho cơ sở dữ liệu DynamoDB của bạn. Khả năng giám sát này được cung cấp theo mặc định và miễn phí. Bạn cũng có thể tạo báo động được gửi tự động cho bạn dựa trên hiệu suất số liệu.
Thông tin chuyên sâu về đối tượng đóng góp của Amazon CloudWatch giúp bạn nhanh chóng xác định ai hoặc điều gì đang ảnh hưởng đến cơ sở dữ liệu và hiệu năng ứng dụng của bạn. Khả năng này giúp việc cô lập, chẩn đoán và khắc phục sự cố nhanh chóng trở nên dễ dàng hơn trong một sự kiện hoạt động.