ข้อมูลทั่วไป

ถาม: Amazon Kinesis Data Stream คืออะไร

Amazon Kinesis Data Stream ช่วยให้คุณสร้างแอปพลิเคชันแบบกำหนดเองที่ประมวลผลหรือวิเคราะห์ข้อมูลการสตรีมได้เมื่อต้องการใช้งานเฉพาะทาง คุณสามารถเพิ่มข้อมูลหลากหลายประเภทอย่างต่อเนื่องได้ เช่น คลิกสตรีม บันทึกของแอปพลิเคชัน และสื่อสังคมออนไลน์ลงใน Amazon Kinesis Data Stream จากแหล่งข้อมูลนับแสน ข้อมูลจะพร้อมให้ Amazon Kinesis Application อ่านและประมวลผลจากสตรีมภายในไม่กี่วินาที

ถาม: Amazon Kinesis Data Stream จัดการอะไรในนามของฉันบ้าง

Amazon Kinesis Data Stream จะจัดการโครงสร้างพื้นฐาน พื้นที่จัดเก็บ เครือข่าย และการกำหนดค่าที่จำเป็นสำหรับการสตรีมข้อมูลที่ระดับ Throughput ของข้อมูลคุณ คุณจึงไม่ต้องกังวลเรื่องการเตรียมใช้งาน การปรับใช้ การซ่อมบำรุงฮาร์ดแวร์ ซอฟต์แวร์อย่างต่อเนื่อง หรือบริการอื่นๆ สำหรับสตรีมข้อมูล นอกจากนี้ Amazon Kinesis Data Stream จะทำซ้ำข้อมูลจาก Availability Zone สามแห่ง เพื่อมอบความพร้อมใช้งานสูงและความทนทานของข้อมูลในเวลาเดียวกัน

ถาม: ฉันสามารถดำเนินการใดกับ Amazon Kinesis Data Stream ได้บ้าง

Amazon Kinesis Data Stream มีประโยชน์สำหรับการย้ายข้อมูลออกจากตัวผลิตข้อมูลอย่างรวดเร็วแล้วจึงประมวลผลข้อมูลอย่างต่อเนื่อง ซึ่งเป็นการแปลงข้อมูลก่อนปล่อยข้อมูลไปยังที่จัดเก็บข้อมูล เรียกใช้เมตริกและการวิเคราะห์แบบเรียลไทม์ หรือได้สตรีมข้อมูลที่ซับซ้อนมากขึ้นเพื่อประมวลผลเพิ่มเติม รายการต่อไปนี้เป็นสถานการณ์ทั่วไปสำหรับการใช้ Amazon Kinesis Data Stream:

  • บันทึกและการนำเข้าฟีดข้อมูลแบบเร่งด่วน: คุณสามารถทำให้ตัวผลิตข้อมูลถ่ายโอนข้อมูลไปยัง Amazon Kinesis Data Stream ได้ทันทีที่สร้างข้อมูลนั้นเพื่อป้องกันข้อมูลสูญหายในกรณีที่ตัวผลิตข้อมูลล้มเหลว แทนที่จะรอการจัดการข้อมูลเป็นชุด ตัวอย่างเช่น เพิ่มบันทึกระบบและแอปพลิเคชันไปยังสตรีมข้อมูลอย่างต่อเนื่องและบันทึกระบบและแอปพลิเคชันจะพร้อมใช้งานสำหรับการประมวลผลในไม่กี่วินาที
  • ตัววัดและการรายงานแบบเรียลไทม์: คุณสามารถแยกตัววัดและสร้างรายงานจาก Amazon Kinesis Data Stream ได้แบบเรียลไทม์ ตัวอย่างเช่น Amazon Kinesis Application สามารถจัดทำตัววัดและการรายงานสำหรับบันทึกระบบและแอปพลิเคชันได้ในขณะที่ข้อมูลกำลังสตรีมเข้ามา แทนที่จะรอเพื่อรับชุดข้อมูล
  • การวิเคราะห์ข้อมูลแบบเรียลไทม์: ด้วย Amazon Kinesis Data Stream คุณสามารถเรียกใช้การวิเคราะห์ข้อมูลการสตรีมแบบเรียลไทม์ได้ ตัวอย่างเช่น คุณสามารถเพิ่มคลิกสตรีมลงใน Amazon Kinesis Data Stream และให้ Amazon Kinesis Application เรียกใช้การวิเคราะห์แบบเรียลไทม์ ซึ่งช่วยให้คุณได้ข้อมูลเชิงลึกจากข้อมูลของคุณในเวลาไม่กี่นาทีแทนที่จะเป็นหลายชั่วโมงหรือหลายวัน
  • การประมวลผลสตรีมที่ซับซ้อน: คุณสามารถสร้าง Directed Acyclic Graph (DAG) ของ Amazon Kinesis Application และสตรีมข้อมูลได้ ในสถานการณ์นี้ Amazon Kinesis Application หนึ่งแอปขึ้นไปไปสามารถป้อนข้อมูลไปยังสตรีมข้อมูล Amazon Kinesis อื่นเพื่อนำไปประมวลผลเพิ่มเติม ทำให้เกิดการประมวลผลสตรีมเป็นขั้นๆ

ถาม: ฉันจะใช้ Amazon Kinesis Data Stream ได้อย่างไร

หลังจากที่คุณลงชื่อสมัครใช้ Amazon Web Services แล้ว คุณสามารถเริ่มใช้ Amazon Kinesis Data Stream ได้โดย:

  • การสร้าง Amazon Kinesis Data Stream ผ่านทั้ง AWS Management Console หรือการดำเนินการ CreateStream
  • การกำหนดค่าตัวผลิตข้อมูลเพื่อเพิ่มข้อมูลลงในสตรีมข้อมูลของคุณอย่างต่อเนื่อง
  • การสร้าง Amazon Kinesis Application เพื่ออ่านและประมวลผลข้อมูลจากสตรีมข้อมูลโดยใช้ Amazon Kinesis API หรือ Amazon Kinesis Client Library (KCL) อย่างใดอย่างหนึ่ง

ถาม: ขีดจำกัดของ Amazon Kinesis Data Stream มีอะไรบ้าง

Throughput ของสตรีมข้อมูล Amazon Kinesis ออกแบบมาให้ปรับขนาดได้ไม่จำกัดด้วยการเพิ่มจำนวนส่วนข้อมูลในสตรีมข้อมูล แต่มีขีดจำกัดบางรายการที่คุณควรระวังขณะที่ใช้ Amazon Kinesis Data Stream:

  • สามารถเข้าถึงบันทึกของสตรีมได้นานสุด 24 ชั่วโมงตามค่าเริ่มต้นนับจากเวลาที่เพิ่มบันทึกไปยังสตรีม ทั้งนี้ คุณสามารถเพิ่มขีดจำกัดนี้ได้สูงสุด 7 วันโดยการเปิดใช้การขยายเวลาเก็บรักษาข้อมูล
  • ขนาดสูงสุดของข้อมูลบล็อบ (เพย์โหลดข้อมูลก่อนการเข้ารหัส Base64) ในบันทึกหนึ่งรายการคือ 1 เมกะไบต์ (MB)
  • ส่วนแบ่งข้อมูลแต่ละส่วนสามารถรองรับบันทึก PUT ได้สูงสุด 1000 รายการต่อวินาที

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขีดจำกัดของ API ระดับอื่น โปรดดูที่ขีดจำกีดของ Amazon Kinesis Data Stream

ถาม: Amazon Kinesis Data Stream แตกต่างจาก Amazon SQS อย่างไร

Amazon Kinesis Data Stream ช่วยให้สามารถประมวลผลข้อมูลขนาดใหญ่ได้แบบเรียลไทม์ มีการเรียงลำดับบันทึก และมีความสามารถในการอ่านและ/หรือบันทึกการเล่นใหม่ในลำดับเดิมไปยัง Amazon Kinesis Application หลายแอป Amazon Kinesis Client Library (KCL) จะส่งบันทึกทั้งหมดของพาร์ทิชันคีย์หนึ่งๆ ไปยังตัวประมวลผลบันทึกเดียวกัน ซึ่งทำให้การสร้างแอปพลิเคชันหลายๆ แอปที่อ่านจากการสตรีมข้อมูล Amazon Kinesis เดียวกันทำได้ง่ายยิ่งขึ้น (ตัวอย่างเช่น เพื่อดำเนินการนับ การรวม และการกรอง)

Amazon Simple Queue Service (Amazon SQS) มอบคิวที่โฮสต์ไว้ซึ่งเชื่อถือได้และปรับขนาดได้มาก เพื่อจัดเก็บข้อความขณะที่ข้อความเดินทางไปมาระหว่างคอมพิวเตอร์เครื่องต่างๆ Amazon SQS ช่วยให้คุณสามารถย้ายข้อมูลระหว่างส่วนประกอบแอปพลิเคชันที่แจกจ่ายและช่วยให้คุณสร้างแอปพลิเคชันที่ประมวลผลข้อความอย่างอิสระ (ด้วยตรรกะรับรู้/ล้มเหลวของข้อความ) เช่น เวิร์กโฟลว์อัตโนมัติ

ถาม: ฉันควรใช้ Amazon Kinesis Data Stream และ Amazon SQS เมื่อใดบ้าง

เราขอแนะนำ Amazon Kinesis Data Stream เมื่อใช้สำหรับกรณีใช้งานที่มีความต้องการคล้ายกับต่อไปนี้:

  • การกำหนดเส้นทางที่เกี่ยวข้องกับบันทึกไปยังโปรเซสเซอร์บันทึกเดียวกัน (เช่นเดียวกับใน MapReduce สตรีมมิ่ง) ตัวอย่างเช่น การนับและการรวมจะง่ายกว่าเมื่อบันทึกทั้งหมดสำหรับคีย์หนึ่งๆ ได้รับการกำหนดเส้นทางไปยังโปรเซสเซอร์บันทึกเดียวกัน
  • การเรียงลำดับบันทึก ตัวอย่างเช่น คุณต้องการถ่ายโอนข้อมูลบันทึกจากโฮสต์แอปพลิเคชันไปยังโฮสต์การประมวลผล/การเก็บถาวรโดยที่ยังคงรักษาคำสั่งของรายงานบันทึกเอาไว้ด้วย
  • ความสามารถสำหรับหลายแอปพลิเคชันเพื่อใช้สตรีมเดียวกันพร้อมๆ กัน ตัวอย่างเช่น คุณมีแอปพลิเคชันหนึ่งที่อัปเดตแดชบอร์ดแบบเรียลไทม์และอีกแอปพลิเคชันหนึ่งที่เก็บข้อมูลแบบถาวรไปยัง Amazon Redshift คุณต้องการให้ทั้งสองแอปพลิเคชันใช้ข้อมูลจากสตรีมเดียวกันพร้อมกันอย่างเป็นอิสระต่อกัน
  • ความสามารถในการใช้บันทึกลำดับเดียวกันในสองสามชั่วโมงให้หลัง ตัวอย่างเช่น คุณมีแอปพลิเคชันการเรียกเก็บเงินและแอปพลิเคชันการตรวจสอบซึ่งเรียกใช้สองสามชั่วโมงหลังเรียกใช้แอปพลิเคชันการเรียกเก็บเงิน เนื่องจาก Amazon Kinesis Data Stream สามารถเก็บข้อมูลไว้ได้นานถึง 7 วัน คุณจึงสามารถเรียกใช้แอปพลิเคชันการตรวจสอบได้นานถึง 7 วันหลังเรียกใช้แอปพลิเคชันการเรียกเก็บเงินแล้ว

