Thông tin chung

Câu hỏi: Amazon Kinesis Data Streams là gì?

Với Amazon Kinesis Data Streams, bạn có thể xây dựng các ứng dụng tùy chỉnh để xử lý hoặc phân tích luồng dữ liệu nhằm đáp ứng các nhu cầu chuyên dụng. Bạn có thể thêm nhiều loại dữ liệu khác nhau chẳng hạn như luồng nhấp chuột, nhật ký ứng dụng và mạng xã hội vào luồng dữ liệu Kinesis từ hàng trăm nghìn nguồn. Trong vài giây, dữ liệu sẽ sẵn sàng để các ứng dụng của bạn đọc và xử lý từ luồng.

Câu hỏi: Amazon Kinesis Data Streams thay tôi quản lý những gì?

Amazon Kinesis Data Streams quản lý cơ sở hạ tầng, lưu trữ, kết nối mạng và cấu hình cần thiết để truyền phát dữ liệu ở cấp độ thông lượng dữ liệu của bạn. Bạn không cần phải lo lắng về việc cung cấp, triển khai hay bảo trì liên tục phần cứng, phần mềm hoặc các dịch vụ khác cho luồng dữ liệu. Ngoài ra, Kinesis Data Streams còn sao chép dữ liệu đồng bộ trên ba Vùng sẵn sàng, nhờ đó mang đến độ sẵn sàng và độ bền dữ liệu cao. Theo mặc định, Kinesis Data Streams sẽ tự động thay đổi quy mô dung lượng, giúp bạn giải phóng dung lượng cung cấp và quản lý. Bạn có thể chọn chế độ được cung cấp nếu muốn tự mình cung cấp và quản lý thông lượng.

Câu hỏi: Amazon Kinesis Data Streams giúp tôi làm những gì?

Kinesis Data Streams hữu ích cho việc di chuyển nhanh dữ liệu từ nguồn tạo dữ liệu rồi xử lý dữ liệu liên tục, bất kể là để chuyển đổi dữ liệu trước khi phát tới kho dữ liệu, chạy các số liệu và phân tích trong thời gian thực hoặc rút ra các luồng dữ liệu phức tạp hơn để xử lý thêm.

Sau đây là các trường hợp điển hình để sử dụng Kinesis Data Streams:

Thu thập nguồn cấp dữ liệu và nhật ký nhanh hơn: Thay vì phải chờ đợi để đủ lô dữ liệu, bạn có thể để các nguồn tạo dữ liệu đẩy dữ liệu tới luồng dữ liệu Kinesis ngay khi dữ liệu được tạo ra, nhờ đó tránh mất dữ liệu khi xảy ra lỗi tại nguồn tạo dữ liệu. Ví dụ: nhật ký hệ thống và ứng dụng có thể liên tục được thêm vào luồng dữ liệu và sẵn sàng để xử lý trong vòng vài giây.

Số liệu và báo cáo trong thời gian thực: Bạn có thể trích xuất số liệu và tạo báo cáo từ luồng dữ liệu Kinesis trong thời gian thực. Ví dụ: ứng dụng Amazon Kinesis có thể xử lý số liệu và báo cáo tới hệ thống cũng như nhật ký ứng dụng khi dữ liệu đang truyền phát vào, thay vì phải đợi nhận các lô dữ liệu.

Phân tích dữ liệu trong thời gian thực: Với Kinesis Data Streams, bạn có thể chạy phân tích dữ liệu truyền phát trong thời gian thực. Ví dụ: bạn có thể thêm các luồng nhấp chuột vào luồng dữ liệu Kinesis và để ứng dụng Kinesis chạy phân tích trong thời gian thực, cho phép bạn thu được thông tin chuyên sâu từ dữ liệu chỉ trong vài phút thay vì hàng giờ hoặc hàng ngày.

Thu thập dữ liệu nhật ký và sự kiện: Thu thập dữ liệu nhật ký và sự kiện từ các nguồn như máy chủ, máy tính trạm và thiết bị di động. Sau đó, bạn có thể xây dựng các ứng dụng bằng Amazon Lambda hoặc Kinesis Data Analytics để liên tục xử lý dữ liệu, tạo thông số đo lường, cấp nguồn cho trang thông tin trực tiếp và gửi dữ liệu tổng hợp vào các cửa hàng như Amazon Simple Storage Service (S3).

Cấp quyền cho các ứng dụng theo định hướng sự kiện: Nhanh chóng ghép với AWS Lambda để phản hồi hoặc điều chỉnh các sự kiện xảy ra ngay lập tức trong các ứng dụng theo định hướng sự kiện trong môi trường của bạn, ở bất cứ quy mô nào.

Câu hỏi: Làm thế nào để sử dụng Amazon Kinesis Data Streams?

Sau khi đăng ký AWS, bạn có thể bắt đầu sử dụng Kinesis Data Streams bằng cách tạo luồng dữ liệu Kinesis thông qua Bảng điều khiển quản lý AWS hoặc thao tác CreateStream. Sau đó, cấu hình nguồn tạo dữ liệu để liên tục thêm dữ liệu vào luồng dữ liệu của bạn. Bạn có thể tùy chọn gửi dữ liệu từ các tài nguyên hiện có trong các dịch vụ AWS như Amazon DynamoDB, Amazon Aurora, Amazon CloudWatchAWS IoT Core. Sau đó, bạn có thể sử dụng AWS Lambda, Amazon Kinesis Data Analytics hoặc AWS Glue Streaming để nhanh chóng xử lý dữ liệu được lưu trữ trong Kinesis Data Streams. Bạn cũng có thể tạo các ứng dụng tùy chỉnh chạy trên Amazon Elastic Compute Cloud (EC2), Amazon Elastic Container Service (ECS) và Amazon Elastic Kubernetes Service (EKS) bằng cách sử dụng API Amazon Kinesis hoặc Amazon Kinesis Client Library (KCL).

Khái niệm chính

Câu hỏi: Phân đoạn, nguồn tạo và trình tiêu thụ trong Kinesis Data Streams là gì?

Phân đoạn có một chuỗi các bản ghi dữ liệu trong một luồng. Phân đoạn đóng vai trò như một đơn vị thông lượng cơ sở của một luồng dữ liệu Kinesis. Một phân đoạn hỗ trợ 1 MB/giây và 1.000 bản ghi mỗi giây để ghi và 2 MB/giây để đọc. Các giới hạn phân đoạn đảm bảo hiệu suất có thể dự đoán được, giúp dễ dàng thiết kế và vận hành quy trình truyền dữ liệu có độ tin cậy cao. Nguồn tạo đưa các bản ghi dữ liệu vào các phân đoạn và trình tiêu thụ nhận các bản ghi dữ liệu từ các phân đoạn. Trình tiêu thụ sử dụng các phân đoạn để xử lý dữ liệu song song và sử dụng dữ liệu theo thứ tự lưu trữ chính xác của chúng. Nếu số lượt ghi và đọc vượt quá giới hạn phân đoạn, ứng dụng nguồn tạo và trình tiêu thụ sẽ nhận được các nút điều chỉnh, có thể xử lý thông qua các lần thử lại.

Câu hỏi: Bản ghi là gì?

Bản ghi là đơn vị dữ liệu được lưu trữ trong luồng dữ liệu Amazon Kinesis. Bản ghi bao gồm số trình tự, khóa phân vùng và blob dữ liệu. Blob dữ liệu là dữ liệu cần quan tâm mà nguồn tạo dữ liệu thêm vào luồng dữ liệu. Kích thước tối đa của blob dữ liệu (dữ liệu thực trước khi mã hóa Base64) là 1 megabyte (MB).

Câu hỏi: Khóa phân vùng là gì?

