Thông tin chung

Hỏi: Luồng dữ liệu Amazon Kinesis là gì?

Với Luồng dữ liệu Kinesis, 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 dữ liệu truyền liên tục 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, bản ghi ứ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.

Hỏi: Luồng dữ liệu Kinesis thay tôi quản lý những gì?

Luồng dữ liệu Kinesis 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 liên tục 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.

Hỏi: Luồng dữ liệu Kinesis giúp tôi làm những gì?

Luồng dữ liệu Kinesis hữu ích cho việc di chuyển nhanh dữ liệu từ đối tượng 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 chỉ số 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 bản ghi và sự kiện: Thu thập dữ liệu bản ghi 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 Dịch vụ được quản lý của Amazon dành cho Apache Flink để liên tục xử lý dữ liệu, tạo các chỉ số, hỗ trợ cho bảng thông tin trực tiếp và gửi dữ liệu tổng hợp vào các kho lưu trữ như Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3).
  • Hỗ trợ 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.

Hỏi: Làm thế nào để sử dụng Luồng dữ liệu Kinesis?

Sau khi đăng ký AWS, bạn có thể bắt đầu sử dụng Luồng dữ liệu Kinesis 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, Dịch vụ được quản lý của Amazon dành cho Apache Flink hoặc Truyền liên tục AWS Glue để nhanh chóng xử lý dữ liệu được lưu trữ trong Luồng dữ liệu Kinesis. Bạn cũng có thể xây dựng các ứng dụng tùy chỉnh chạy trên Đám mây điện toán linh hoạt của Amazon (Amazon EC2), Dịch vụ bộ chứa linh hoạt của Amazon (Amazon ECS) và Dịch vụ Kubernetes linh hoạt Amazon (Amazon EKS) bằng cách sử dụng API Amazon Kinesis hoặc Thư viện máy khách Amazon Kinesis (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).

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

Khóa phân vùng được sử dụng để cô lập và định tuyến các bản ghi tới các phân mảnh khác nhau trong luồng dữ liệu. Khóa phân vùng do đối tượng tạo dữ liệu của bạn 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

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, KPL hoặc Tác tử Amazon Kinesis.

Hỏi: Điểm khác biệt giữa PutRecord và PutRecords là 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 PutRecordPutRecords.

Hỏi: Thư viện đối tượng tạo Amazon Kinesis (KPL) là gì?

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, giúp bạn nhanh chóng đạt được thông lượng đối tượng tạo cao với lượng tài nguyên máy khách tối thiểu.

Hỏi: Tác tử Amazon Kinesis 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ừ Luồng dữ liệu Kinesis

Hỏi: Đối tượng dùng là gì và Luồng dữ liệu Kinesis cung cấp những kiểu đối tượng dùng khác nhau nào?

Đối tượng dùng 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 đối tượng dùng phân rộng tăng cường nếu bạn muốn thêm nhiều đối tượng dùng vào luồng dữ liệu của mình.

Hỏi: Làm thế nào để xử lý dữ liệu được ghi lại và lưu trữ trong Luồng dữ liệu Kinesis?

Bạn có thể sử dụng các dịch vụ được quản lý như AWS Lambda, Dịch vụ được quản lý của Amazon dành cho Apache Flink và AWS Glue để xử lý dữ liệu được lưu trữ trong Luồng dữ liệu Kinesis. 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.

Hỏi: Thư viện máy khách Amazon Kinesis (KCL) là gì?

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ư thích ứng với những thay đổi về khối lượng luồng dữ liệu, cân bằng tải cho dữ liệu truyền liên tục, đ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.

Hỏi: Làm thế nào để điều chỉnh quy mô dung lượng của Luồng dữ liệu Kinesis trong chế độ được cung cấp?

Bạn có thể tăng quy mô dung lượng luồng dữ liệu Kinesis ở chế độ được cung cấp bằng cách chia nhỏ các phân mảnh hiện có thông qua API SplitShard. Bạn có thể giảm quy mô dung lượng bằng cách hợp nhất hai phân mảnh 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, chỉ số 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.

Lưu giữ dữ liệu mở rộng và dài hạn

Hỏi: Khoảng thời gian lưu giữ được Luồng dữ liệu Kinesis 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 bắt kịp 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ữ bảy ngày cho phép bạn xử lý lại dữ liệu trong tối đa bảy ngày để giải quyết vấn đề mất dữ liệu hạ nguồn có thể xảy ra. 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 thử lại thuật toán, lấp đầy kho dữ liệu và kiểm tra.