เราขอแนะนำ Amazon SQS เมื่อใช้สำหรับกรณีใช้งานที่มีความต้องการคล้ายกับต่อไปนี้:

  • ตรรกะของข้อความ (เช่น การรับรู้/ล้มเหลวของข้อความ) และการหมดเวลาแสดงผล ตัวอย่างเช่น คุณมีคิวรายการงานและต้องการติดตามความสำเร็จของแต่ละรายการแบบแยกกัน Amazon SQS ติดตามการรับรู้/ล้มเหลว ดังนั้นแอปพลิเคชันไม่จำเป็นต้องรักษาจุดตรวจสอบ/เคอร์เซอร์ถาวร Amazon SQS จะลบข้อความที่รับรู้แล้วและส่งข้อความที่ล้มเหลวใหม่หลังจากหมดเวลาแสดงผลที่กำหนดค่าไว้
  • ความล่าช้าของข้อความแต่ละรายการ ตัวอย่างเช่น คุณมีคิวงานและต้องกำหนดเวลางานให้แต่ละงานล่าช้าไป ด้วย Amazon SQS คุณสามารถกำหนดค่าแต่ละข้อความให้มีความล่าช้าสูงสุด 15 นาที
  • การเพิ่มขึ้นแบบไดนามิกโดยพร้อมกัน/Throughput เมื่ออ่าน ตัวอย่างเช่น คุณมีคิวงานและต้องการเพิ่มผู้อ่านมากขึ้นจนกว่าจะมีการล้างข้อมูลงานที่ยังทำไม่เสร็จ ด้วย Amazon Kinesis Data Streams คุณสามารถปรับขนาดเป็นจำนวนส่วนแบ่งข้อมูลที่มากพอได้ (แต่โปรดทราบว่าคุณจะต้องเตรียมส่วนแบ่งข้อมูลให้เพียงพอไว้ล่วงหน้า)
  • ใช้ประโยชน์จากความสามารถในการปรับขนาดของ Amazon SQS อย่างโปร่งใส ตัวอย่างเช่น คุณบัฟเฟอร์คำขอและการเปลี่ยนแปลงโหลดเนื่องจากการพุ่งสูงขึ้นเป็นครั้งคราวหรือการเติบโตตามปกติของธุรกิจ เนื่องจากคำขอที่บัฟเฟอร์แต่ละรายการสามารถดำเนินการได้อย่างอิสระ Amazon SQS จึงสามารถปรับขนาดให้โปร่งใสเพื่อจัดการกับโหลดโดยที่คุณไม่ต้องเตรียมคำชี้แจงใดๆ

แนวคิดสำคัญ

ถาม: ส่วนแบ่งข้อมูลคืออะไร

ส่วนแบ่งข้อมูลเป็นหน่วย Throughput พื้นฐานของ Amazon Kinesis Data Stream ส่วนแบ่งข้อมูลหนึ่งส่วนมีความสามารถด้านอินพุตข้อมูล 1MB/วินาทีและเอาต์พุตข้อมูล 2MB/วินาที ส่วนแบ่งข้อมูลหนึ่งส่วนสามารถรองรับการบันทึก PUT ได้สูงสุด 1000 รายการต่อวินาที คุณจะระบุจำนวนของส่วนแบ่งข้อมูลเมื่อสร้างสตรีมข้อมูล ตัวอย่างเช่น คุณสามารถสร้างสตรีมข้อมูลที่มีส่วนแบ่งข้อมูลสองส่วนได้ สตรีมข้อมูลนี้มี Throughput ด้านอินพุตข้อมูล 2MB/วินาทีและเอาต์พุตข้อมูล 4MB/วินาที ช่วยให้สามารถบันทึก PUT ได้สูงสุด 2000 รายการต่อวินาที คุณสามารถติดตามเฝ้าดูตัววัดระดับส่วนแบ่งข้อมูลใน Amazon Kinesis Data Streams และเพิ่มหรือลบส่วนแบ่งข้อมูลออกจากสตรีมข้อมูลได้แบบไดนามิก เนื่องจาก Throughput ข้อมูลของคุณจะเปลี่ยนแปลงด้วยการสร้างส่วนแบ่งสตรีมข้อมูลใหม่

ถาม: บันทึกคืออะไร

บันทึกเป็นหน่วยข้อมูลที่เก็บไว้ใน Amazon Kinesis Data Stream บันทึกประกอบด้วยหมายเลขลำดับ คีย์พาร์ติชัน และข้อมูลบล็อบ ข้อมูลบล็อบเป็นข้อมูลที่น่าสนใจซึ่งตัวผลิตข้อมูลเพิ่มไปยังสตรีมข้อมูล ขนาดสูงสุดของข้อมูลบล็อบ (เพย์โหลดข้อมูลก่อนการเข้ารหัส Base64) คือ 1 เมกะไบต์ (MB)

ถาม: คีย์พาร์ติชันคืออะไร

มีการใช้คีย์พาร์ติชันเพื่อแยกและกำหนดเส้นทางบันทึกไปยังส่วนแบ่งข้อมูลต่างๆ ของสตรีมข้อมูล คีย์พาร์ติชันได้รับการระบุโดยตัวผลิตข้อมูลขณะที่เพิ่มข้อมูลไปยัง Amazon Kinesis Data Stream ตัวอย่างเช่น สมมติว่าคุณมีสตรีมข้อมูลพร้อมส่วนแบ่งข้อมูลสองส่วน (ส่วนแบ่งข้อมูลที่ 1 และส่วนแบ่งข้อมูลที่ 2) คุณสามารถกำหนดค่าตัวผลิตข้อมูลให้ใช้คีย์พาร์ติชันสองคีย์ได้ (คีย์ A และคีย์ B) เพื่อให้เพิ่มบันทึกทั้งหมดที่มีคีย์ A ลงในส่วนแบ่งข้อมูลที่ 1 และเพิ่มบันทึกทั้งหมดที่มีคีย์ B ลงในส่วนแบ่งข้อมูลที่ 2

ถาม: หมายเลขลำดับคืออะไร

หมายเลขลำดับคือตัวระบุที่ไม่ซ้ำกันสำหรับแต่ละบันทึก Amazon Kinesis จะมอบหมายหมายเลขลำดับเมื่อตัวผลิตข้อมูลเรียกใช้การดำเนินการ PutRecord หรือ PutRecords เพื่อเพิ่มข้อมูลไปยัง Amazon Kinesis Data Stream หมายเลขลำดับสำหรับคีย์พาร์ติชันเดียวกันจะเพิ่มขึ้นตามช่วงเวลา ยิ่งช่วงเวลาระหว่างคำขอ PutRecord หรือ PutRecords ยาวนานขึ้นเท่าไร หมายเลขลำดับก็จะยิ่งมากขึ้นเท่านั้น

การสร้างสตรีมข้อมูล

ถาม: ฉันจะสร้าง Amazon Kinesis Data Stream ได้อย่างไร

หลังลงชื่อสมัครใช้ Amazon Web Services คุณสามารถสร้าง Amazon Kinesis Data Stream ผ่านทาง Amazon Kinesis Management Console หรือการดำเนินการ CreateStream ก็ได้

ถาม: ฉันจะตัดสินใจเรื่อง Throughput ของ Amazon Kinesis Data Stream ได้อย่างไร

Throughput ของ Amazon Kinesis Data Stream จะพิจารณาจากจำนวนส่วนแบ่งข้อมูลภายในสตรีมข้อมูลนั้น ทำตามขั้นตอนต่อไปนี้เพื่อประมาณจำนวนส่วนแบ่งข้อมูลเริ่มต้นที่สตรีมข้อมูลต้องการ โปรดทราบว่าคุณสามารถปรับจำนวนส่วนแบ่งข้อมูลภายในสตรีมข้อมูลได้แบบไดนามิกด้วยการแบ่งอีกครั้ง

  1. ประมาณขนาดโดยเฉลี่ยของบันทึกที่เขียนไปยังสตรีมข้อมูลเป็นกิโลไบต์ (KB) ปัดเศษเป็น 1 KB ให้ใกล้เคียงที่สุด (average_data_size_in_KB)
  2. ประมาณจำนวนบันทึกที่เขียนไปยังสตรีมข้อมูลต่อวินาที (number_of_records_per_second)
  3. ระบุจำนวน Amazon Kinesis Application ที่ใช้ข้อมูลจากสตรีมข้อมูลพร้อมกันและที่ใช้แยกจากกัน (number_of_consumers)
  4. คำนวณแบนด์วิธการเขียนขาเข้าเป็น KB (incoming_write_bandwidth_in_KB) ซึ่งเท่ากับ average_data_size_in_KB คูณด้วย number_of_records_per_seconds
  5. คำนวณแบนด์วิธการอ่านขาออกเป็น KB (outgoing_read_bandwidth_in_KB) ซึ่งเท่ากับ incoming_write_bandwidth_in_KB คูณด้วย number_of_consumers

จากนั้นคุณสามารถคำนวณจำนวนส่วนแบ่งข้อมูลเริ่มต้น (number_of_shards) ที่สตรีมข้อมูลต้องการได้โดยใช้สูตรต่อไปนี้:

number_of_shards = สูงสุด (incoming_write_bandwidth_in_KB / 1000, outgoing_read_bandwidth_in_KB / 2000)

ถาม: Throughput ขั้นต่ำที่ฉันสามารถร้องขอสำหรับ Amazon Kinesis Data Stream ได้คือเท่าไหร่

Throughput ของ Amazon Kinesis Data Stream จะแบ่งตามหน่วยของส่วนแบ่งข้อมูล ส่วนแบ่งข้อมูลเดียวคือ Throughput ที่เล็กที่สุดของสตรีมข้อมูลซึ่งมีการอินพุตข้อมูล 1MB/วินาทีและเอาต์พุตข้อมูล 2MB/วินาที

ถาม: Throughput สูงสุดที่ฉันสามารถร้องขอสำหรับ Amazon Kinesis Data Stream ได้คือเท่าไหร่

Throughput ของ Amazon Kinesis Data Stream ได้รับการออกแบบมาเพื่อปรับขนาดโดยไม่มีขีดจำกัด แต่ละบัญชีสามารถจัดเก็บส่วนแบ่งข้อมูลได้ 10 ส่วนต่อหนึ่งภูมิภาคตามค่าเริ่มต้น คุณสามารถใช้แบบฟอร์มจำกัด Amazon Kinesis Data Stream เพื่อขอรับส่วนแบ่งข้อมูลมากกว่า 10 ส่วนในภูมิภาคเดียวได้

ถาม: ขนาดของการบันทึกสามารถส่งผลต่อ Throughput ของ Amazon Kinesis Data Stream ได้อย่างไร

ส่วนแบ่งข้อมูลมีอัตราการอินพุตข้อมูล 1MB/วินาทีและรองรับการบันทึก PUT สูงสุด 1000 รายการต่อวินาที ดังนั้นหากขนาดบันทึกน้อยกว่า 1KB อัตราการอินพุตข้อมูลจริงของส่วนแบ่งข้อมูลจะน้อยกว่า 1MB/วินาที ซึ่งจำกัดด้วยจำนวนบันทึก PUT สูงสุดต่อวินาที

การเพิ่มข้อมูลไปยัง Amazon Kinesis Data Stream

ถาม: ฉันจะเพิ่มข้อมูลไปยัง Amazon Kinesis Data Stream ของฉันได้อย่างไร

คุณสามารถเพิ่มข้อมูลไปยัง Amazon Kinesis Data Stream ทางการดำเนินการ PutRecord และ PutRecords, Amazon Kinesis Producer Library (KPL) หรือ Amazon Kinesis Agent

ถาม: ความแตกต่างระหว่าง PutRecord และ PutRecords คืออะไร

การดำเนินการ PutRecord ช่วยให้สามารถบันทึกข้อมูลเดี่ยวภายในการเรียกใช้ API ได้และการดำเนินการ PutRecords ช่วยให้สามารถบันทึกข้อมูลหลายรายการภายในการเรียกใช้ API ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการดำเนินการ PutRecord และ PutRecords โปรดดู PutRecord และ PutRecords