Khóa phân vùng được sử dụng để cách ly và định tuyến các bản ghi tới các phân đoạn khác nhau trong luồng dữ liệu. Khóa phân vùng do nguồn tạo dữ liệu chỉ định khi thêm dữ liệu vào luồng dữ liệu Kinesis. Ví dụ: giả sử bạn có luồng dữ liệu gồm hai phân đoạn (phân đoạn 1 và phân đoạn 2). Bạn có thể cấu hình nguồn tạo dữ liệu để sử dụng hai khóa phân vùng (khóa A và khóa B) sao cho tất cả các bản ghi có khóa A được thêm vào phân đoạn 1 và tất cả các bản ghi có khóa B được thêm vào phân đoạn 2.

Câu hỏi: Số trình tự là gì?

Số trình tự là một mã định danh duy nhất cho mỗi bản ghi. Số trình tự được Amazon Kinesis ấn định khi nguồn tạo dữ liệu gọi thao tác PutRecord hoặc PutRecords để thêm dữ liệu vào luồng dữ liệu Amazon Kinesis. Số trình tự cho cùng một khóa phân vùng thường tăng lên theo thời gian; thời gian giữa các yêu cầu PutRecord hoặc PutRecords càng lâu thì số trình tự càng lớn.

Câu hỏi: Chế độ dung lượng là gì?

Chế độ dung lượng của Kinesis Data Streams xác định cách quản lý dung lượng và tính phí sử dụng cho một luồng dữ liệu. Bạn có thể chọn giữa chế độ cấp phép và chế độ theo nhu cầu. Ở chế độ được cung cấp, bạn có thể chỉ định số lượng phân đoạn cho luồng dữ liệu. Tổng dung lượng của một luồng dữ liệu là tổng dung lượng các phân đoạn của nó. Bạn có thể tăng hoặc giảm số lượng phân đoạn trong luồng dữ liệu nếu cần và thanh toán cho số lượng phân đoạn ở mức phí theo giờ. Trong chế độ theo nhu cầu, AWS quản lý các phân đoạn để cung cấp thông lượng cần thiết. Bạn chỉ cần thanh toán cho thông lượng thực tế đã sử dụng và Kinesis Data Streams sẽ tự động đáp ứng nhu cầu thông lượng khối lượng công việc của bạn khi chúng tăng hoặc giảm. Tất cả các API ghi và đọc của Kinesis Data Streams, cùng với các tính năng tùy chọn như Khả năng lưu giữ kéo dài và Phân xuất tăng cường, đều được hỗ trợ ở cả hai chế độ dung lượng.

Câu hỏi: Làm thế nào để chọn giữa chế độ theo nhu cầu và chế độ được cung cấp?

Chế độ theo nhu cầu phù hợp nhất cho khối lượng công việc có các mẫu lưu lượng không thể đoán trước và có nhiều thay đổi. Bạn nên sử dụng chế độ này nếu muốn AWS thay bạn quản lý dung lượng hoặc bạn muốn mức định giá theo thông lượng. Chế độ được cung cấp phù hợp nhất cho lưu lượng có thể đoán trước, có thể dễ dàng dự báo các yêu cầu về dung lượng. Bạn nên cân nhắc sử dụng chế độ được cung cấp nếu muốn kiểm soát chi tiết cách phân phối dữ liệu trên các phân đoạn. Chế độ được cung cấp cũng phù hợp nếu bạn muốn cung cấp thêm các phân đoạn để ứng dụng tiêu thụ có thể có nhiều thông lượng đọc hơn nhằm tăng tốc quá trình xử lý tổng thể.

Câu hỏi: Có thể chuyển đổi giữa chế độ theo nhu cầu và chế độ được cung cấp không?

Có. Bạn có thể chuyển đổi giữa chế độ theo nhu cầu và chế độ được cung cấp hai lần một ngày. Số lượng phân đoạn của luồng dữ liệu vẫn được giữ nguyên khi bạn chuyển từ chế độ được cung cấp sang chế độ theo nhu cầu và ngược lại. Với việc chuyển từ chế độ dung lượng được cung cấp sang chế độ theo nhu cầu, luồng dữ liệu của bạn sẽ giữ lại bất kỳ số lượng phân đoạn nào mà nó có trước khi chuyển đổi. Nhưng từ thời điểm đó trở đi, Kinesis Data Streams sẽ giám sát lưu lượng dữ liệu của bạn và thay đổi quy mô số phân đoạn của luồng dữ liệu theo nhu cầu này lên hoặc xuống tùy thuộc vào lưu lượng truy cập tăng hoặc giảm.

Thêm dữ liệu vào Kinesis Data Streams

Câu hỏi: Làm thế nào để thêm dữ liệu vào luồng dữ liệu Amazon Kinesis?

Bạn có thể thêm dữ liệu vào luồng dữ liệu Kinesis thông qua thao tác PutRecord và PutRecords, Amazon Kinesis Producer Library (KPL) hoặc Amazon Kinesis Agent.

Câu hỏi: Giữa PutRecord và PutRecords có sự khác biệt gì?

Thao tác PutRecord cho phép một bản ghi dữ liệu đơn lẻ trong một lệnh gọi API và thao tác PutRecords cho phép nhiều bản ghi dữ liệu trong một lệnh gọi API. Để biết thêm thông tin, hãy xem PutRecord PutRecords.

Câu hỏi: Amazon Kinesis Producer Library (KPL) là gì?

Amazon Kinesis Producer Library (KPL) là thư viện dễ sử dụng và có cấu hình linh hoạt cao giúp bạn đưa dữ liệu vào luồng dữ liệu Amazon Kinesis. KPL có giao diện đơn giản, không đồng bộ và đáng tin cậy, cho phép bạn nhanh chóng đạt được thông lượng nguồn tạo dữ liệu cao với lượng tài nguyên máy khách tối thiểu.

Câu hỏi: Amazon Kinesis Agent là gì?

Amazon Kinesis Agent là ứng dụng Java dựng sẵn, mở ra cách thức dễ dàng để thu thập và gửi dữ liệu tới luồng dữ liệu Amazon Kinesis của bạn. Bạn có thể cài đặt ứng dụng đại diện này trên các môi trường máy chủ dựa trên Linux như máy chủ web, máy chủ nhật ký và máy chủ cơ sở dữ liệu. Ứng dụng đại diện này giám sát các tệp nhất định và liên tục gửi dữ liệu đến luồng dữ liệu. Để biết thêm thông tin, hãy xem Ghi bằng các ứng dụng đại diện.

Câu hỏi: Trong khi có lệnh gọi PutRecord hoặc PutRecords, dữ liệu nào sẽ được kiểm đếm so với thông lượng dữ liệu của luồng dữ liệu Amazon Kinesis?

Blob dữ liệu, khóa phân vùng và tên luồng dữ liệu là các tham số bắt buộc của lệnh gọi PutRecord hoặc PutRecords. Kích thước của blob dữ liệu (trước khi mã hóa Base64) và khóa phân vùng sẽ được kiểm đếm so với thông lượng dữ liệu của luồng dữ liệu Amazon Kinesis do số lượng phân đoạn trong luồng dữ liệu xác định.

Đọc và xử lý dữ liệu từ Kinesis Data Streams

Câu hỏi: Trình tiêu thụ là gì và Amazon Kinesis Data Streams cung cấp những kiểu trình tiêu thụ khác nhau nào?

Trình tiêu thụ là một ứng dụng xử lý mọi dữ liệu từ luồng dữ liệu Kinesis. Bạn có thể chọn giữa loại trình tiêu thụ phân xuất chung và phân xuất tăng cường để đọc dữ liệu từ luồng dữ liệu Kinesis. Trình tiêu thụ phân xuất chung đều dùng chung một thông lượng đọc 2 MB/giây của một phận đoạn và giới hạn năm giao dịch mỗi giây, đồng thời yêu cầu sử dụng API GetRecords. Trình tiêu thụ phân xuất tăng cường nhận riêng phân bổ thông lượng đọc 2 MB/giây, cho phép nhiều trình tiêu thụ đọc dữ liệu từ cùng một luồng song song, mà không cần tranh thông lượng đọc với những trình tiêu thụ khác. Bạn cần sử dụng API SubscribeToShard với các trình tiêu thụ phân xuất tăng cường. Chúng tôi khuyên bạn nên sử dụng trình tiêu thụ phân xuất tăng cường nếu bạn muốn thêm nhiều hơn một trình tiêu thụ vào luồng dữ liệu của mình.