Hỏi: Có thể sử dụng API Luồng dữ liệu Kinesis 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 đối tượng dùng tiêu chuẩn và 2.x đối với đối tượng dùng phân rộng tăng cường) để có thể sử dụng các tính năng này.

Hỏi: Luồng dữ liệu Kinesis có hỗ trợ đăng ký lược đồ không?

Có. Máy khách của Luồng dữ liệu Kinesis có thể sử dụng Sổ đăng ký lược đồ AWS Glue, một tính năng phi máy chủ của AWS Glue, thông qua KPL và KCL hoặc thông qua các API Sổ đăng ký lược đồ AWS Glue trong SDK AWS Java. Sổ đăng ký lược đồ đượ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ề Sổ đăng ký lược đồ để bắt đầu và tìm hiểu thêm.

Quản lý Luồng dữ liệu Kinesis

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 điều chỉnh quy mô lớn hơn sẽ mất nhiều thời gian hơn các yêu cầu nhỏ hơn.

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 điều chỉnh quy mô tự động xảy ra trong chế độ theo nhu cầu, thì Luồng dữ liệu Kinesis 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.

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ý Luồng dữ liệu Amazon Kinesis hiển thị các số liệu hoạt động và hiệu năng chính như thông lượng đầu vào và đầu ra dữ liệu của luồng dữ liệu Kinesis. Luồng dữ liệu Kinesis cũng tích hợp với Amazon CloudWatch để bạn có thể thu thập, xem và phân tích số liệu CloudWatch cho các luồng dữ liệu và các phân mảnh trong những luồng dữ liệu đó. Để biết thêm thông tin về số liệu của Luồng dữ liệu Kinesis, hãy xem bài viết Giám sát Luồng dữ liệu Amazon Kinesis 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 mảnh được kích hoạt chịu mức giá của Amazon CloudWatch.

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?

Luồng dữ liệu Kinesis tích hợp với Quản lý danh tính và truy cập (IAM) trong AWS, một dịch vụ hỗ trợ bạn kiểm soát một cách bảo mật 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 của bạn. Bạn cũng có thể đính kèm chính sách dựa trên tài nguyên vào luồng dữ liệu hoặc đối tượng dùng đã đăng ký để kiểm soát quyền truy cập ở cấp tài nguyên. Để biết thêm thông tin về quản lý và kiểm soát quyền truy cập luồng dữ liệu, vui lòng tham khảo Kiểm soát quyền truy cập tài nguyên Luồng dữ liệu Amazon Kinesis thông qua IAM.

Hỏi: Làm cách nào để chia sẻ quyền truy cập vào luồng dữ liệu của tôi với một tài khoản khác?

Bạn có thể sử dụng vai trò giả định của IAM hoặc chính sách dựa trên tài nguyên để chia sẻ quyền truy cập với tài khoản khác. Để chia sẻ quyền truy cập với hàm AWS Lambda liên tài khoản, hãy đính kèm chính sách dựa trên tài nguyên vào luồng dữ liệu hoặc đối tượng dùng của bạn để cấp quyền truy cập vào vai trò thực thi của hàm Lambda. Xem thêm tại Sử dụng AWS Lambda với Amazon Kinesis.

Hỏi: Làm thế nào để tạo bản ghi 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 trung tâm chi phí để có thể phân loại và theo dõi các khoản phí Luồng dữ liệu Kinesis dựa trên các trung tâm chi phí. Để biết thêm thông tin về gắn thẻ Luồng dữ liệu Amazon Kinesis, hãy xem Gắn thẻ Luồng dữ liệu Amazon Kinesis.

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 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 bằng cách 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 của Dịch vụ quản lý khóa của AWS (AWS KMS) để mã hóa dữ liệu được lưu trữ 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 phía máy khách trước khi đặt dữ liệu vào Kinesis.

Hỏi: Tôi có thể truy cập riêng tư vào các API Luồng dữ liệu Kinesis từ Đám mây riêng ảo của Amazon (Amazon 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à Luồng dữ liệu Kinesis 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:

  • Để mã hóa phía máy khách là một việc rất khó.
  • 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.
  • 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 chi phí theo tài nguyên:

Khóa:

Khóa KMS do AWS quản lý dành 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.

Hỏi: Các khu vực AWS nào cung cấp mã hóa phía máy chủ cho Luồng dữ liệu Kinesis?

Mã hóa phía máy chủ Luồng dữ liệu Kinesis được cung cấp 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).

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 SDK AWS. Để tìm hiểu thêm, xem hướng dẫn bắt đầu mã hóa phía máy chủ Luồng dữ liệu Kinesis.

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 SDK AWS, bạn có thể chọn khóa KMS mới để áp dụng cho luồng dữ liệu cụ thể.