ถาม: Amazon Kinesis Producer Library (KPL) คืออะไร

Amazon Kinesis Producer Library (KPL) เป็นไลบรารีที่กำหนดค่าได้มากและใช้งานง่ายซึ่งช่วยให้คุณใส่ข้อมูลไปยัง Amazon Kinesis Data Stream KPL แสดงอินเทอร์เฟซแบบอะซิงโครนัสที่เรียบง่ายและเชื่อถือได้ ที่ช่วยให้คุณสามารถบรรลุ Throughput ของตัวผลิตได้อย่างรวดเร็วโดยใช้ทรัพยากรของไคลเอ็นต์ที่น้อยที่สุด

ถาม: ฉันสามารถใช้ภาษาการเขียนโปรแกรมหรือแพลตฟอร์มใดเพื่อใช้เข้าถึง Amazon Kinesis API ได้บ้าง

Amazon Kinesis API พร้อมให้บริการใน Amazon Web Services SDK สำหรับรายชื่อภาษาการเขียนโปรแกรมหรือแพลตฟอร์มสำหรับ Amazon Web Services SDK โปรดดูที่เครื่องมือสำหรับ Amazon Web Services

ถาม: ภาษาเขียนโปรแกรมใดที่มีใน Amazon Kinesis Producer Library (KPL)

คุณสามารถสร้างหลักของ Amazon Kinesis Producer Library (KPL) ด้วยโมดูล C++ และจากนั้นคอมไพล์ให้ทำงานกับแพลตฟอร์มใดๆ ก็ได้ด้วยคอมไพเลอร์ C++ รุ่นใหม่ๆ ตอนนี้มีไลบราลีพร้อมใช้งานในอินเทอร์เฟซ Java เรากำลังหาวิธีเพิ่มการรองรับให้แก่ภาษาการเขียนโปรแกรมอื่นๆ อีก

ถาม: Amazon Kinesis Agent คืออะไร

Amazon Kinesis Agent คือแอปพลิเคชัน Java ที่สร้างมาแล้วซึ่งนำเสนอวิธีรวบรวมและส่งข้อมูลไปยัง Amazon Kinesis Data Stream ของคุณ คุณสามารถติดตั้งเอเจนต์ในสภาพแวดล้อมเซิร์ฟเวอร์ที่ใช้ Linux เช่น เว็บเซิร์ฟเวอร์ เซิร์ฟเวอร์บันทึก และเซิร์ฟเวอร์ฐานข้อมูล เอเจนต์จะตรวจสอบบางไฟล์และส่งข้อมูลไปยังสตรีมข้อมูลของคุณอย่างต่อเนื่อง สำหรับข้อมูลเพิ่มเติม โปรดดูการเขียนด้วยเอเจนต์

ถาม: แพลตฟอร์มใดบ้างที่ Amazon Kinesis Agent รองรับ

Amazon Kinesis Agent ขณะนี้รองรับ Amazon Linux หรือ Red Hat Enterprise Linux

ถาม: ฉันจะดาวน์โหลด Amazon Kinesis Agent ได้จากที่ใด

คุณสามารถดาวน์โหลดและติดตั้ง Amazon Kinesis Agent โดยใช้คำสั่งและลิงก์ต่อไปนี้:

บน Amazon Linux: sudo yum install –y aws-kinesis-agent

บน Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

จาก GitHub: awlabs/amazon-kinesis-agent

ถาม: ฉันจะใช้ Amazon Kinesis Agent ได้อย่างไร

หลังจากติดตั้ง Amazon Kinesis Agent บนเซิร์ฟเวอร์ของคุณแล้ว คุณจะกำหนดค่าเอเจนต์ดังกล่าวเพื่อตรวจสอบบางไฟล์บนดิสก์และส่งข้อมูลไปยังสตรีมข้อมูลของคุณอย่างต่อเนื่องได้ สำหรับข้อมูลเพิ่มเติม โปรดดูการเขียนด้วยเอเจนต์

ถาม: จะเกิดอะไรขึ้นหากใช้บริการเกินข้อจำกัดด้านความจุของ Amazon Kinesis Data Stream ขณะที่ตัวผลิตข้อมูลเพิ่มข้อมูลไปยังสตรีมข้อมูล

ขีดจำกัดความจุของสตรีมข้อมูล Amazon Kinesis กำหนดด้วยจำนวนของส่วนแบ่งข้อมูลในสตรีมข้อมูลนั้นๆ ขีดจำกัดความจุอาจเกินเพราะมี Throughput ข้อมูลหรือจำนวนบันทึก PUT เกิน ขณะที่เกินขีดจำกัดความจุ การเรียก Put data จะถูกปฏิเสธโดยมีข้อยกเว้น ProvisionedThroughputExceeded หากเป็นเพราะอัตราการอินพุตข้อมูลของสตรีมข้อมูลที่เพิ่มขึ้นชั่วคราว ให้ลองอีกครั้งโดยตัวผลิตข้อมูลจะทำให้การส่งคำขอเสร็จสมบูรณ์ในท้ายที่สุด หากเป็นเพราะอัตราการอินพุตข้อมูลของสตรีมข้อมูลที่เพิ่มขึ้นอย่างต่อเนื่อง คุณควรเพิ่มจำนวนส่วนแบ่งข้อมูลในสตรีมข้อมูลของคุณเพื่อให้มีความจุเพียงพอสำหรับการเรียกใช้การส่งข้อมูลให้สำเร็จอย่างสม่ำเสมอ สำหรับทั้งสองกรณีดังกล่าว ตัววัด Amazon CloudWatch จะช่วยให้คุณสามารถเรียนรู้เกี่ยวกับการเปลี่ยนแปลงของอัตราการอินพุตข้อมูลของสตรีมข้อมูลและการเกิดข้อยกเว้น ProvisionedThroughputExceeded

ถาม: ระบบจะนับข้อมูลใดบ้างเพื่อเทียบกับ Throughput ข้อมูลของ Amazon Kinesis Data Stream ระหว่างการเรียกใช้ PutRecord หรือ PutRecords

จำเป็นต้องมีข้อมูลบล็อบ คีย์พาร์ติชัน และชื่อสตรีมข้อมูลของ PutRecord หรือ PutRecords จะถูกนับขนาดของข้อมูลบล็อบ (ก่อนการเข้ารหัส Base64) และคีย์พาร์ติชันเทียบกับ Throughput ข้อมูลของ Amazon Kinesis Data Stream ซึ่งกำหนดโดยจำนวนส่วนแบ่งข้อมูลภายในสตรีมข้อมูล

การกระจายที่ปรับปรุงแล้ว

ถาม: การกระจายที่ปรับปรุงแล้วคืออะไร

การกระจายออกที่ปรับปรุงแล้วเป็นคุณสมบัติที่เป็นตัวเลือกสำหรับตัวรับ Kinesis Data Streams โดยจะเพิ่มเส้นทางเชิงลอจิกขนาด 2 MB/วินาที เข้าไประหว่างตัวรับกับส่วนแบ่งข้อมูล คุณสมบัตินี้ช่วยให้ลูกค้าสามารถปรับจำนวนตัวรับที่อ่านจากสตรีมข้อมูลพร้อมกัน ขณะเดียวกันก็รักษาประสิทธิภาพระดับสูงไว้ได้

ถาม: ผู้ใช้จะใช้การกระจายที่ปรับปรุงแล้วได้อย่างไร

ผู้ใช้ต้องลงทะเบียนบริการ Kinesis Data Stream เป็นอย่างแรก การลงทะเบียนผู้ใช้จะเปิดใช้งานการกระจายที่ปรับปรุงแล้วตามค่าเริ่มต้น หากคุณใช้ KCL อยู่ KCL เวอร์ชัน 2.x จะดูแลการลงทะเบียนผู้ใช้ของคุณโดยอัตโนมัติและใช้ชื่อแอปพลิเคชัน KCL เป็นชื่อผู้ใช้ เมื่อลงทะเบียนแล้ว ผู้ใช้ที่ลงทะเบียนทั้งหมดจะได้เส้นทางการกระจายที่ปรับปรุงแล้วเชิงลอจิกที่มีการเตรียมใช้งานไว้ให้ จากนั้นผู้ใช้จะใช้ HTTP/2 SubscribeToShard API เพื่อดึงข้อมูลภายในเส้นทางเหล่านี้ ขณะนี้ HTTP/1 GetRecords API ไม่รองรับการกระจายที่ปรับปรุงแล้ว ดังนั้นคุณจะต้องอัปเกรดเป็น KCL 2.x หรือใช้ทางเลือกในการลงทะเบียนผู้ใช้ของคุณและให้ผู้ใช้เรียกใช้ SubscribeToShard API

ถาม: ผู้ใช้จะใช้ประโยชน์จากการกระจายที่ปรับปรุงแล้วได้อย่างไร

ผู้ใช้จะใช้ประโยชน์จากการกระจายที่ปรับปรุงแล้วโดยการดึงข้อมูลด้วย SubscribeToShard API มีการใช้ชื่อของผู้ใช้ที่ลงทะเบียนภายใน SubscriptionToShard API ซึ่งจะนำไปสู่การใช้ประโยชน์จากสิทธิประโยชน์การกระจายที่ปรับปรุงแล้วให้แก่ผู้ใช้ที่ลงทะเบียน

ถาม: ฉันควรใช้การกระจายที่ปรับปรุงแล้วเมื่อใด
คุณควรใช้การกระจายที่ปรับปรุงแล้วหากคุณมีหรือคาดว่าจะมีผู้ใช้หลายรายที่ดึงข้อมูลจากสตรีมแบบคู่ขนาน หรือหากคุณมีผู้ใช้อย่างน้อยหนึ่งรายขึ้นไปที่ต้องใช้ SubscribeToShard API เพื่อให้ความเร็วในการจัดส่งข้อมูลย่อย 200 มิลลิวินาทีระหว่างตัวผลิตและผู้ใช้

ถาม: ฉันมีจะให้ผู้ใช้บางรายได้ใช้การกระจายที่ปรับปรุงแล้วในขณะที่ไม่ให้บางคนใช้ได้หรือไม่

ได้ คุณสามารถให้ผู้ใช้หลายรายใช้การกระจายที่ปรับปรุงแล้วและไม่ให้บางคนใช้ในเวลาเดียวกันได้ การใช้การกระจายออกที่ปรับปรุงแล้วจะไม่ส่งผลต่อขีดจำกัดส่วนแบ่งข้อมูลสำหรับการใช้ GetRecords แบบเดิม

ถาม: มีข้อจำกัดเกี่ยวกับจำนวนผู้ใช้ที่ใช้การกระจายที่ปรับปรุงแล้วในสตรีมที่กำหนดหรือไม่

ข้อจำกัดตามค่าเริ่มต้นในการใช้การกระจายที่ปรับปรุงแล้วต่อสตรีมข้อมูลคือให้มีผู้ใช้ได้ไม่เกิน 5 คน หากต้องการให้มีผู้ใช้มากกว่า 5 คน โปรดส่งคำขอเพิ่มข้อจำกัดทาง AWS Support โปรดอย่าลืมว่าคุณสามารถให้ผู้ใช้มากกว่า 5 คนอ่านจากสตรีมได้โดยให้ผู้ใช้ 5 คนดังกล่าวใช้การกระจายที่ปรับปรุงแล้วในขณะที่ผู้ใช้รายอื่นต้องไม่ใช้การกระจายที่ปรับปรุงแล้วในเวลาเดียวกันนั้น

ถาม: ตัวรับจะลงทะเบียนเพื่อใช้การกระจายออกที่ปรับปรุงแล้วและ HTTP/2 SubscribeToShard API ได้อย่างไร