Câu hỏi: Làm thế nào để xử lý dữ liệu được ghi lại và lưu trữ trong Amazon Kinesis Data Streams?

Bạn có thể sử dụng các dịch vụ được quản lý như AWS Lambda, Amazon Kinesis Data Analytics và AWS Glue để xử lý dữ liệu được lưu trữ trong Kinesis Data Streams. Các dịch vụ được quản lý này đảm nhận việc cung cấp và quản lý cơ sở hạ tầng bên dưới để bạn có thể tập trung vào việc viết logic làm việc của mình. Bạn cũng có thể cung cấp dữ liệu được lưu trữ trong Kinesis Data Streams tới Amazon S3, Amazon OpenSearch Service, Amazon Redshift và các điểm cuối HTTP tùy chỉnh bằng cách sử dụng tiện ích tích hợp dựng sẵn với Kinesis Data Firehose. Bạn cũng có thể xây dựng các ứng dụng tùy chỉnh bằng cách sử dụng Amazon Kinesis Client Library, một thư viện được tạo sẵn hoặc API Amazon Kinesis Data Streams.

Câu hỏi: Amazon Kinesis Client Library (KCL) là gì?

Amazon Kinesis Client Library (KCL) dành cho Java, Python, Ruby, Node.js và .NET là thư viện dựng sẵn giúp bạn dễ dàng xây dựng ứng dụng Amazon Kinesis để đọc và xử lý dữ liệu từ luồng dữ liệu Amazon Kinesis.

KCL giải quyết được các vấn đề phức tạp như tùy ứng với những thay đổi về khối lượng luồng dữ liệu, cân bằng tải cho luồng dữ liệu, điều phối các dịch vụ phân tán và xử lý dữ liệu với khả năng chịu lỗi cao. KCL cho phép bạn tập trung vào logic làm việc trong khi xây dựng ứng dụng. Tham khảo tài liệu về Kinesis Data Streams tại đây để biết thêm chi tiết về KCL.

Câu hỏi: API SubscribeToShard là gì?

API SubscribeToShard là API tạo luồng hiệu năng cao giúp đẩy dữ liệu từ các phân đoạn đến các trình tiêu thụ qua một kết nối liên tục mà không cần tới chu trình yêu cầu từ ứng dụng khách. API SubscribeToShard sử dụng giao thức HTTP/2 để phân phối dữ liệu đến các trình tiêu thụ đã đăng ký bất cứ khi nào dữ liệu mới đến phân đoạn, thường là trong vòng 70ms, mang tới tốc độ phân phối nhanh hơn khoảng 65% so với API GetRecords. Trình tiêu thụ sẽ được hưởng tốc độ phân phối nhanh ngay cả khi có nhiều trình tiêu thụ đã đăng ký cùng đọc từ một phân đoạn.

Câu hỏi: Phân xuất tăng cường là gì?

Phân xuất tăng cường là tính năng tùy chọn cho các trình tiêu thụ Kinesis Data Streams, cung cấp các đường dẫn nối có thông lượng 2 MB/giây giữa các trình tiêu thụ và các phân đoạn. Nhờ đó, bạn có thể thay đổi số lượng trình tiêu thụ đang đọc đồng thời từ một luồng dữ liệu mà vẫn duy trì được hiệu suất cao.

Câu hỏi: Tôi nên sử dụng phân xuất tăng cường khi nào?

Bạn nên sử dụng phân xuất tăng cường nếu bạn có, hoặc dự kiến sẽ có, nhiều trình tiêu thụ cùng truy xuất đồng thời từ một luồng, hoặc nếu bạn có ít nhất một trình tiêu thụ bắt buộc phải sử dụng API SubscribeToShard để cung cấp tốc độ phân phối dữ liệu dưới 200 ms giữa các nguồn tạo dữ liệu và trình tiêu thụ.

Câu hỏi: Trình tiêu thụ sử dụng phân xuất tăng cường như thế nào?

Các trình tiêu thụ sử dụng phân xuất tăng cường bằng cách truy xuất dữ liệu bằng API SubscribeToShard. Tên của trình tiêu thụ đã đăng ký được sử dụng trong API SubscribeToShard, nhờ đó tận dụng được lợi ích của phân xuất tăng cường được cung cấp cho trình tiêu thụ đã đăng ký.

Câu hỏi: Tôi có thể để một số trình tiêu thụ sử dụng phân xuất tăng cường, còn một số trình tiêu thụ khác không sử dụng không?

Có. Bạn có thể để đồng thời nhiều trình tiêu thụ sử dụng phân xuất tăng cường, còn số khác thì không sử dụng nó cũng được. Việc sử dụng phân xuất tăng cường không làm ảnh hưởng đến giới hạn số lượng phân đoạn đối với lượng sử dụng GetRecords thông thường.

Câu hỏi: Tôi có cần sử dụng phân xuất tăng cường nếu muốn dùng SubscribeToShard hay không?

Có. Để sử dụng SubscribeToShard, bạn cần đăng ký trình tiêu thụ và việc đăng ký sẽ kích hoạt phân xuất tăng cường. Theo mặc định, trình tiêu thụ sẽ tự động sử dụng phân xuất tăng cường khi truy xuất dữ liệu qua SubscribeToShard.

Chế độ theo nhu cầu

Câu hỏi: Định mức thông lượng mặc định để ghi dữ liệu vào luồng dữ liệu bằng chế độ theo nhu cầu là bao nhiêu?

Luồng dữ liệu mới được tạo ở chế độ theo nhu cầu có định mức 4 MB/giây và 4.000 bản ghi mỗi giây để ghi. Theo mặc định, các luồng này tự động mở rộng quy mô lên đến 200 MB/giây và 200.000 bản ghi mỗi giây để ghi.

Câu hỏi: Các luồng dữ liệu mở rộng quy mô trong chế độ theo nhu cầu như thế nào để xử lý việc tăng thông lượng ghi?

Luồng dữ liệu ở chế độ theo nhu cầu có khả năng tăng gấp đôi thông lượng ghi đỉnh trước đó được quan sát trong 30 ngày gần nhất. Khi thông lượng ghi của luồng dữ liệu đạt mức đỉnh mới, Kinesis Data Streams sẽ tự động thay đổi quy mô dung lượng của luồng. Ví dụ: nếu luồng dữ liệu của bạn có thông lượng ghi thay đổi từ 10 MB/giây đến 40 MB/giây, Kinesis Data Streams sẽ đảm bảo rằng bạn có thể dễ dàng tăng gấp đôi thông lượng đỉnh là 80 MB/giây. Sau đó, nếu có một luồng dữ liệu tương tự duy trì thông lượng đỉnh mới là 50 MB/giây, thì Data Streams sẽ đảm bảo rằng có đủ dung lượng để thu nạp 100 MB/giây thông lượng ghi. Tuy nhiên, bạn sẽ thấy lỗi “ProvisonedThroughputExceeded” nếu lưu lượng truy cập của bạn tăng hơn gấp đôi so với mức đỉnh trước đó trong khoảng thời gian 15 phút. Bạn cần phải thử lại các yêu cầu điều chỉnh này.

Câu hỏi: Giới hạn thông lượng để đọc dữ liệu từ các luồng ở chế độ theo yêu cầu là bao nhiêu?

Dung lượng đọc tổng hợp của chế độ theo nhu cầu tăng theo tỷ lệ thuận với thông lượng ghi để đảm bảo rằng các ứng dụng đang sử dụng luôn có đủ thông lượng đọc để xử lý dữ liệu đến trong thời gian thực. Bạn nhận được tối thiểu gấp đôi thông lượng ghi để đọc dữ liệu bằng API GetRecords. Chúng tôi khuyên bạn nên sử dụng một trình tiêu thụ có API GetRecord để có đủ chỗ để bắt kịp khi ứng dụng cần khôi phục sau thời gian ngừng hoạt động. Để thêm nhiều hơn một ứng dụng đang sử dụng, bạn cần sử dụng phân xuất tăng cường, hỗ trợ thêm tối đa 20 trình tiêu thụ vào luồng dữ liệu bằng API SubscribeToShard, với mỗi API có thông lượng chuyên dụng.