Hỏi: Luồng dữ liệu Kinesis có sẵn ở Bậc miễn phí của AWS không?

Không. Luồng dữ liệu Kinesis 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.

Thỏa thuận mức dịch vụ

Hỏi: Thỏa thuận mức dịch vụ (SLA) của Luồng dữ liệu Kinesis đảm bảo những gì?

SLA của Luồng dữ liệu Kinesis của chúng tôi đảm bảo Phần trăm thời gian hoạt động hàng tháng đạt mức tối thiểu 99,9% cho Luồng dữ liệu Kinesis.

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 Luồng dữ liệu Kinesis theo SLA của Luồng dữ liệu Kinesis 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ó Phần trăm 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 thanh toán, vui lòng xem SLA của Luồng dữ liệu Amazon Kinesis.

Định giá và thanh toán

Hỏi: Luồng dữ liệu Kinesis có mức định giá là bao nhiêu?

Luồng dữ liệu Kinesis chỉ đơn giản định giá 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. Luồng dữ liệu Kinesis 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ể.

Hỏi: Luồng dữ liệu Kinesis có mức định giá là bao nhiêu ở 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í Phân mảnh theo giờ được xác định theo số lượng phân mảnh 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 thực 25 KB mà các đối tượng 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

Hỏi: Khi nào tôi nên sử dụng Luồng dữ liệu Kinesis và khi nào nên sử dụng Dịch vụ truyền được quản lý của Amazon dành cho Apache Kafka (Amazon MSK)?

Luồng dữ liệu Kinesis và Amazon MSK đều là những nền tảng truyền liên tục dữ liệu phổ biến giúp bạn xây dựng khối lượng công việc truyền liên tục của riêng mình để xử lý dữ liệu cho các nhu cầu chuyên biệt. Cả hai dịch vụ đều có quy mô linh hoạt, bảo mật và có độ sẵn sàng cao. Cả hai dịch vụ đều có thể được triển khai để chạy các trường hợp sử dụng truyền liên tục như phân tích bản ghi và web theo thời gian thực, cá nhân hóa trải nghiệm khách hàng, kiến trúc định hướng theo sự kiện, phân tích IoT và phát hiện gian lận theo thời gian thực. Khi lựa chọn giữa hai dịch vụ, bạn cần phải xem xét trường hợp sử dụng và yêu cầu cụ thể của mình. Sau đây là một số yếu tố cần xem xét:

Mức độ quen thuộc

  •  Nếu bạn chưa từng sử dụng các công nghệ truyền liên tục, hãy lựa chọn Luồng dữ liệu Kinesis.
  • Nếu bạn có sẵn các ứng dụng đang chạy trên Apache Kafka, hãy sử dụng MSK. MSK có sẵn chương trình di chuyển Kafka (KMP) và hướng dẫn di chuyển để giúp mang lại trải nghiệm di chuyển dễ dàng.

Ưu tiên nguồn mở

  • Nếu bạn ưu tiên sử dụng các công nghệ nguồn mở, chúng tôi khuyên bạn nên lựa chọn MSK. Cả MSK và MSK Connect đều lần lượt tương thích hoàn toàn với Apache Kafka và Kafka Connect nguồn mở.

Hỏi: Luồng dữ liệu Kinesis có điểm khác biệt gì so với Amazon SQS?

Luồng dữ liệu Kinesis cho phép xử lý truyền liên tục 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. Thư viện máy khách Amazon Kinesis (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 bộ xử lý bản ghi, qua đó giúp bạn dễ dàng hơn trong việc xây dựng nhiều ứ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ổng hợp và lọc). Dịch vụ hàng đợi đơn giản của Amazon (Amazon SQS) cung cấp hàng đợi lưu trữ đáng tin cậy và có quy mô linh hoạt cao để 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 làm việc tự động.

Hỏi: Khi nào tôi nên sử dụng Luồng dữ liệu Kinesis và khi nào nên sử dụng Amazon SQS?

Chúng tôi khuyên bạn nên sử dụng Luồng dữ liệu Kinesis trong những trường hợp sử dụng 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 có thể được xử lý độc lập nên Amazon SQS có thể điều chỉnh 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ề định giá Luồng dữ liệu Kinesis

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