เราขอแนะนำให้ใช้ KCL 2.x ซึ่งจะลงทะเบียนผู้ใช้ของคุณโดยอัตโนมัติและใช้ทั้งการกระจายที่ปรับปรุงแล้วและ HTTP/2 SubscribeToShard API มิฉะนั้น คุณสามารถลงทะเบียนผู้ใช้โดยใช้ RegisterStreamConsumer API ด้วยตนเองจากนั้นคุณสามารถใช้ SubscribeToShard API กับชื่อผู้ใช้ที่คุณลงทะเบียนได้

ถาม: มีค่าใช้จ่ายที่เกี่ยวข้องกับการใช้การกระจายที่ปรับปรุงแล้วหรือไม่

มีค่าใช้จ่ายรายชั่วโมงแบบตามต้องการสำหรับส่วนแบ่งข้อมูลในสตรีมและตัวรับ (ชั่วโมงตัวรับ-ส่วนแบ่งข้อมูล) ที่ลงทะเบียนเพื่อใช้การกระจายออกที่ปรับปรุงแล้ว เพิ่มเติมจากค่าใช้จ่ายในการดึงข้อมูลแต่ละ GB โปรดดูรายละเอียดเพิ่มเติมที่หน้าราคา Kinesis Data Stream

ถาม: คำนวณชั่วโมงส่วนแบ่งข้อมูลผู้ใช้อย่างไร

คำนวณชั่วโมงส่วนแบ่งข้อมูลผู้ใช้โดยการคูณจำนวนผู้ใช้สตรีมที่ลงทะเบียนกับจำนวนส่วนแบ่งข้อมูลในสตรีมนั้น ตัวอย่างเช่น หากค่าใช้จ่ายชั่วโมงส่วนแบ่งข้อมูลผู้ใช้คือ 0.015 USD สำหรับสตรีมข้อมูล ส่วนแบ่งข้อมูล 10 ส่วน ผู้ใช้รายนี้ซึ่งใช้การกระจายที่ปรับปรุงแล้วจะสามารถอ่านได้จากส่วนแบ่งข้อมูล 10 ส่วนและทำให้เสียค่าใช้จ่ายชั่วโมงส่วนแบ่งข้อมูลผู้ใช้ 0.15 USD ต่อชั่วโมง (ผู้ใช้ 1 คน x ส่วนแบ่งข้อมูล 10 ส่วน x 0.015 USD ต่อชั่วโมงส่วนแบ่งข้อมูลผู้ใช้) หากมีผู้ใช้ที่ลงทะเบียนสองคนเพื่อใช้การกระจายที่ปรับปรุงแล้วอย่างต่อเนื่อง จะมีการเรียกเก็บค่าบริการชั่วโมงส่วนแบ่งข้อมูลผู้ใช้ทั้งหมด 0.30 USD ต่อชั่วโมง (ผู้ใช้ 2 คน x ส่วนแบ่งข้อมูล 10 ส่วน x 0.015 USD)

ถาม: การเรียกเก็บค่าบริการชั่วโมงส่วนแบ่งข้อมูลผู้ใช้สำหรับการกระจายที่ปรับปรุงแล้วจะแบ่งไปตามส่วนโดยอัตโนมัติหรือไม่หากฉันยกเลิกหรือเริ่มผู้ใช้ภายในหนึ่งชั่วโมงนั้น

ใช่ คุณจะชำระเงินเฉพาะส่วนตามสัดส่วนของชั่วโมงที่ผู้ใช้ลงทะเบียนเพื่อใช้การกระจายที่ปรับปรุงแล้ว

ถาม: จะมีการเรียกเก็บค่าบริการสำหรับการดึงข้อมูลการกระจายที่ปรับปรุงแล้วอย่างไร

คุณจะจ่ายอัตราขั้นต่ำต่อ GB ที่วัดต่อไบต์ข้อมูล ซึ่งดึงข้อมูลโดยผู้ใช้ที่ใช้การกระจายที่ปรับปรุงแล้ว ไม่มีการสรุปเพย์โหลดหรือขั้นต่ำในการส่งมอบ

ถาม: ฉันจำเป็นต้องเปลี่ยนตัวผลิตหรือสตรีมข้อมูลของฉันเพื่อใช้การกระจายที่ปรับปรุงแล้วหรือไม่

ไม่จำเป็น สามารถใช้งานการกระจายออกที่ปรับแต่งได้โดยไม่ส่งผลกระทบต่อตัวผลิตข้อมูลหรือสตรีมข้อมูล

การอ่านและการประมวลผลข้อมูลจาก Kinesis Data Stream

ถาม: Amazon Kinesis Application คืออะไร

Amazon Kinesis Application เป็นผู้ใช้ข้อมูลที่อ่านและประมวลผลข้อมูลจาก Amazon Kinesis Data Stream คุณสามารถสร้างแอปพลิเคชันของคุณโดยใช้ Amazon Kinesis Data Analytics, Amazon Kinesis API หรือ Amazon Kinesis Client Library (KCL) อย่างใดอย่างหนึ่ง

ถาม: Amazon Kinesis Client Library (KCL) คืออะไร

Amazon Kinesis Client Library (KCL) สำหรับ Java | Python | Ruby | Node.js | .NET คือไลบรารีที่สร้างไว้ล่วงหน้าซึ่งช่วยให้คุณสร้าง Amazon Kinesis Application ได้ง่ายเพื่ออ่านและประมวลผลข้อมูลจาก Amazon Kinesis Data Stream

KCL จัดการกับปัญหาที่ซับซ้อน เช่น การปรับตัวให้เข้ากับการเปลี่ยนแปลงปริมาณของสตรีมข้อมูล การบาลานซ์โหลดสตรีมข้อมูล การประสานงานบริการที่มีการกระจาย และการประมวลผลข้อมูลที่ทนทานต่อความเสียหาย KCL ทำให้คุณสามารถมุ่งเน้นเหตุผลทางธุรกิจขณะที่สร้างแอปพลิเคชัน KCL 2.x รองรับทั้ง HTTP/1 GetRecords และ HTTP/2 SubscribeToShard API ที่มีการกระจายออกที่ปรับปรุงแล้วสำหรับการดึงข้อมูลจากสตรีม KCL 1.x ไม่รองรับ SubscribeToShard API หรือการกระจายที่ปรับปรุงแล้ว

ถาม: ฉันจะอัปเกรดจาก KCL 1.x เป็น 2.x เพื่อใช้ SubscriptionToShard และการกระจายที่ปรับปรุงแล้วได้อย่างไร

ไปที่เอกสารประกอบของผู้ใช้ Kinesis Data Stream เพื่อเรียนรู้วิธีอัปเกรดจาก KCL 1.x เป็น KCL 2.x

ถาม: SubscribeToShard API คืออะไร

SubscribeToShard API เป็น API การสตรีมที่มีประสิทธิภาพสูงซึ่งจะดึงข้อมูลจากส่วนแบ่งข้อมูลไปยังผู้ใช้ผ่านการเชื่อมต่อแบบต่อเนื่องโดยไม่มีวงจรการร้องขอจากลูกค้า SubscribeToShard API ใช้โปรโตคอล HTTP/2 เพื่อส่งมอบข้อมูลให้แก่ผู้ใช้ที่ลงทะเบียนตลอดเวลาที่มีข้อความใหม่เข้ามาที่ส่วนแบ่งข้อมูล โดยปกติจะได้รับใน 70 มิลลิวินาที ซึ่งส่งมอบเร็วกว่า GetRecords API ประมาณ 65% ตัวรับจะได้รับการจัดส่งที่รวดเร็ว แม้ขณะมีตัวรับที่ลงทะเบียนหลายตัวกำลังอ่านจากส่วนข้อมูลเดียวกัน

ถาม: ฉันใช้ SubscriptionToShard โดยไม่ใช้การกระจายที่ปรับปรุงแล้วได้หรือไม่

ไม่ได้ SubscriptionToShard จำเป็นต้องใช้การกระจายออกที่ปรับปรุงแล้ว ซึ่งหมายความว่าคุณต้องลงทะเบียนผู้ใช้กับบริการ Kinesis Data Streams ก่อนจึงจะสามารถใช้ SubscriptionToShard ได้

ถาม: การเชื่อมต่อแบบต่อเนื่องของ SubscriptionToShard จะใช้เวลานานเท่าใด

การเชื่อมต่อแบบต่อเนื่องอาจใช้เวลาไม่เกิน 5 นาที

ถาม: Kinesis Client Library (KCL) รองรับ SubscriptionToShard หรือไม่

มีการรองรับ รุ่น 2.x ของ KCL ใช้ SubscriptionToShard และการกระจายที่ปรับปรุงแล้วเพื่อดึงข้อมูลที่มีประสิทธิภาพสูงจาก Kinesis Data Stream

ถาม: มีค่าใช้จ่ายที่เกี่ยวข้องกับการใช้ SubscriptionToShard หรือไม่

ไม่ ไม่ต้องเสียค่าใช้จ่ายใดๆ เพิ่มเติมสำหรับ SubscriptionToShard แต่คุณต้องใช้ SubscriptionToShard กับการกระจายที่ปรับปรุงแล้วซึ่งจะมีค่าใช้จ่ายรายชั่วโมงเพิ่มเติมสำหรับการรวมส่วนแบ่งข้อมูลผู้ใช้แต่ละรายและข้อมูลที่ส่งมอบโดยการกระจายที่ปรับปรุงแล้วต่อ GB

ถาม: ฉันจำเป็นต้องใช้การกระจายที่ปรับปรุงแล้ว หากต้องการใช้ SubscriptionToShard หรือไม่

ใช่ คุณจำเป็นต้องลงทะเบียนผู้ใช้ของคุณและการลงทะเบียนจะเปิดใช้งานการกระจายที่ปรับปรุงแล้ว เพื่อใช้ SubscriptionToShard ผู้ใช้ของคุณจะใช้ประโยชน์การกระจายที่ปรับปรุงแล้วโดยอัตโนมัติตามค่าเริ่มต้นเมื่อดึงข้อมูลผ่านทาง SubscriptionToShard

ถาม: Amazon Kinesis Connector Library คืออะไร

Amazon Kinesis Connector Library คือไลบรารีที่สร้างไว้ล่วงหน้าซึ่งช่วยให้คุณสามารถรวม Amazon Kinesis Data Stream เข้ากับบริการ AWS อื่นๆ และเครื่องมือของผู้ให้บริการอื่นได้อย่างง่ายดาย ต้องมี Amazon Kinesis Client Library (KCL) สำหรับ Java | Python | Ruby | Node.js | .NET เพื่อใช้ Amazon Kinesis Connector Library ไลบรารีเวอร์ชันปัจจุบันมอบการเชื่อมต่อไปยัง Amazon DynamoDB, Amazon Redshift, Amazon S3 และ Elasticsearch นอกจากนี้ ไลบรารียังมีตัวเชื่อมต่อตัวอย่างแต่ละประเภท รวมทั้งไฟล์สร้าง Antache Ant สำหรับการเรียกใช้ตัวอย่าง

ถาม: Amazon Kinesis Storm Spout คืออะไร

Amazon Kinesis Storm Spout คือไลบรารีที่สร้างไว้ล่วงหน้าซึ่งช่วยให้คุณรวม Amazon Kinesis Data Streams กับ Apache Storm ได้อย่างง่ายดาย Amazon Kinesis Storm Spout เวอร์ชันปัจจุบันดึงข้อมูลจาก Amazon Kinesis Data Stream และกระจายเป็นทูเปิล คุณจะเพิ่มสเปาท์ไปยังโทโพโลยี Storm ของคุณเพื่อใช้ประโยชน์จาก Amazon Kinesis Data Streams ในฐานะบริการเล่นซ้ำ จัดเก็บข้อมูล และบันทึกสตรีมที่น่าเชื่อถือและปรับขนาดได้