Chế độ được cung cấp

Câu hỏi: Giới hạn của Kinesis Data Streams trong chế độ được cung cấp là bao nhiêu?

Thông lượng của luồng dữ liệu Kinesis trong chế độ được cung cấp được thiết kế để mở rộng quy mô không giới hạn thông qua việc tăng số lượng phân đoạn trong một luồng dữ liệu.

Câu hỏi: Làm thế nào để mở rộng quy mô dung lượng của Kinesis Data Streams trong chế độ được cung cấp?

Bạn có thể mở rộng dung lượng Kinesis Data Stream ở chế độ được cung cấp bằng cách chia nhỏ các phân đoạn hiện có thông qua API SplitShard. Bạn có thể thu nhỏ quy mô dung lượng bằng cách hợp nhất hai phân đoạn thông qua API MergeShard. Ngoài ra, bạn có thể sử dụng API UpdateShardCount để tăng (hoặc giảm) dung lượng luồng đến số lượng phân đoạn cụ thể.

Câu hỏi: Làm thế nào để quyết định thông lượng của luồng dữ liệu Amazon Kinesis trong chế độ được cung cấp?

Số lượng phân đoạn trong luồng dữ liệu sẽ quyết định thông lượng của luồng dữ liệu Kinesis. Thực hiện theo các bước dưới đây để ước tính số lượng phân đoạn ban đầu cần thiết cho luồng dữ liệu của bạn trong chế độ được cung cấp. Lưu ý rằng bạn có thể điều chỉnh linh hoạt số lượng phân đoạn trong luồng dữ liệu thông qua thao tác chia lại phân đoạn.

Ước tính kích thước trung bình của bản ghi được ghi vào luồng dữ liệu tính theo kilobyte (KB), được làm tròn tới 1 KB gần nhất (average_data_size_in_KB)

Ước tính số lượng bản ghi được ghi vào luồng dữ liệu trên mỗi giây. (number_of_records_per_second)

Quyết định số lượng ứng dụng Amazon Kinesis tiêu thụ dữ liệu đồng thời và độc lập từ luồng dữ liệu. (number_of_consumers)

Tính băng thông ghi đi vào theo KB (incoming_write_bandwidth_in_KB), bằng average_data_size_in_KB nhân với number_of_records_per_second.

Tính băng thông đọc đi ra theo KB (outgoing_read_bandwidth_in_KB), bằng incoming_write_bandwidth_in_KB nhân với number_of_consumers.

Sau đó, bạn có thể tính số phân đoạn ban đầu (number_of_shards) cần thiết cho luồng dữ liệu theo công thức sau: number_of_shards = max (incoming_write_bandwidth_in_KB / 1000, outgoing_read_bandwidth_in_KB / 2000)

Câu hỏi: Thông lượng tối đa mà tôi có thể yêu cầu cho luồng dữ liệu Amazon Kinesis trong chế độ được cung cấp là bao nhiêu?

Thông lượng của luồng dữ liệu Kinesis được thiết kế để thay đổi quy mô không giới hạn. Định mức phân đoạn mặc định là 500 phân đoạn mỗi luồng đối với các Khu vực AWS sau: Miền Đông Hoa Kỳ (Bắc Virginia), Miền Tây Hoa Kỳ (Oregon) và Châu Âu (Ireland). Đối với tất cả các Khu vực khác, định mức phân đoạn mặc định là 200 phân đoạn mỗi luồng. Bạn có thể yêu cầu tăng định mức phân đoạn thông qua Bảng điều khiển AWS Service Quotas.

Câu hỏi: Điều gì sẽ xảy ra nếu vượt quá giới hạn dung lượng của luồng dữ liệu Amazon Kinesis trong khi nguồn tạo dữ liệu thêm dữ liệu vào luồng dữ liệu trong chế độ được cung cấp?

Trong chế độ được cung cấp, số lượng phân đoạn trong luồng dữ liệu sẽ quyết định giới hạn dung lượng của luồng dữ liệu Kinesis. Giới hạn có thể bị vượt quá do thông lượng dữ liệu hoặc số lượng bản ghi PUT. Khi vượt quá giới hạn dung lượng, lệnh gọi đặt dữ liệu sẽ bị từ chối với lỗi ProvisionedThroughputExceeded. Nếu nguyên nhân là do tốc độ dữ liệu đầu vào của luồng dữ liệu tăng tạm thời, thao tác thử lại do nguồn tạo dữ liệu thực hiện cuối cùng sẽ hoàn tất các yêu cầu. Nếu nguyên nhân là do tốc độ dữ liệu đầu vào của luồng dữ liệu tăng kéo dài, bạn nên tăng số lượng phân đoạn trong luồng dữ liệu để cung cấp đủ dung lượng cho các lệnh gọi đặt dữ liệu luôn thành công. Trong cả hai trường hợp, số liệu của Amazon CloudWatch đều cho phép bạn tìm hiểu về thay đổi tốc độ dữ liệu đầu vào của luồng dữ liệu và sự xuất hiện của lỗi ProvisionedThroughputExceeded.

Câu hỏi: Điều gì sẽ xảy ra nếu vượt quá giới hạn dung lượng của luồng dữ liệu Amazon Kinesis trong khi ứng dụng Amazon Kinesis đọc dữ liệu từ luồng dữ liệu trong chế độ được cung cấp?

Trong chế độ được cung cấp, số lượng phân đoạn trong luồng dữ liệu sẽ quyết định giới hạn dung lượng của luồng dữ liệu Kinesis. Giới hạn có thể bị vượt quá do thông lượng dữ liệu hoặc số lượng lệnh gọi đọc dữ liệu. Khi vượt quá giới hạn dung lượng, lệnh gọi đọc dữ liệu bị từ chối với lỗi ProvisionedThroughputExceeded. Nếu nguyên nhân là do tốc độ dữ liệu đầu ra của luồng dữ liệu tăng tạm thời, thao tác thử lại do ứng dụng Amazon Kinesis thực hiện cuối cùng sẽ hoàn tất các yêu cầu. Nếu nguyên nhân là do tốc độ dữ liệu đầu vào của luồng dữ liệu tăng kéo dài, bạn nên tăng số lượng phân đoạn trong luồng dữ liệu để cung cấp đủ dung lượng cho các lệnh gọi đọc dữ liệu luôn thành công. Trong cả hai trường hợp, số liệu của Amazon CloudWatch đều cho phép bạn tìm hiểu về thay đổi tốc độ dữ liệu đầu ra của luồng dữ liệu và sự xuất hiện của lỗi ProvisionedThroughputExceeded.

Chế độ lưu giữ dữ liệu kéo dài và dài hạn

Câu hỏi: Khoảng thời gian lưu giữ được Kinesis Data Streams hỗ trợ là bao lâu?

Khoảng thời gian lưu giữ mặc định là 24 giờ dành cho những trường hợp cần cập nhật dữ liệu trong thời gian thực cho những khoảng thời gian trễ không liên tục trong quá trình xử lý. Chế độ lưu giữ 7 ngày cho phép bạn xử lý lại dữ liệu trong tối đa 7 ngày để giải quyết vấn đề mất dữ liệu có thể xảy ra ở những dịch vụ xuôi chiều. Chế độ lưu giữ dữ liệu dài hạn, trên bảy ngày và tối đa 365 ngày, cho phép bạn xử lý lại dữ liệu cũ trong các trường hợp sử dụng như kiểm tra lại thuật toán, lấp đầy kho dữ liệu và kiểm tra.

Câu hỏi: Có thể sử dụng API Kinesis Data Streams hiện có để đọc dữ liệu cũ hơn bảy ngày không?

