2026-01-20 - Monitoring Streams into AWS

From Izara Wiki
Jump to navigation Jump to search

Development - Izara Video Feed

Overview

How to efficiently receive video streams, and how to throttle and limit a users resource consumption.

Test This Option

  • Amazon Kinesis Video Streams for ingestion of videos
  • S3 + CloudFront for delivery of video on demand

Possible resources for recieving streams

Kinesis Data Streams

S3 presigned url

Data firehose

AWS Amplify Gen 2

IoT Core

  • MQTT-based stream
  • does not expire
  • route to Kinesis or S3

Possible authentication and limit methods

IAM and Congnito

  • Identity Pools for application-level user temporary keys
  • Will need to refresh every <12hours
  • client SDK (eg Python) have DefaultCredentialsProvider for automatically refreshing tokens
  • Kinesis Producer Library may handle credential managament on client

API Keys

  • assign keys to unique users
  • setup usage plan to throttle throughput and request limits per user

API Gateway Lambda Authorizer

  • if recieving feed through API Gateway can check user limits before processing

Kinesis Shard Quota

  • if recieving to kineses can assign user to one shard which has a 1 MB/sec limit

S3 object size limit

  • if receiving to S3 can set s3:max-content-length to reject large files

EventBridge triggered by CloudWatch Alarm

  • removes a users access if over-limit