ถาม: Amazon Kinesis Client Library (KCL), Amazon Kinesis Connector Library และ Amazon Kinesis Storm Spout มีพร้อมให้บริการเป็นภาษาในการเขียนโปรแกรมใดบ้าง

Amazon Kinesis Client Library (KCL) ปัจจุบันพร้อมให้ใช้ใน Java, Python, Ruby, Node.js และ .NET Amazon Kinesis Connector Library และ Amazon Kinesis Storm Spout พร้อมให้ใช้ใน Java เรากำลังหาวิธีเพิ่มการรองรับให้แก่ภาษาการเขียนโปรแกรมอื่นๆ อีก

ถาม: ฉันต้องใช้ Amazon Kinesis Client Library (KCL) สำหรับ Amazon Kinesis Application ของฉันหรือไม่

ไม่ต้อง คุณสามารถใช้ Amazon Kinesis API เพื่อสร้าง Amazon Kinesis Application ได้ แต่เราขอแนะนำให้ใช้ Amazon Kinesis Client Library (KCL) สำหรับ Java | Python | Ruby | Node.js | .NET หากทำได้เพราะ KCL ทำงานยากๆ หนักๆ ที่เกี่ยวข้องกับการดำเนินการกับสตรีมแบบกระจายได้ทำให้มีประสิทธิผลมากขึ้นในการพัฒนาแอปพลิเคชัน

ถาม: Amazon Kinesis Client Library (KCL) มีปฏิสัมพันธ์กับ Amazon Kinesis Application อย่างไร

Amazon Kinesis Client Library (KCL) สำหรับ Java | Python | Ruby | Node.js | .NET จะทำหน้าที่เป็นตัวกลางระหว่าง Amazon Kinesis Data Stream และ Amazon Kinesis Application ของคุณ KCL ใช้อินเทอร์เฟซ IRecordProcessor เพื่อสื่อสารกับแอปพลิเคชันของคุณ แอปพลิเคชันของคุณจะดำเนินการกับอินเทอร์เฟซนี้และ KCL จะเรียกโค้ดแอปพลิเคชันของคุณเข้ามาโดยใช้วิธีการต่างๆ ในอินเทอร์เฟซนี้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแอปพลิเคชันด้วย KCL โปรดดูการพัฒณาแอปพลิเคชันตัวรับสำหรับ Amazon Kinesis โดยใช้ Amazon Kinesis Client Library

ถาม: ตัวปฏิบัติการและโปรเซสเซอร์การบันทึกที่สร้างโดย Amazon Kinesis Client Library (KCL) มีอะไรบ้าง

Amazon Kinesis Application มีหลายอินสแตนซ์แอปพลิเคชันได้และตัวปฏิบัติการคือหน่วยประมวลผลที่แมปไปยังแต่ละอินสแตนซ์ของแอปพลิเคชัน โปรเซสเซอร์การบันทึกเป็นหน่วยประมวลผลที่ประมวลผลข้อมูลจากส่วนแบ่งข้อมูลของ Amazon Kinesis Data Stream ตัวปฏิบัติการหนึ่งรายการจะแมปโปรเซสเซอร์การบันทึกหนึ่งรายการขึ้นไป โปรเซสเซอร์การบันทึกจะแมปส่วนแบ่งข้อมูลหนึ่งส่วนและประมวลผลบันทึกจากส่วนแบ่งข้อมูลนั้น

ในการเริ่มงาน แอปพลิเคชันจะเรียก Amazon Kinesis Client Library (KCL) เข้ามาสำหรับ Java | Python | Ruby | Node.js | .NET เพื่อสร้างอินสแตนซ์ตัวปฏิบัติการ การเรียกใช้นี้ให้ KCL พร้อมข้อมูลการกำหนดค่าสำหรับแอปพลิเคชัน เช่น ชื่อสตรีมข้อมูลและข้อมูลรับรอง AWS การเรียกใช้นี้ยังส่งผ่านการอ้างอิงไปยังการใช้งาน IRecordProcessorFactory KCL ใช้ค่า Factory นี้เพื่อสร้างตัวประมวลผลบันทึกใหม่ตามที่จำเป็นเพื่อประมวลผลข้อมูลจากสตรีมข้อมูล KCL สื่อสารกับโปรเซสเซอร์บันทึกเหล่านี้โดยใช้อินเทอร์เฟซ IRecordProcessor

ถาม: Amazon Kinesis Client Library (KCL) จะเฝ้าติดตามบันทึกข้อมูลที่ประมวลผลโดย Amazon Kinesis Application ได้อย่างไร

Amazon Kinesis Client Library (KCL) สำหรับ Java | Python | Ruby | Node.js | .NET จะสร้างตาราง Amazon DynamoDB สำหรับ Amazon Kinesis Application แต่ละรายการเพื่อเฝ้าติดตามและบำรุงรักษาข้อมูลสถานะ เช่น กิจกรรมที่แบ่งและจุดตรวจสอบหมายเลขตามลำดับ ตาราง DynamoDB ใช้ชื่อเดียวกันกับแอปพลิเคชันดังกล่าว คุณจึงต้องแน่ใจว่าชื่อแอปพลิเคชันของคุณไม่ขัดกับตาราง DynamoDB ที่มีอยู่ภายใต้บัญชีเดียวกันและภายในภูมิภาคเดียวกัน

ตัวปฏิบัติการที่เกี่ยวข้องทั้งหมดที่มีชื่อแอปพลิเคชันเดียวกันนี้จะถือว่าทำงานร่วมกันใน Amazon Kinesis Data Stream เดียวกัน หากเรียกใช้อินสแตนซ์เพิ่มเติมของรหัสแอปพลิเคชันเดียวกัน แต่มีชื่อแอปพลิเคชันอื่น ทาง KCL จะปฏิบัติต่ออินสแตนซ์ที่สองในฐานะแอปพลิเคชันที่แยกกันทั้งหมดซึ่งทำงานบนสตรีมข้อมูลเดียวกัน

โปรดทราบว่ามีการเรียกเก็บค่าบริการจากบัญชีของคุณสำหรับค่าใช้จ่ายที่เกี่ยวข้องกับตาราง Amazon DynamoDB เพิ่มเติมจากค่าใช้จ่ายที่เกี่ยวข้องกับ Amazon Kinesis Data Stream

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ KCL เฝ้าติดตามสถานะของแอปพลิเคชัน โปรดดูที่เฝ้าติดตามสถานะของ Amazon Kinesis Application

ถาม: ฉันจะปรับขนาดความสามารถในการประมวลผลของ Amazon Kinesis Application โดยใช้ Amazon Kinesis Client Library (KCL) โดยอัตโนมัติได้อย่างไร

คุณสามารถสร้างหลายอินสแตนซ์ของ Amazon Kinesis Application และให้อินสแตนซ์ของแอปพลิเคชันเหล่านี้ทำงานทั่วทั้งชุด Amazon EC2 Instance ซึ่งเป็นส่วนหนึ่งของ Auto Scaling group ขณะที่ความต้องการในการประมวลผลเพิ่มขึ้น Amazon EC2 Instance ที่เรียกใช้อินสแตนซ์ของแอปพลิเคชันคุณจะสร้างอินสแตนซ์ดังกล่าวขึ้นโดยอัตโนมัติ Amazon Kinesis Client Library (KCL) สำหรับ Java | Python | Ruby | Node.js | .NET จะสร้างตัวปฏิบัติการสำหรับอินสแตนซ์ใหม่นี้และย้ายโปรเซสเซอร์บันทึกจากอินสแตนซ์ที่มีอยู่มากเกินไปไปยังอินสแตนซ์ใหม่นี้โดยอัตโนมัติ

ถาม: เหตุใด GetRecords จึงส่งคืนผลลัพธ์ที่ว่างเปล่าขณะที่สตรีมข้อมูล Amazon Kinesis ของฉันมีข้อมูลอยู่

เหตุผลหนึ่งที่เป็นไปได้คือไม่มีการบันทึกในตำแหน่งที่ระบุโดยอิเทอเรเตอร์ส่วนแบ่งข้อมูลปัจจุบัน กรณีนี้อาจเกิดขึ้นได้แม้ว่าคุณจะใช้ TRIM_HORIZON เป็นประเภทอิเทอเรเตอร์ส่วนแบ่งข้อมูล Amazon Kinesis Data Stream แสดงถึงสตรีมข้อมูลอย่างต่อเนื่อง คุณควรเรียกใช้การดำเนินการ GetRecords ในลูปและให้ส่งบันทึกกลับเมื่ออิเทอเรเตอร์ส่วนแบ่งข้อมูลคืบหน้าไปยังตำแหน่งที่เก็บบันทึกไว้

ถาม: ApproximateArrivalTimestamp ที่โดนส่งกลับในการดำเนินการ GetRecords คืออะไร

แต่ละบันทึกมีค่าที่เรียกว่า ApproximateArrivalTimestamp ซึ่งมีการลงเวลาเมื่อ Amazon Kinesis ได้รับและจัดเก็บบันทึกดังกล่าวสำเร็จ ตราประทับเวลานี้มีความแม่นยำในระดับมิลลิวินาทีและไม่มีการรับประกันเกี่ยวกับความถูกต้องของตราประทับเวลา ตัวอย่างเช่น บันทึกในส่วนแบ่งข้อมูลหรือทั่วทั้งสตรีมข้อมูลอาจมีตราประทับเวลาที่ไม่เรียงตามลำดับอยู่

ถาม: จะเกิดอะไรขึ้นหากใช้บริการเกินข้อจำกัดด้านความจุของ Amazon Kinesis Data Stream ขณะที่ Amazon Kinesis Application อ่านข้อมูลจากสตรีมข้อมูล

ขีดจำกัดความจุของสตรีมข้อมูล Amazon Kinesis กำหนดด้วยจำนวนของส่วนแบ่งข้อมูลในสตรีมข้อมูลนั้นๆ สามารถใช้บริการเกินข้อจำกัดด้านความจุได้เพราะมี Throughput ข้อมูลหรือจำนวนการเรียกใช้การอ่านข้อมูลก็ได้ ในขณะที่ใช้บริการเกินข้อจำกัดด้านความจุ จะมีการปฏิเสธการเรียกใช้การอ่านข้อมูลด้วยข้อยกเว้น ProvisionedThroughputExceeded หากเป็นเพราะอัตราการเอาท์พุตข้อมูลของสตรีมข้อมูลที่เพิ่มขึ้นชั่วคราว ให้ลองอีกครั้งโดย Amazon Kinesis Application จะทำให้การส่งคำขอเสร็จสมบูรณ์ในท้ายที่สุด หากเป็นเพราะอัตราการเอาท์พุตข้อมูลของสตรีมข้อมูลที่เพิ่มขึ้นอย่างต่อเนื่อง คุณควรเพิ่มจำนวนส่วนแบ่งข้อมูลในสตรีมข้อมูลของคุณเพื่อให้มีความจุเพียงพอสำหรับการเรียกใช้การอ่านข้อมูลให้สำเร็จอย่างสม่ำเสมอ สำหรับทั้งสองกรณีดังกล่าว ตัววัด Amazon CloudWatch จะช่วยให้คุณสามารถเรียนรู้เกี่ยวกับการเปลี่ยนแปลงของอัตราการเอาท์พุตข้อมูลของสตรีมข้อมูลและการเกิดข้อยกเว้น ProvisionedThroughputExceeded

การจัดการ Kinesis Data Stream

ถาม: ฉันจะเปลี่ยน Throughput ของ Amazon Kinesis Data Stream ได้อย่างไร

มีสองวิธีในการเปลี่ยน Throughput ของสตรีมข้อมูล คุณสามารถใช้ UpdateShardCount API หรือ AWS Management Console เพื่อปรับขนาดจำนวนส่วนแบ่งข้อมูลในสตรีมข้อมูลหรือคุณสามารถเปลี่ยน Throughput ของ Amazon Kinesis Data Stream โดยการปรับจำนวนส่วนแบ่งข้อมูลภายในสตรีมข้อมูลได้ (การแบ่งอีกครั้ง)