Có. Bạn có thể sử dụng cùng một API getShardIterator, GetRecords và SubscribeToShard để đọc dữ liệu được lưu giữ trong hơn bảy ngày. Trình tiêu thụ có thể di chuyển biến lặp đến vị trí mong muốn trong luồng, truy xuất bản đồ phân đoạn (bao gồm cả phân đoạn mở và đã đóng) cũng như đọc các bản ghi.

Câu hỏi: Có API mới nào để hỗ trợ thêm việc đọc dữ liệu cũ không?

Có. Chúng tôi đã bổ sung tính năng cải tiến cho API ListShards, GetRecords và SubscribeToShard. Bạn có thể dùng tùy chọn bộ lọc mới với tham số TimeStamp có sẵn trong API ListShards để truy xuất hiệu quả bản đồ phân đoạn và cải thiện hiệu suất đọc dữ liệu cũ. Bộ lọc TimeStamp cho phép các ứng dụng khám phá và liệt kê các phân đoạn từ thời điểm bạn muốn xử lý lại dữ liệu và không cần phải bắt đầu ở khung thời hạn xóa. API GetRecords và SubscribeToShards có trường mới tên là ChildShards, cho phép bạn nhanh chóng phát hiện các phân đoạn con khi một ứng dụng đọc xong dữ liệu từ một phân đoạn đã đóng, thay vì phải duyệt lại bản đồ phân đoạn. Việc phát hiện nhanh các phân đoạn giúp sử dụng hiệu quả tài nguyên điện toán của ứng dụng cho luồng ở mọi kích thước, bất kể thời gian lưu giữ dữ liệu.

Câu hỏi: Khi nào thì nên sử dụng các tính năng cải tiến API này?

Bạn nên cân nhắc sử dụng các tính năng cải tiến API này nếu định lưu giữ dữ liệu lâu hơn và thường xuyên mở rộng dung lượng luồng của mình. Khi mở rộng luồng, các phân đoạn hiện có sẽ bị đóng để mở các phân đoạn con mới. Dữ liệu trong tất cả các phân đoạn mở và đóng được giữ lại cho đến khi kết thúc khoảng thời gian lưu giữ. Vì vậy, tổng số phân đoạn sẽ tăng theo thời gian lưu giữ và số thao tác mở rộng quy mô. Sự gia tăng này trong bản đồ phân đoạn đòi hỏi bạn phải sử dụng ListShards với bộ lọc TimeStamp cũng như trường ChildShards trong API GetRecords và API SubscribeToShard nhằm khám phá hiệu quả các phân đoạn để truy xuất dữ liệu. Bạn sẽ cần nâng cấp KCL lên phiên bản mới nhất (1.x đối với trình tiêu thụ tiêu chuẩn và 2.x đối với trình tiêu thụ phân xuất tăng cường) để có thể sử dụng các tính năng này.

Câu hỏi: Amazon Kinesis Data Streams có hỗ trợ đăng ký sơ đồ hay không?

Có. Khách hàng của Kinesis Data Streams có thể sử dụng AWS Glue Schema Registry, một tính năng phi máy chủ của AWS Glue, thông qua Kinesis Producer Library (KPL) và Kinesis Client Libraries (KCL) hoặc thông qua các API AWS Glue Schema Registry trong AWS Java SDK. Schema Registry được cung cấp mà không tính thêm phụ phí. 

Xem tài liệu hướng dẫn sử dụng về Schema Registry để bắt đầu và tìm hiểu thêm.

Quản lý Kinesis Data Streams

Câu hỏi: Làm thế nào để thay đổi thông lượng của luồng dữ liệu Amazon Kinesis trong chế độ được cung cấp?

Có hai cách để thay đổi thông lượng của luồng dữ liệu. Bạn có thể sử dụng API UpdateShardCount hoặc Bảng điều khiển quản lý AWS để thay đổi số lượng phân đoạn trong luồng dữ liệu, hoặc bạn có thể thay đổi thông lượng của luồng dữ liệu Amazon Kinesis bằng cách điều chỉnh số lượng phân đoạn trong luồng dữ liệu (chia lại phân đoạn).

Câu hỏi: Mất bao lâu để thay đổi thông lượng của luồng dữ liệu Amazon Kinesis chạy trong chế độ được cung cấp bằng cách sử dụng UpdateShardCount hoặc Bảng điều khiển quản lý AWS?

Việc hoàn thành các yêu cầu thay đổi quy mô điển hình thường mất vài phút. Các yêu cầu thay đổi quy mô lớn hơn sẽ mất nhiều thời gian hơn các thay đổi nhỏ.

Câu hỏi: Khi tôi thay đổi thông lượng của luồng dữ liệu Kinesis trong chế độ được cung cấp hoặc khi việc thay đổi quy mô tự động xảy ra trong chế độ theo nhu cầu, thì Amazon Kinesis Data Streams có còn khả dụng không?

Có. Bạn có thể tiếp tục thêm dữ liệu vào và đọc dữ liệu từ luồng dữ liệu Kinesis khi đang sử dụng UpdateShardCount hoặc chia lại phân đoạn để thay đổi thông lượng của luồng dữ liệu hoặc khi Kinesis Data Streams tự động chia lại phân đoạn trong chế độ theo nhu cầu.

Câu hỏi: Làm thế nào để giám sát hoạt động và hiệu năng của luồng dữ liệu Amazon Kinesis?

Bảng điều khiển quản lý Amazon Kinesis Data Streams hiển thị các số liệu hoạt động và hiệu suất chính như thông lượng đầu vào và đầu ra dữ liệu của các luồng dữ liệu Kinesis. Kinesis Data Streams cũng tích hợp với Amazon CloudWatch để bạn có thể chọn, xem và phân tích số liệu CloudWatch cho các luồng dữ liệu và các phân đoạn trong những luồng dữ liệu đó. Để biết thêm thông tin về số liệu của Amazon Kinesis Data Streams, hãy xem bài viết Giám sát Amazon Kinesis Data Streams bằng Amazon CloudWatch.

Lưu ý rằng tất cả số liệu ở cấp độ luồng đều miễn phí. Tất cả số liệu ở cấp độ phân đoạn được kích hoạt chịu mức định giá của Amazon CloudWatch.

Câu hỏi: Làm thế nào để quản lý và kiểm soát quyền truy cập luồng dữ liệu Amazon Kinesis?

Amazon Kinesis Data Streams tích hợp với AWS Identity and Access Management (IAM), một dịch vụ cho phép bạn kiểm soát an toàn quyền truy cập vào dịch vụ và tài nguyên của AWS đối với người dùng của bạn. Ví dụ: bạn có thể tạo chính sách chỉ cho phép một nhóm hoặc người dùng cụ thể thêm dữ liệu vào luồng dữ liệu Kinesis. Để biết thêm thông tin về quản lý và kiểm soát truy cập luồng dữ liệu, hãy xem bài viết Kiểm soát hoạt động truy cập tài nguyên Amazon Kinesis Data Streams thông qua IAM.

Câu hỏi: Làm thế nào để ghi nhật ký lệnh gọi API đã thực hiện đến luồng dữ liệu Amazon Kinesis để phục vụ phân tích bảo mật và giải quyết sự cố hoạt động?

Kinesis Data Streams tích hợp với Amazon CloudTrail, một dịch vụ ghi lại lệnh gọi API của AWS cho tài khoản của bạn và cung cấp tệp nhật ký tới bạn. Để biết thêm thông tin về ghi nhật ký lệnh gọi API và danh sách các thao tác API Amazon Kinesis được hỗ trợ, hãy xem Ghi nhật ký lệnh gọi API Amazon Kinesis bằng Amazon CloudTrail.

Câu hỏi: Làm thế nào để quản lý hiệu quả các luồng dữ liệu Amazon Kinesis và các khoản phí gắn với các luồng dữ liệu này?

Kinesis Data Streams cho phép bạn gắn thẻ các luồng dữ liệu Kinesis để quản lý tài nguyên và chi phí dễ dàng hơn. Thẻ là một nhãn do người dùng xác định được thể hiện dưới dạng một cặp giá trị khóa giúp sắp xếp các tài nguyên AWS. Ví dụ: bạn có thể gắn thẻ các luồng dữ liệu theo các tập hợp đối tượng chi phí để có thể phân loại và theo dõi các khoản phí Kinesis Data Streams theo các tập hợp đối tượng chi phí. Để biết thêm thông tin về gắn thẻ Amazon Kinesis Data Streams, hãy xem Gắn thẻ Amazon Kinesis Data Streams.