ถาม: จะใช้เวลานานเท่าใดในการเปลี่ยน Throughput ของ Amazon Kinesis Data Stream โดยใช้ UpdateShardCount หรือ AWS Management Console

คำขอปรับขนาดทั่วไปควรใช้เวลาสองสามนาทีในการเปลี่ยนให้เสร็จ คำขอปรับขนาดใหญ่จะใช้เวลานานกว่าคำขอที่เล็กกว่า

ถาม: ขีดจำกัดของ UpdateShardCount คืออะไรบ้าง

สำหรับข้อมูลเกี่ยวกับขีดจำกัดของ UpdateShardCount โปรดดูที่ข้อมูลอ้างอิง Amazon Kinesis Data Stream Service API

ถาม: จะยังคงมี Amazon Kinesis Data Stream พร้อมให้ใช้อยู่หรือไม่เมื่อฉันเปลี่ยน Throughput ของ Amazon Kinesis Data Stream โดยใช้ UpdateShardCount หรือการแบ่งอีกครั้ง

มี คุณยังคงสามารถเพิ่มข้อมูลและอ่านข้อมูลจาก Amazon Kinesis Data Stream ของคุณในขณะที่ใช้ UpdateShardCount หรือแบ่งเพื่อเปลี่ยน Throughput ของสตรีมข้อมูลได้

ถาม: การแบ่งอีกครั้งคืออะไร

การแบ่งอีกครั้งคือกระบวนการที่ใช้ในการปรับขนาดสตรีมข้อมูลของคุณโดยใช้ชุดของการแบ่งหรือการผสานส่วนแบ่งข้อมูล ในการแบ่งส่วนแบ่งข้อมูล ส่วนแบ่งข้อมูลเดี่ยวจะแบ่งออกเป็นส่วนแบ่งข้อมูลสองส่วน ซึ่งจะเพิ่ม Throughput ของ Data Stream ในการผสานส่วนแบ่งข้อมูล ส่วนแบ่งข้อมูลสองส่วนจะได้รับการผสานเป็นส่วนแบ่งข้อมูลเดี่ยวซึ่งจะลด Throughput ของ Data Stream ลง สำหรับข้อมูลเพิ่มเติม โปรดดูการแบ่งสตรีมข้อมูล ในคู่มือเกี่ยวกับ Amazon Kinesis Data Stream สำหรับ Developer

ถาม: ฉันสามารถเปลี่ยน Throughput ได้บ่อยแค่ไหนและการเปลี่ยน Throughput ของ Amazon Kinesis Data Stream โดยการแบ่งอีกครั้งจะใช้เวลานานเท่าใด

การดำเนินการแบ่งอีกครั้ง เช่น การแบ่งหรือผสานส่วนแบ่งข้อมูลจะใช้เวลาสองสามวินาที คุณสามารถดำเนินการแบ่งอีกครั้งได้ทีละครั้งเท่านั้น ดังนั้น การดำเนินการจะใช้เวลาสองสามวินาทีเพื่อเพิ่ม Throughput เป็นสองเท่าโดยการแบ่งส่วนแบ่งข้อมูลหนึ่งส่วน สำหรับกรณีที่ Amazon Kinesis Data Stream มีส่วนแบ่งข้อมูลเพียงหนึ่งส่วน สำหรับสตรีมข้อมูลที่มีส่วนแบ่งข้อมูล 1,000 ส่วน การดำเนินการจะใช้เวลา 30,000 วินาที (8.3 ชั่วโมง) เพื่อเพิ่ม Throughput เป็นสองเท่าโดยการแบ่งส่วนแบ่งข้อมูล 1,000 ส่วน เราขอแนะนำให้เพิ่ม Throughput ของ Data Stream ก่อนเวลาที่ต้องใช้การ Throughput มากเป็นพิเศษ

ถาม: ฉันจะเปลี่ยนระยะเวลาการเก็บรักษาข้อมูลของ Amazon Kinesis Data Stream ได้อย่างไร

Amazon Kinesis จะจัดเก็บข้อมูลของคุณไว้สูงสุด 24 ชั่วโมงตามค่าเริ่มต้น คุณสามารถเพิ่มระยะเวลาการเก็บรักษาข้อมูลได้สูงสุดถึง 7 วันโดยการเปิดใช้การเก็บรักษาข้อมูลที่ขยายระยะเวลา

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงระยะเวลาการเก็บรักษาข้อมูล โปรดดูที่การเปลี่ยนแปลงระยะเวลาการเก็บรักษาข้อมูล

ถาม: ฉันจะตรวจสอบการดำเนินงานและประสิทธิภาพของ Amazon Kinesis Data Stream ได้อย่างไร

Amazon Kinesis Data Stream Management Console แสดงตัววัดด้านการปฏิบัติงานและประสิทธิภาพหลัก เช่น Throughput อินพุตและเอาต์พุตข้อมูลของ Amazon Kinesis Data Stream Amazon Kinesis Data Stream ยังรวมเข้ากับ Amazon CloudWatch คุณจึงสามารถรวบรวม ดู และวิเคราะห์ตัววัด CloudWatch สำหรับสตรีมข้อมูลและส่วนแบ่งข้อมูลในสตรีมข้อมูลเหล่านั้นได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัววัด Amazon Kinesis Data Stream โปรดดูที่การตรวจสอบ Amazon Kinesis Data Stream ด้วย Amazon CloudWatch

โปรดทราบว่าไม่มีค่าใช้จ่ายสำหรับตัววัดระดับสตรีมทั้งหมด มีการเรียกเก็บค่าบริการตัววัดระดับส่วนแบ่งข้อมูลที่เปิดใช้งานทั้งหมดตามราคา Amazon CloudWatch

ถาม: ฉันจะจัดการและควบคุมการเข้าถึง Amazon Kinesis Data Stream ได้อย่างไร

Amazon Kinesis Data Streams ผสานรวมกับ AWS Identity and Access Management (IAM) ซึ่งเป็นบริการที่ช่วยให้คุณสามารถควบคุมการเข้าถึงบริการของ AWS และทรัพยากรสำหรับผู้ใช้ได้อย่างปลอดภัย ตัวอย่างเช่น คุณสามารถสร้างนโยบายที่อนุญาตให้ผู้ใช้หรือกลุ่มที่เฉพาะเจาะจงเท่านั้นที่สามารถเพิ่มข้อมูลไปยัง Amazon Kinesis Data Stream ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดการการเข้าถึงและการควบคุมสตรีมข้อมูล โปรดดูที่การควบคุมการเข้าถึงทรัพยากร Amazon Kinesis Data Stream โดยใช้ IAM

ถาม: ฉันจะบันทึกการเรียก API ที่เรียกไปยังสตรีมข้อมูล Amazon Kinesis เพื่อการวิเคราะห์ด้านความปลอดภัยและการแก้ไขปัญหาด้านการดำเนินงานได้อย่างไร

Amazon Kinesis ผสานรวมกับ Amazon CloudTrail ซึ่งเป็นบริการที่บันทึกการเรียก AWS API สำหรับบัญชีและจะส่งไฟล์บันทึกให้คุณ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการบันทึกการเรียกใช้ API และรายการการดำเนินการของ Amazon Kinesis API ที่รองรับ โปรดดูที่การบันทึกการเรียกใช้ Amazon Kinesis โดยใช้ Amazon CloudTrail

ถาม: ฉันจะจัดการ Amazon Kinesis Data Stream และค่าใช้จ่ายที่เกี่ยวข้องกับสตรีมข้อมูลอย่างมีประสิทธิภาพได้อย่างไร

Amazon Kinesis Data Stream ช่วยให้คุณติดแท็ก Amazon Kinesis Data Stream เพื่อการจัดการทรัพยากรและค่าใช้จ่ายที่ง่ายขึ้น แท็กคือป้ายกำกับที่กำหนดโดยผู้ใช้ซึ่งแสดงเป็นคู่คีย์-ค่าซึ่งช่วยจัดระเบียบทรัพยากรของ AWS ตัวอย่างเช่น คุณสามารถติดแท็กสตรีมข้อมูลตามศูนย์ต้นทุนเพื่อให้คุณสามารถจัดหมวดหมู่และเฝ้าติดตามค่าใช้จ่ายของ Amazon Kinesis Data Stream ตามศูนย์ต้นทุนได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดแท็กของ Amazon Kinesis Data Stream โปรดดูที่การติดแท็ก Amazon Kinesis Data Stream ของคุณ

ถาม: ฉันจะอธิบายวิธีใช้ประโยชน์จากขีดจำกัดของส่วนแบ่งข้อมูลของฉันได้อย่างไร

คุณสามารถทำความเข้าใจวิธีใช้ประโยชน์ขีดจำกัดส่วนแบ่งข้อมูลสำหรับบัญชีโดยใช้ DescribeLimits API ได้ DescribeLimits API จะคืนขีดจำกัดส่วนแบ่งข้อมูลและจำนวนส่วนแบ่งข้อมูลที่เปิดในบัญชีของคุณ หากคุณต้องการเพิ่มขีดจำกัดส่วนแบ่งข้อมูล โปรดขอเพิ่มขีดจำกัด

ความปลอดภัย

ถาม: เมื่อฉันใช้ Kinesis Data Stream ข้อมูลของฉันจะมีความปลอดภัยเพียงใด

Kinesis ปลอดภัยตามค่าเริ่มต้น เฉพาะเจ้าของบัญชีและสตรีมข้อมูลเท่านั้นที่สามารถเข้าถึงทรัพยากร Kinesis ที่พวกเขาสร้างได้ Kinesis รองรับการตรวจสอบผู้ใช้เพื่อควบคุมการเข้าถึงข้อมูล คุณสามารถใช้นโยบาย AWS IAM เพื่อให้สิทธิ์แก่ผู้ใช้และกลุ่มผู้ใช้อย่างเจาะจง คุณสามารถใส่และรับข้อมูลจาก Kinesis ได้อย่างปลอดภัยผ่านตำแหน่งข้อมูล SSL โดยใช้โปรโตคอล HTTPS หากต้องการความปลอดภัยเพิ่มเติม คุณสามารถใช้การเข้ารหัสฝั่งเซิร์ฟเวอร์ด้วยคีย์หลัก AWS KMS เพื่อเข้ารหัสข้อมูลที่เก็บไว้ในสตรีมข้อมูลของคุณ AWS KMS ช่วยให้คุณสามารถใช้คีย์หลัก KMS ที่สร้าง AWS สำหรับการเข้ารหัสหรือสามารถนำคีย์หลักของคุณไปใช้ใน AWS KMS ได้หากต้องการ สุดท้ายนี้ คุณสามารถใช้ไลบรารีเข้ารหัสของคุณเองเพื่อเข้ารหัสข้อมูลในฝั่งไคลเอ็นต์ก่อนที่จะใส่ข้อมูลลงใน Kinesis

ถาม: ฉันจะเข้าถึง Kinesis Data Stream API แบบส่วนตัวจาก Amazon Virtual Private Cloud (VPC) โดยไม่ต้องใช้ IP สาธารณะได้หรือไม่

ได้ คุณสามารถเข้าถึง Kinesis Data Stream API แบบส่วนตัวจาก Amazon Virtual Private Cloud (VPC) ได้โดยการสร้างตำแหน่งข้อมูล VPC ด้วยตำแหน่งข้อมูล VPC การกำหนดเส้นทางระหว่าง VPC กับ Kinesis Data Stream จะได้รับการจัดการโดยเครือข่าย AWS โดยไม่ต้องใช้อินเทอร์เน็ตเกตเวย์, เกตเวย์ NAT หรือการเชื่อมต่อ VPN ตำแหน่งข้อมูล VPC รุ่นล่าสุดที่ Kinesis Data Stream ใช้นั้นให้บริการโดย AWS PrivateLink และเทคโนโลยีที่เปิดใช้การเชื่อมต่อแบบส่วนตัวระหว่างบริการของ AWS นั้นจะใช้ Elastic Network Interface (ENI) ที่มี IP ส่วนตัวใน VPC ของคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ PrivateLink โปรดไปที่เอกสารประกอบ PrivateLink

การเข้ารหัส

ถาม: ฉันสามารถเข้ารหัสข้อมูลที่ฉันใส่ลงในสตรีมข้อมูล Kinesis Data Stream ได้หรือไม่

ได้ และมีสองตัวเลือกสำหรับการเข้ารหัสข้อมูลที่คุณใส่ลงในสตรีมข้อมูล Kinesis Data Stream คุณสามารถใช้การเข้ารหัสฝั่งเซิร์ฟเวอร์ ซึ่งเป็นคุณสมบัติที่มีการจัดการอย่างเต็มที่ซึ่งจะเข้ารหัสและถอดรหัสข้อมูลโดยอัตโนมัติเมื่อคุณใส่และดึงข้อมูลจากสตรีมข้อมูล หรือคุณสามารถเขียนข้อมูลที่เข้ารหัสลับไปยังสตรีมข้อมูลได้โดยการเข้ารหัสและถอดรหัสลับทางฝั่งไคลเอ็นต์

ถาม: ทำไมฉันควรใช้การเข้ารหัสฝั่งเซิร์ฟเวอร์แทนการเข้ารหัสลับฝั่งไคลเอ็นต์

ลูกค้ามักเลือกการเข้ารหัสลับฝั่งเซิร์ฟเวอร์ผ่านการเข้ารหัสลับฝั่งไคลเอ็นต์ด้วยเหตุผลข้อใดข้อหนึ่งดังต่อไปนี้:

  • เป็นการยากที่จะบังคับใช้การเข้ารหัสลับฝั่งไคลเอ็นต์
  • พวกเขาต้องการการรักษาความปลอดภัยชั้นที่สองด้านบนของการเข้ารหัสลับฝั่งไคลเอ็นต์
  • เป็นการยากที่จะใช้แผนการจัดการที่สำคัญของลูกค้า

ถาม: การเข้ารหัสลับฝั่งเซิร์ฟเวอร์คืออะไร

การเข้ารหัสลับฝั่งเซิร์ฟเวอร์สำหรับ Kinesis Data Stream จะเข้ารหัสข้อมูลโดยอัตโนมัติโดยใช้คีย์หลัก AWS KMS (CMK) ที่ผู้ใช้กำหนดก่อนที่จะถูกเขียนลงในชั้นเก็บสตรีมข้อมูลและถอดรหัสข้อมูลหลังจากที่ดึงข้อมูลจากที่เก็บข้อมูล การเข้ารหัสจะทำให้การเขียนเป็นไปไม่ได้และไม่สามารถอ่านข้อมูลเพย์โหลดและคีย์พาร์ติชันได้ เว้นแต่ว่าผู้ใช้จะเขียนหรืออ่านจากสตรีมข้อมูลที่ได้รับอนุญาตให้ใช้คีย์ที่เลือกสำหรับการเข้ารหัสข้อมูลในสตรีมข้อมูล ด้วยเหตุนี้ การเข้ารหัสฝั่งเซิร์ฟเวอร์จึงสามารถปฏิบัติตามข้อกำหนดด้านการรักษาความปลอดภัยและการปฏิบัติตามข้อกำหนดภายใน ซึ่งควบคุมข้อมูลของคุณได้ง่ายขึ้น

ด้วยการเข้ารหัสฝั่งเซิร์ฟเวอร์ แอปพลิเคชันฝั่งไคลเอ็นต์ (ตัวผลิตและผู้ใช้) ไม่จำเป็นต้องรับรู้ถึงการเข้ารหัส พวกเขาไม่จำเป็นต้องจัดการ CMK หรือการดำเนินการชุดการเข้ารหัสลับ และข้อมูลของคุณจะเข้ารหัสเมื่ออยู่ในระหว่างการพักและเคลื่อนไหวภายในบริการ Kinesis Data Stream AWS KMS ให้ CMK ทั้งหมดที่ใช้โดยคุณสมบัติการเข้ารหัสฝั่งเซิร์ฟเวอร์ AWS KMS ทำให้การใช้ CMK ที่มีการจัดการ AWS สำหรับ Kinesis ได้ง่าย (วิธีการเข้ารหัส "คลิกเดียว") โดย AWS KMS ของคุณได้สร้าง CMK หรือ CMK ที่คุณนำเข้าสำหรับการเข้ารหัส

ถาม: มีคู่มือการเริ่มต้นใช้งานการเข้ารหัสฝั่งเซิร์ฟเวอร์ไหม

มีคู่มือเริ่มต้นใช้งานในเอกสารประกอบผู้ใช้

ถาม: การเข้ารหัสฝั่งเซิร์ฟเวอร์รบกวนการโต้ตอบของแอปพลิเคชันกับ Kinesis Data Stream หรือไม่

เป็นไปได้ ซึ่งขึ้นอยู่กับคีย์ที่คุณใช้สำหรับการเข้ารหัสและสิทธิ์ที่ควบคุมการเข้าถึงคีย์

  • หากคุณใช้ CMK ที่ได้รับการจัดการโดย AWS สำหรับ Kinesis (คีย์นามแฝง = aws/kinesis) แอปพลิเคชันของคุณจะไม่ได้รับผลกระทบจากการเปิดหรือปิดใช้งานด้วยคีย์นี้
  • ถ้าคุณใช้คีย์หลักที่แตกต่างกัน เช่น คีย์หลัก AWS KMS แบบกำหนดเองหรือคีย์ที่คุณนำเข้าไปยังบริการ AWS KMS และหากตัวผลิตและผู้ใช้ของคุณในสตรีมข้อมูลไม่ได้รับอนุญาตให้ใช้ AWS KMS CMK ที่ใช้เพื่อการเข้ารหัสแล้ว คำขอ PUT และ GET ของคุณก็จะล้มเหลว ก่อนที่จะใช้ Server-Side Encryption ได้ คุณต้องกำหนดค่านโยบายของคีย์ AWS KMS เพื่ออนุญาตการเข้ารหัสและการถอดรหัสของข้อความ ตัวอย่างและข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ AWS KMS โปรดดูการอนุญาต AWS KMS API: ข้อมูลอ้างอิงการดำเนินการและทรัพยากรในคู่มือ AWS Key Management Service สำหรับ Developer หรือคู่มือสิทธิ์เรื่องเอกสารประกอบผู้ใช้ด้านการเข้ารหัสฝั่งเซิร์ฟเวอร์ ใน Kinesis Data Stream

ถาม: มีค่าใช้จ่ายเพิ่มเติมที่เกี่ยวข้องกับการใช้การเข้ารหัสฝั่งเซิร์ฟเวอร์หรือไม่

มี แต่หากคุณใช้ CMK ที่ได้รับการจัดการ AWS สำหรับ Kinesis และไม่ใช้บริการเกินค่าใช้จ่ายการใช้ KMS API Free Tier แล้ว จะไม่มีค่าใช้จ่ายสำหรับการใช้การเข้ารหัสฝั่งเซิร์ฟเวอร์ รายการต่อไปนี้อธิบายค่าใช้จ่ายตามทรัพยากร:

คีย์:

  • CMS ที่มีการจัดการ AWS สำหรับ Kinesis (นามแฝง = "aws/kinesis") เป็นบริการฟรี
  • คีย์ KMS ที่ผู้ใช้สร้างขึ้นจะมีค่าใช้จ่ายคีย์ KMS เรียนรู้เพิ่มเติม

การใช้งาน KMS API:

  • ค่าใช้จ่ายการใช้งาน API มีผลกับทุก CMK รวมทั้งแบบที่กำหนดเองด้วย ข้อมูล Kinesis Data Stream เรียกใช้ KMS ทุกๆ 5 นาทีประมาณเมื่อสับเปลี่ยนคีย์ข้อมูล ในเดือนที่มี 30 วัน ค่าใช้จ่ายทั้งหมดของการเรียกใช้ KMS API ที่เริ่มโดย Kinesis Data Stream ควรไม่เกินสองสาม USD โปรดทราบว่าค่าใช้จ่ายนี้ทำให้วมีการัดจำนวนข้อมูลรับรองผู้ใช้ที่คุณใช้กับตัวผลิตข้อมูลและผู้ใช้ เพราะข้อมูลรับรองของผู้ใช้แต่ละรายต้องมีการเรียก API ที่ไม่ซ้ำกันไปยัง AWS KMS เมื่อคุณใช้บทบาท IAM สำหรับการยืนยันตัวตน การเรียกใช้บทบาทสมมุติฐานแต่ละรายการจะส่งผลต่อข้อมูลรับรองผู้ใช้ที่ไม่ซ้ำกันและคุณควรแคชข้อมูลรับรองของผู้ใช้ที่ส่งกลับมาจากการเรียกใช้บทบาทสมมุติฐานเพื่อประหยัดค่าใช้จ่ายของ KMS

ถาม: ภูมิภาค AWS ใดมีการเข้ารหัสฝั่งเซิร์ฟเวอร์สำหรับ Kinesis Data Stream บ้าง

การเข้ารหัสฝั่งเซิร์ฟเวอร์ Kinesis Data Stream มีพร้อมให้บริการในภูมิภาค AWS GovCloud และภูมิภาคสาธารณะทั้งหมด ยกเว้นภูมิภาคจีน (ปักกิ่ง)

ถาม: ฉันจะเริ่มใช้งาน อัปเดต หรือลบการเข้ารหัสฝั่งเซิร์ฟเวอร์ออกจากสตรีมข้อมูลได้อย่างไร

การดำเนินงานทั้งหมดเหล่านี้สามารถทำได้โดยใช้ AWS management console หรือใช้ AWS SDK หากต้องการเรียนรู้เพิ่มเติม โปรดดูคู่มือเริ่มใช้งานการเข้ารหัสฝั่งเซิร์ฟเวอร์ Kinesis Data Stream

ถาม: มีอัลกอริทึมการเข้ารหัสใดบ้างที่ใช้สำหรับการเข้ารหัสฝั่งเซิร์ฟเวอร์

Kinesis Data Stream ใช้ AES-GCM 256 algorithm สำหรับการเข้ารหัส

ถาม: หากฉันเข้ารหัสสตรีมข้อมูลที่มีข้อมูลเขียนอยู่แล้วไม่ว่าจะเป็นข้อความธรรมดาหรือข้อความที่เข้ารหัสลับก็ตาม ข้อมูลทั้งหมดในสตรีมข้อมูลจะเข้ารหัสหรือถอดรหัสหรือไม่ถ้าฉันอัปเดตการเข้ารหัส

ไม่ มีเพียงข้อมูลใหม่ที่เขียนลงในสตรีมข้อมูลเท่านั้นที่จะได้รับการเข้ารหัส (หรือถอดรหัสลับ) โดยแอปพลิเคชันการเข้ารหัสใหม่

ถาม: การเข้ารหัสฝั่งเซิร์ฟเวอร์สำหรับ Kinesis Data Stream คืออะไร

การเข้ารหัสฝั่งเซิร์ฟเวอร์จะเข้ารหัสเพย์โหลดของข้อความพร้อมด้วยคีย์พาร์ติชันซึ่งระบุโดยแอปพลิเคชันตัวผลิตสตรีมข้อมูล

ถาม: การเข้ารหัสฝั่งเซิร์ฟเวอร์เป็นคุณสมบัติเฉพาะสำหรับส่วนแบ่งข้อมูลหรือคุณสมบัติเฉพาะของสตรีม

การเข้ารหัสฝั่งเซิร์ฟเวอร์เป็นคุณสมบัติเฉพาะของสตรีม