Bảo mật

Câu hỏi: Dữ liệu của tôi bảo mật ở mức nào khi tôi sử dụng Kinesis Data Streams?

Amazon Kinesis bảo mật theo mặc định. Chỉ chủ tài khoản và luồng dữ liệu mới có quyền truy cập các tài nguyên Kinesis mà họ tạo. Kinesis hỗ trợ xác thực người dùng để kiểm soát truy cập dữ liệu. Bạn có thể sử dụng các chính sách AWS IAM để cấp quyền có chọn lọc cho người dùng và nhóm người dùng. Bạn có thể đặt và lấy dữ liệu một cách bảo mật từ Kinesis thông qua các điểm cuối SSL sử dụng giao thức HTTPS. Nếu cần tăng cường thêm bảo mật, bạn có thể sử dụng mã hóa phía máy chủ với các khóa AWS Key Management Service (KMS) để mã hóa dữ liệu lưu trong luồng dữ liệu. AWS KMS cho phép bạn sử dụng các khóa KMS do AWS tạo để mã hóa hoặc bạn có thể mang khóa KMS của riêng bạn vào AWS KMS nếu muốn. Cuối cùng, bạn có thể sử dụng thư viện mã hóa của riêng mình để mã hóa dữ liệu bên phía máy khách trước khi đặt dữ liệu vào Kinesis.

Câu hỏi: Tôi có thể truy cập riêng tư vào các API Kinesis Data Streams từ Amazon Virtual Private Cloud (VPC) mà không cần sử dụng IP công cộng không?

Có. Bạn có thể truy cập riêng tư vào các API Kinesis Data Streams từ Amazon VPC bằng cách tạo Điểm cuối VPC. Với Điểm cuối VPC, mạng AWS sẽ xử lý việc định tuyến giữa VPC và Kinesis Data Streams mà không cần cổng Internet, cổng NAT hoặc kết nối VPN. Thế hệ mới nhất của Điểm cuối VPC mà Kinesis Data Streams sử dụng được cung cấp bởi AWS PrivateLink, một công nghệ cho phép kết nối riêng tư giữa các dịch vụ AWS bằng Giao diện mạng linh hoạt (ENI) với IP riêng tư trong VPC của bạn. Để tìm hiểu thêm về PrivateLink, hãy tham khảo tài liệu PrivateLink.

Mã hóa

Câu hỏi: Tôi có thể mã hóa dữ liệu mà tôi đặt vào luồng dữ liệu Kinesis không?

Có, và có hai cách để làm việc đó. Bạn có thể sử dụng mã hóa phía máy chủ, đây là một tính năng được quản lý toàn phần, tự động mã hóa và giải mã dữ liệu khi bạn đưa dữ liệu vào và lấy dữ liệu từ luồng dữ liệu. Bạn cũng có thể ghi dữ liệu đã mã hóa vào luồng dữ liệu bằng cách mã hóa và giải mã phía máy khách.

Câu hỏi: Tại sao tôi nên sử dụng mã hóa phía máy chủ thay vì mã hóa phía máy khách?

Bạn nên chọn mã hóa phía máy chủ hơn là mã hóa phía máy khách vì một trong những lý do sau:

  1. Để mã hóa phía máy khách là một việc rất khó.
  2. Khách hàng muốn tầng bảo mật thứ hai bên cạnh mã hóa phía máy khách.
  3. Khó triển khai các mô hình quản lý khóa phía máy khách.

Câu hỏi: Mã hóa phía máy chủ là gì?

Mã hóa phía máy chủ dành cho Kinesis Data Streams tự động mã hóa dữ liệu bằng khóa AWS KMS do người dùng chỉ định trước khi được ghi vào tầng lưu trữ luồng dữ liệu và giải mã dữ liệu sau khi truy xuất từ kho lưu trữ. Việc mã hóa làm vô hiệu hóa các thao tác ghi và đọc dữ liệu và khóa phân vùng trừ khi người dùng đang ghi hoặc đọc từ luồng dữ liệu có quyền sử dụng khóa đã chọn để mã hóa trên luồng dữ liệu. Do đó, mã hóa phía máy chủ có thể giúp đơn giản hóa việc đáp ứng các yêu cầu nội bộ về bảo mật và tuân thủ điều chỉnh dữ liệu của bạn.

Với mã hóa phía máy chủ, các ứng dụng phía máy khách (nguồn tạo và ứng dụng tiêu thụ dữ liệu) không cần phải đảm nhiệm việc mã hóa, các ứng dụng đó không cần quản lý khóa KMS hay hoạt động mã hóa và dữ liệu của bạn được mã hóa khi lưu trữ và khi truyền trong phạm vi dịch vụ Kinesis Data Streams. AWS KMS cung cấp tất cả các khóa KMS mà tính năng mã hóa phía máy chủ sử dụng. AWS KMS giúp dễ dàng sử dụng khóa KMS do AWS quản lý cho Kinesis (phương thức mã hóa “một lần nhấp”), khóa do khách hàng AWS KMS quản lý của chính bạn hoặc khóa KMS mà bạn nhập để mã hóa.

Câu hỏi: Có lưu ý nào khi bắt đầu sử dụng mã hóa phía máy chủ không?

Có, có hướng dẫn bắt đầu trong tài liệu hướng dẫn người dùng.

Câu hỏi: Mã hóa phía máy chủ liệu có làm ảnh hưởng đến cách các ứng dụng của tôi tương tác với Kinesis Data Streams hay không?

Có thể. Điều này tùy thuộc vào khóa mà bạn sử dụng để mã hóa và các quyền điều chỉnh khả năng truy cập vào khóa.

  • Nếu bạn sử dụng khóa KMS do AWS quản lý cho Kinesis (bí danh khóa = aws/kinesis), các ứng dụng của bạn sẽ không bị ảnh hưởng khi bật hoặc tắt chức năng mã hóa bằng khóa này.
  • Nếu bạn sử dụng khóa KMS khác, ví dụ như khóa AWS KMS tùy chỉnh hoặc một khóa mà bạn đã nhập vào dịch vụ AWS KMS và nếu nguồn tạo và ứng dụng tiêu thụ dữ liệu của một luồng dữ liệu không có quyền sử dụng khóa KMS để mã hóa, các yêu cầu PUT và GET sẽ thất bại. Để sử dụng được mã hóa phía máy khách, bạn phải cấu hình các chính sách khóa của AWS KMS để cho phép mã hóa và giải mã thông điệp. Để xem ví dụ và biết thêm thông tin về quyền của AWS KMS, xem Quyền của AWS KMS API: Tài liệu tham khảo về thao tác và tài nguyên trong Hướng dẫn dành cho nhà phát triển AWS Key Management Service hoặc hướng dẫn về quyền trong tài liệu hướng dẫn sử dụng mã hóa phía máy chủ của Kinesis Data Streams.

Câu hỏi: Việc sử dụng mã hóa phía máy chủ có làm mất thêm phụ phí không?

Có, tuy nhiên, nếu bạn đang sử dụng khóa KMS do AWS quản lý cho Kinesis và không vượt quá mức phí sử dụng API KMS thuộc bậc miễn phí của AWS, bạn được sử dụng mã hóa phía máy chủ miễn phí. Sau đây là mô tả về các khoản phí theo tài nguyên:

Khóa:

Khóa KMS do AWS quản lý cho Kinesis (bí danh = “aws/kinesis”) là miễn phí.
Khóa KMS do khách hàng quản lý chịu các khoản phí đối với khóa KMS. Tìm hiểu thêm.

Mức sử dụng KMS API:

Phí sử dụng API áp dụng cho từng khóa KMS, bao gồm các khóa tùy chỉnh. Kinesis Data Streams gọi KMS khoảng năm phút một lần khi đang xoay vòng khóa dữ liệu. Trong 30 ngày, mức phí tổng cộng cho các lệnh gọi KMS API do luồng dữ liệu Kinesis khởi tạo sẽ chưa đầy vài đô-la. Lưu ý rằng mức phí này tăng lên theo số lượng thông tin xác thực người dùng mà bạn sử dụng trên các nguồn tạo và trình tiêu thụ dữ liệu vì mỗi thông tin xác thực người dùng cần một lệnh gọi API riêng tới AWS KMS. Khi bạn sử dụng vai trò IAM để xác thực, mỗi lệnh gọi nhận vai trò sẽ cần đến các thông tin xác thực người dùng riêng và bạn có thể sẽ phải lưu đệm các thông tin xác thực do lệnh gọi nhận vai trò trả về để tiết kiệm phí KMS.

Câu hỏi: Các khu vực AWS nào cung cấp mã hóa phía máy chủ cho Kinesis Data Streams?

Mã hóa phía máy chủ Kinesis Data Streams có sẵn trong khu vực AWS GovCloud và tất cả các khu vực công cộng ngoại trừ khu vực Trung Quốc (Bắc Kinh).

Câu hỏi: Làm thế nào để bắt đầu, cập nhật hoặc xóa mã hóa phía máy chủ khỏi luồng dữ liệu?

Bạn có thể hoàn thành tất cả các thao tác này trên Bảng điều khiển quản lý AWS hoặc sử dụng AWS SDK. Để tìm hiểu thêm, xem hướng dẫn bắt đầu với mã hóa phía máy chủ Kinesis Data Streams.

Câu hỏi: Mã hóa phía máy chủ sử dụng thuật toán mã hóa gì?

Kinesis Data Streams sử dụng thuật toán AES-GCM 256 để mã hóa.

Câu hỏi: Nếu tôi mã hóa luồng dữ liệu đã có dữ liệu được ghi vào đó, dù là dưới dạng văn bản thuần hay văn bản mã hóa, thì khi tôi cập nhật mã hóa, tất cả dữ liệu trong luồng dữ liệu đó có được mã hóa hoặc giải mã hay không?

Không. Chỉ dữ liệu mới đã ghi vào luồng dữ liệu sẽ được mã hóa (hoặc duy trì ở trạng thái đã giải mã) bởi ứng dụng mã hóa mới.

Câu hỏi: Mã hóa phía máy chủ cho Kinesis Data Streams sẽ mã hóa những gì?

Mã hóa phía máy chủ mã hóa dữ liệu thực của tin nhắn cùng với khóa phân vùng do các ứng dụng tại nguồn tạo dữ liệu của luồng dữ liệu chỉ định.

Câu hỏi: Mã hóa phía máy chủ là tính năng dành riêng cho phân đoạn hay tính năng dành riêng cho luồng?

Mã hóa phía máy chủ là tính năng dành riêng cho luồng.

Câu hỏi: Tôi có thể thay đổi khóa KMS dùng để mã hóa luồng dữ liệu cụ thể hay không?

Có, khi sử dụng Bảng điều khiển quản lý AWS hoặc AWS SDK, bạn có thể chọn khóa KMS mới để áp dụng cho luồng dữ liệu cụ thể.

Câu hỏi: Amazon Kinesis Data Streams có sẵn ở Bậc miễn phí của AWS không?

Không. Amazon Kinesis Data Streams hiện không có sẵn ở Bậc miễn phí của AWS. AWS
Bậc miễn phí là chương trình cho phép dùng thử miễn phí một nhóm dịch vụ AWS. Để biết thêm
chi tiết về Bậc miễn phí của AWS, hãy xem bài viết Bậc miễn phí của AWS.

Cam kết chất lượng dịch vụ

Câu hỏi: Thỏa thuận mức dịch vụ (SLA) của Amazon Kinesis Data Streams đảm bảo những gì?

SLA của Kinesis Data Streams của chúng tôi đảm bảo Tỷ lệ thời gian hoạt động hàng tháng đạt mức tối thiểu 99,9% cho Kinesis Data Streams.

Câu hỏi: Làm thế nào để biết tôi có đủ điều kiện nhận Tín dụng dịch vụ SLA hay không?

Bạn đủ điều kiện nhận tín dụng SLA cho Kinesis Data Streams theo SLA của Kinesis Data Streams nếu bạn chạy một tác vụ ở nhiều Vùng sẵn sàng, trong cùng một Khu vực, có Tỷ lệ thời gian hoạt động hàng tháng dưới 99,9% trong bất kỳ chu kỳ tính phí hàng tháng nào.

Để biết đầy đủ chi tiết về tất cả các điều khoản và điều kiện của SLA cũng như chi tiết về cách gửi yêu cầu, vui lòng truy cập trang chi tiết về SLA của Amazon Kinesis Data Streams.

Định giá và thanh toán

Câu hỏi: Amazon Kinesis Data Streams có mức định giá là bao nhiêu?

Kinesis Data Streams sử dụng phương pháp định giá đơn giản, đó là trả phí theo mức sử dụng. Bạn không phải trả trước hay trả phí tối thiểu mà chỉ cần trả cho tài nguyên bạn sử dụng. Kinesis Data Streams có hai chế độ dung lượng—theo nhu cầu và được cung cấp—đồng thời cả hai chế độ này đều đi kèm với các lựa chọn thanh toán cụ thể.

Câu hỏi: Kinesis Data Streams có mức định giá là bao nhiêu trong chế độ theo nhu cầu?

Với chế độ dung lượng theo nhu cầu, bạn không cần chỉ định mức thông lượng đọc và ghi mà bạn mong muốn ứng dụng của mình thực hiện. Trong chế độ này, mức định giá dựa trên dung lượng dữ liệu được thu nạp và truy xuất cùng với khoản phí mỗi giờ cho từng luồng dữ liệu trong tài khoản của bạn. Các tính năng tùy chọn sẽ chịu thêm các khoản phí bổ sung: Lưu giữ dữ liệu kéo dài (quá 24 giờ đầu tiên và trong vòng bảy ngày đầu tiên), Lưu giữ dữ liệu dài hạn (quá bảy ngày và tối đa một năm) và Phân xuất tăng cường. Để biết thêm thông tin về mức phí của Kinesis Data Streams, hãy xem Mức định giá của Amazon Kinesis Data Streams.

Câu hỏi: Kinesis Data Streams có mức định giá là bao nhiêu trong chế độ được cung cấp?

Với chế độ dung lượng được cung cấp, bạn chỉ định số lượng phân đoạn cần thiết cho ứng dụng của mình, dựa trên tỷ lệ yêu cầu đọc và ghi của ứng dụng. Phân đoạn là một đơn vị dung lượng, cung cấp 1 MB/giây thông lượng ghi và 2MB/giây thông lượng đọc. Bạn sẽ phải trả phí theo giờ cho mỗi phân đoạn. Bạn cũng phải trả tiền cho các bản ghi được ghi vào luồng dữ liệu Kinesis. Bạn phải trả thêm phí khi sử dụng các tính năng tùy chọn như Lưu giữ dữ liệu kéo dài và Phân xuất tăng cường.

Sau đây là hai thước đo cốt lõi và ba thước đo tùy chọn trong chế độ được cung cấp của Kinesis Data Streams:

  • Mức phí Giờ phân đoạn được xác định bởi số lượng phân đoạn trong luồng dữ liệu Amazon Kinesis của bạn.
  • Mức phí Đơn vị dữ liệu thực PUT được xác định theo số lượng đơn vị dữ liệu 25KB mà các nguồn tạo dữ liệu thêm vào luồng dữ liệu.