ถาม: ฉันสามารถเปลี่ยน CMK ที่ใช้เพื่อเข้ารหัสสตรีมข้อมูลเฉพาะได้หรือไม่

ได้ การใช้ AWS management console หรือ AWS SDK จะทำให้คุณสามารถเลือกคีย์หลักใหม่เพื่อใช้กับสตรีมข้อมูลเฉพาะได้

ถาม: คุณช่วยอธิบายเกี่ยวกับวงจรการเข้ารหัสข้อมูลของฉันจากจุดหนึ่งในขณะที่ฉันส่งข้อมูลไปยัง KinesisData Stream พร้อมกับการเปิดใช้งานการเข้ารหัสฝั่งเซิร์ฟเวอร์ได้ไหม และฉันจะดึงข้อมูลได้เมื่อใด

รายการต่อไปนี้จะอธิบายถึงวิธีที่ Kinesis Data Stream ใช้ AWS KMS CMK เพื่อเข้ารหัสข้อความก่อนที่จะเก็บไว้ในแพทช์ PUT และถอดรหัสหลังจากที่มีการดึงข้อมูลในแพทช์ GET Kinesis และ AWS KMS ดำเนินการต่อไปนี้ (รวมถึงการถอดรหัส) เมื่อคุณเรียกใช้ putRecord(s) หรือ getRecords ในสตรีมข้อมูลที่มีการเปิดใช้งานการเข้ารหัสฝั่งเซิร์ฟเวอร์

  1. ส่งข้อมูลจากแอปพลิเคชันตัวผลิต Kinesis (ไคลเอ็นต์) ของลูกค้าไปยัง Kinesis โดยใช้ SSL ผ่าน HTTPS
  2. ข้อมูลที่ได้รับจาก Kinesis จัดเก็บไว้ใน RAM และการเข้ารหัสจะใช้กับเพย์โหลดและคีย์พาร์ติชันของบันทึก
  3. Kinesis ขอ Input Keying Material (IKM) แบบข้อความธรรมดาและสำเนาของ IKM ที่เข้ารหัสไว้โดยใช้คีย์หลัก KMS ที่ลูกค้าเลือกไว้
  4. AWS KMS สร้าง IKM เข้ารหัสโดยใช้คีย์หลัก และส่งทั้ง IKM ข้อความธรรมดาและ IKM ที่เข้ารหัสไปยัง Kinesis
  5. Kinesis ใช้ IKM ข้อความธรรมดาเพื่อได้มาซึ่งคีย์ข้อมูลที่ไม่ซ้ำต่อการบันทึก
  6. Kinesis เข้ารหัสเพย์โหลดและคีย์พาร์ติชันโดยใช้คีย์ข้อมูลและลบคีย์ข้อความธรรมดาออกจากหน่วยความจำ
  7. Kinesis ผนวก IKM ที่เข้ารหัสเข้ากับข้อมูลที่เข้ารหัส
  8. IKEA ข้อความธรรมดาจะถูกเก็บไว้ในหน่วยความจำเพื่อนำมาใช้ใหม่จนกว่าจะหมดอายุลงหลังจากผ่านไป 5 นาที
  9. Kinesis ส่งข้อความที่เข้ารหัสลับไปยังที่จัดเก็บแบ็คเอนด์ซึ่งจะถูกจัดเก็บไว้ในลักษณะที่พักไว้และเรียกใช้ได้ผ่านการเรียกใช้ getRecords

Kinesis และ AWS KMS จะดำเนินการต่อไปนี้ (รวมถึงการถอดรหัส) เมื่อคุณเรียกใช้ getRecords

  1. เมื่อมีการเรียกใช้ getRecords ส่วนหน้าของ Kinesis จะดึงบันทึกที่เข้ารหัสจากบริการแบ็คเอนด์
  2. Kinesis ส่งคำขอไปยัง KMS โดยใช้โทเค็นที่สร้างตามคำขอของลูกค้า AWS KMS อนุมัติคำขอ
  3. Kinesis ถอดรหัส IKM ที่เก็บและเข้ารหัสไว้ด้วยบันทึก
  4. Kinesis สร้างคีย์ข้อมูลตามบันทึกใหม่จาก IKM ที่ถอดรหัส
  5. หากได้รับอนุญาต Kinesis จะถอดรหัสเพย์โหลดและลบคีย์ข้อความธรรมดาออกจากหน่วยความจำ
  6. Kinesis ส่งมอบเพย์โหลดผ่าน SSL และ HTTPS ไปยังผู้ใช้ Kinesis (ลูกค้า) เพื่อขอบันทึก

ราคาและการเรียกเก็บค่าบริการ

ถาม: มี Amazon Kinesis Data Stream พร้อมให้ใช้ใน AWS Free Tier หรือไม่

ไม่มี Amazon Kinesis Data Stream พร้อมให้ใช้งานใน AWS Free Tier AWS Free Tier เป็นโปรแกรมที่เสนอให้ทดลองใช้กลุ่มบริการของ AWS ได้ฟรี สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ AWS Free Tier โปรดดู AWS Free Tier

ถาม: Amazon Kinesis Data Stream จะมีค่าใช้จ่ายเท่าไหร่

Amazon Kinesis Data Stream ใช้การชำระเงินที่ง่ายตามที่คุณใช้งาน ไม่มีค่าใช้จ่ายล่วงหน้าหรือค่าธรรมเนียมขั้นต่ำ และชำระค่าบริการเฉพาะทรัพยากรที่คุณใช้เท่านั้น ค่าใช้จ่ายของ Amazon Kinesis Data Stream มีราคาหลักสองมิติและราคาทางเลือกสามมิติ

  • กำหนดต้นทุนส่วนแบ่งข้อมูลรายชั่วโมงโดยจำนวนส่วนแบ่งข้อมูลภายใน Amazon Kinesis Data Stream ของคุณ
  • ค่าใช้จ่าย PUT Payload Unit กำหนดโดยจำนวนหน่วยเพย์โหลด 25 KB ที่ตัวผลิตข้อมูลของคุณเพิ่มลงในสตรีมข้อมูล

ตัวเลือกเสริม:

  • การขยายเวลาเก็บรักษาข้อมูลเป็นค่าใช้จ่ายสำหรับตัวเลือกเพิ่มเติมที่กำหนดโดยจำนวนชั่วโมงส่วนแบ่งข้อมูลที่เกิดจากสตรีมข้อมูลของคุณ เมื่อมีการเปิดใช้งานการขยายเวลาเก็บรักษาข้อมูล คุณจะต้องชำระอัตราการขยายเวลาเก็บรักษาสำหรับแต่ละส่วนแบ่งข้อมูลในสตรีมของคุณ
  • การกระจายที่ปรับปรุงแล้วเป็นค่าใช้จ่ายทางเลือกที่มีแง่มุมด้านค่าใช้จ่ายสองส่วน นั่นคือชั่วโมงส่วนแบ่งข้อมูลผู้ใช้และการดึงข้อมูล ชั่วโมงส่วนแบ่งข้อมูลผู้ใช้แสดงถึงจำนวนส่วนแบ่งข้อมูลในสตรีมที่คูณด้วยจำนวนผู้ใช้ที่ใช้การกระจายที่ปรับปรุงแล้ว การดึงข้อมูลจะกำหนดโดยปริมาณของ GB ที่จัดส่งให้แก่ผู้ใช้โดยใช้การกระจายที่ปรับปรุงแล้ว 

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายของข้อมูล Amazon Kinesis Stream ดูที่Amazon Kinesis Data Stream Pricing

ถาม: ค่าใช้จ่ายของหน่วย PUT Payload Unit เกิดการเปลี่ยนโดยใช้การดำเนินการ PutRecords แทนการดำเนินการ PutRecord ใช่หรือไม่

การเรียกเก็บเงิน PUT Payload Unit คำนวณจากจำนวนหน่วยเพย์โหลด 25 KB ซึ่งเพิ่มลงในสตรีมข้อมูล Amazon Kinesis Data Stream ของคุณ ค่าใช้จ่าย PUT Payload Unit มีสม่ำเสมอกันเมื่อใช้การดำเนินการ PutRecords หรือ PutRecord

ถาม: ฉันจะโดนเรียกเก็บค่าบริการสำหรับส่วนแบ่งข้อมูลในสถานะ "ปิด" หรือไม่

ส่วนแบ่งข้อมูลอาจอยู่ในสถานะ "ปิด" หลังการแบ่งอีกครั้ง คุณจะไม่โดนเรียกเก็บเงินจากส่วนแบ่งข้อมูลที่อยู่ในสถานะ "ปิด"

ถาม: นอกเหนือจากค่าใช้จ่ายของ Amazon Kinesis Data Streams มีค่าใช้จ่ายอื่นใดที่อาจเกิดขึ้นกับการใช้งาน Amazon Kinesis Data Streams ของฉันหรือไม่

หากคุณใช้ Amazon EC2 เพื่อเรียกใช้ Amazon Kinesis Application จะมีการเรียกเก็บค่าบริการสำหรับทรัพยากร Amazon EC2 เพิ่มเติมจากค่าใช้จ่ายของ Amazon Kinesis Data Stream

Amazon Kinesis Client Library (KCL) ใช้ตาราง Amazon DynamoDB เพื่อเฝ้าติดตามข้อมูลสถานะของการประมวลผลบันทึก หากคุณใช้ KCL สำหรับ Amazon Kinesis Application จะมีการเรียกเก็บค่าบริการสำหรับทรัพยากร Amazon DynamoDB เพิ่มเติมจากค่าใช้จ่ายของ Amazon Kinesis Data Stream

หากเปิดใช้งาน Enhanced Shard-Level Metrics จะมีการเรียกเก็บค่าบริการสำหรับค่าใช้จ่าย Amazon CloudWatch ที่เกี่ยวข้องกับการเปิดใช้งานตัววัดระดับส่วนแบ่งข้อมูลที่ดียิ่งขึ้น เพิ่มเติมจากค่าใช้จ่ายของ Amazon Kinesis Data Stream

โปรดทราบว่ากรณีข้างต้นเป็นกรณีทั่วไปสามกรณี แต่ไม่ใช่กรณีที่ครบถ้วนสมบูรณ์

ข้อตกลงระดับการให้บริการ

ถาม: Amazon Kinesis Data Stream SLA รับประกันอะไรบ้าง

Amazon Kinesis Data Stream SLA ของเรารับประกันเปอร์เซ็นต์การทำงานต่อเดือนอย่างน้อย 99.9% สำหรับ Amazon Kinesis Data Stream

ถาม: ฉันจะทราบได้อย่างไรหากมีสิทธิ์ได้รับเครดิตบริการ SLA

คุณมีสิทธิ์ได้รับเครดิต SLA สำหรับ Amazon Kinesis Data Stream ที่อยู่ภายใต้ Amazon Kinesis Data Stream SLA หาก Availability Zone มากกว่าหนึ่งแห่งที่คุณกำลังทำงานอยู่ภายในภูมิภาคเดียวกันมีเปอร์เซ็นต์การทำงานต่อเดือนน้อยกว่า 99.9% ในรอบการเก็บค่าบริการรายเดือนใดๆ

สำหรับรายละเอียดที่ครบถ้วนเกี่ยวกับข้อกำหนดและเงื่อนไขทั้งหมดของ SLA ตลอดจนรายละเอียดเกี่ยวกับการยื่นคำร้อง โปรดดูที่หน้ารายละเอียดของ Amazon Kinesis Data Stream SLA

เรียนรู้เพิ่มเติมเกี่ยวกับราคา Amazon Kinesis Data Stream

ไปที่หน้าราคา
พร้อมเริ่มต้นใช้งานหรือยัง
ลงชื่อสมัครใช้งาน
มีคำถามเพิ่มเติมหรือไม่
ติดต่อเรา