Tùy chọn:

  • Lưu giữ dữ liệu kéo dài là phí tùy chọn được xác định bởi số giờ phân đoạn phát sinh trong luồng dữ liệu của bạn. Khi cho phép lưu giữ dữ liệu kéo dài, bạn sẽ trả phí lưu giữ dữ liệu kéo dài cho mỗi phân mảnh trong luồng.
  • Lưu giữ dữ liệu dài hạn là chi phí tùy chọn với hai thước đo chi phí: lưu trữ dữ liệu dài hạn và truy xuất dữ liệu dài hạn. Lưu trữ dữ liệu dài hạn phản ánh lượng dữ liệu theo GB-tháng được lưu trữ trong khoảng thời gian lớn hơn bảy ngày và tối đa 365 ngày. Truy xuất dữ liệu dài hạn phản ánh số GB dữ liệu truy xuất đã được lưu trữ trong hơn bảy ngày.
  • Phân xuất tăng cường là chi phí tùy chọn với hai thước đo chi phí chính: giờ tiêu thụ-phân đoạn và truy xuất dữ liệu. Số giờ ứng dụng tiêu thụ-phân đoạn bằng số lượng phân đoạn trong luồng nhân với số lượng ứng dụng tiêu thụ đang sử dụng phân xuất tăng cường. Lượng truy xuất dữ liệu được xác định bằng số GB được phân phối cho các trình tiêu thụ đang sử dụng phân xuất tăng cường.

Để biết thêm thông tin về mức phí của Kinesis Data Streams, hãy xem Mức định giá của Amazon Kinesis Data Streams.

Câu hỏi: Làm thế nào để tính giờ tiêu thụ-phân đoạn khi sử dụng Phân xuất tăng cường trong chế độ được cung cấp?

Một giờ tiêu thụ-phân đoạn được tính bằng cách lấy số lượng trình tiêu thụ trong luồng đã đăng ký nhân với số lượng phân đoạn trong luồng. Bạn cũng sẽ chỉ phải thanh toán cho lượng thời gian đã chia tỷ lệ mà trình tiêu thụ đã đăng ký sử dụng phân xuất tăng cường. Ví dụ: nếu một giờ tiêu thụ-phân đoạn có phí 0,015 USD thì trong luồng dữ liệu gồm 10 phân đoạn, trình tiêu thụ sử dụng phân xuất tăng cường này có thể đọc từ 10 phân đoạn, nên sẽ chịu mức phí giờ tiêu thụ-phân đoạn là 0,15 USD mỗi giờ (1 trình tiêu thụ x 10 phân đoạn x 0,015 USD trên giờ tiêu thụ-phân đoạn). Nếu có hai trình tiêu thụ được đăng ký đồng thời sử dụng phân xuất tăng cường, tổng mức phí giờ tiêu thụ-phân đoạn sẽ là 0,30 USD mỗi giờ (2 trình tiêu thụ x 10 phân đoạn x 0,015 USD).

So sánh với các dịch vụ AWS khác

Câu hỏi: Amazon Kinesis Data Streams có điểm khác biệt gì so với Amazon SQS?

Amazon Kinesis Data Streams cho phép xử lý truyền phát dữ liệu lớn trong thời gian thực. Dịch vụ này cung cấp tính năng sắp xếp thứ tự bản ghi cũng như khả năng đọc và/hoặc phát lại các bản ghi theo cùng thứ tự tới nhiều ứng dụng Amazon Kinesis. Amazon Kinesis Client Library (KCL) sẽ phân phối tất cả các bản ghi dành cho một khóa phân vùng cụ thể tới cùng một trình xử lý bản ghi, qua đó giúp bạn dễ dàng hơn trong việc xây dựng các ứng dụng đọc từ cùng một luồng dữ liệu Kinesis (ví dụ: để thực hiện việc đếm, tập hợp và lọc). Amazon Simple Queue Service (SQS) cung cấp hàng đợi lưu trữ đáng tin cậy và có quy mô linh hoạt để lưu trữ tin nhắn khi chúng di chuyển giữa các máy tính. Amazon SQS cho phép bạn dễ dàng di chuyển dữ liệu giữa các thành phần ứng dụng phân tán và giúp bạn xây dựng ứng dụng trong đó các tin nhắn được xử lý độc lập (với ngữ nghĩa ack/fail ở cấp độ tin nhắn), chẳng hạn như các quy trình công việc tự động.

Câu hỏi: Tôi nên sử dụng Amazon Kinesis Data Streams khi nào và nên sử dụng Amazon SQS khi nào?

Chúng tôi khuyên bạn nên sử dụng Kinesis Data Streams trong những trường hợp có yêu cầu tương tự như sau:

Định tuyến các bản ghi liên quan tới cùng một trình xử lý bản ghi (như trong truyền phát MapReduce). Ví dụ: việc kiểm đếm và tổng hợp sẽ đơn giản hơn khi định tuyến tất cả các bản ghi cho cùng một khóa nhất định đến cùng một trình xử lý bản ghi.

Sắp xếp thứ tự bản ghi. Ví dụ: bạn muốn truyền dữ liệu nhật ký từ máy chủ lưu trữ ứng dụng đến máy chủ xử lý/lưu trữ mà vẫn giữ nguyên thứ tự của các báo cáo nhật ký.

Khả năng cho phép nhiều ứng dụng tiêu thụ đồng thời cùng một luồng. Ví dụ: bạn có một ứng dụng cập nhật bảng thông tin trong thời gian thực và một ứng dụng khác lưu trữ dữ liệu vào Amazon Redshift. Bạn muốn cả hai ứng dụng tiêu thụ dữ liệu từ cùng một luồng đồng thời và độc lập.

Khả năng tiêu thụ các bản ghi theo cùng thứ tự trong vài giờ sau đó. Ví dụ: bạn có một ứng dụng thanh toán và một ứng dụng kiểm toán chạy sau ứng dụng thanh toán vài giờ. Vì Kinesis Data Streams lưu trữ dữ liệu trong thời gian lên đến 365 ngày nên bạn có thể chạy ứng dụng kiểm toán sau ứng dụng thanh toán lên đến 365 ngày.

Bạn nên sử dụng Amazon SQS trong những trường hợp có yêu cầu tương tự như sau:

Ngữ nghĩa gửi tin nhắn (chẳng hạn như ack/fail ở cấp độ tin nhắn) và hết thời gian chờ có khả năng xem được. Ví dụ: bạn có hàng đợi các mục công việc và muốn theo dõi quá trình hoàn tất thành công của từng mục một cách độc lập. Amazon SQS theo dõi ack/fail, nên ứng dụng không phải duy trì điểm kiểm tra/con trỏ cố định. Amazon SQS sẽ xóa các thông điệp đã được xác nhận và phân phối lại các thông điệp bị lỗi sau khi hết thời gian chờ có khả năng xem được đã cấu hình.

Độ trễ tin nhắn riêng. Ví dụ: bạn có hàng đợi tác vụ và cần lập lịch các tác vụ có độ trễ riêng. Với Amazon SQS, bạn có thể cấu hình từng tin nhắn có độ trễ lên đến 15 phút.

Tăng linh hoạt khả năng chạy đồng thời/thông lượng ở thời gian đọc. Ví dụ: bạn có một hàng đợi công việc và muốn thêm nhiều trình đọc đến khi hết tồn đọng. Với Kinesis Data Streams, bạn có thể mở rộng quy mô tới đủ số lượng phân đoạn (tuy nhiên, hãy lưu ý rằng bạn sẽ cần cung cấp đủ số phân đoạn từ trước).

Tận dụng khả năng của Amazon SQS để thay đổi quy mô một cách minh bạch. Ví dụ: bạn lưu bộ đệm các yêu cầu và các thay đổi về tải do các đợt tăng đột biến tải không thường xuyên hoặc sự tăng trưởng tự nhiên trong hoạt động kinh doanh. Vì mỗi yêu cầu đã lưu bộ đệm mà có thể được xử lý độc lập nên Amazon SQS có thể thay đổi quy mô một cách minh bạch để xử lý tải mà không cần cung cấp hướng dẫn từ bạn.

Tìm hiểu thêm về giá của Amazon Kinesis Data Streams

Truy cập trang giá
Bạn đã sẵn sàng để bắt đầu chưa?
Đăng ký
Bạn có thêm câu hỏi?
Liên hệ với chúng tôi