Спрощена архітектура платформи для обміну відео на AWS
- Завантажувач робить запит на завантаження відео.
- Amazon API Gateway підключається до AWS Lambda, коли надходить запит на завантаження відео.
- Функція AWS Lambda буде викликана, коли надійде запит на завантаження відео. Lambda відокремить метадані від відео.
- AWS DynamoDB зберігає метадані відео. DynamoDB використовується завдяки високій швидкості читання/запису та можливості автоматичного масштабування.
- S3 Bucket зберігає відео. Об'єктне сховище є найкращим для відеофайлів.
- Функція AWS Lambda викликається, коли відео завантажується в S3 Bucket. Ця функція почне обробку недавно завантаженого відео.
- Запускається робочий процес AWS Step Functions. AWS Elemental MediaConvert конвертує завантажене відео в різні роздільні здатності. AWS Rekognition аналізує вміст відео. Будь-яке відео, яке буде визнано "неприязним", буде позначено та обмежено. Це оновить AWS DynamoDB.
- S3 Bucket буде зберігати прийняті відео.
- Amazon CloudFront кешує відео, які шукають користувачі, у тій самій області. Якщо відео не кешується, воно буде отримано з S3 Bucket, що містить прийняті відео.
- Коли користувач шукає відео, вони проходять через Amazon CloudFront. Якщо відео, яке вони шукають, не кешоване в CloudFront, воно буде отримано з S3 Bucket, що містить прийняті відео.
- Amazon CloudWatch логуватиме та моніторитиме ресурси AWS.
Масштабованість цього дизайну дуже хороша. Служби, такі як Lambda, Step Functions та DynamoDB, автоматично масштабуються залежно від трафіку. S3 Buckets можуть зберігати необмежену кількість файлів. Кешовані відео CloudFront можуть обслуговувати контент без необхідності отримувати його з S3 Bucket, що зменшує навантаження та підвищує масштабованість.
При умові, що відео регулярно завантажуються, ця архітектура не зазнає проблем з затримками. Amazon CloudFront зменшує затримку при кешуванні відео. AWS DynamoDB та S3 працюють з низькою затримкою. AWS Lambda матиме вищу затримку лише тоді, коли буде бездіяльним. Також кроки функцій матимуть вищу затримку в залежності від розміру відео.
Керовані служби AWS в цій архітектурі, такі як AWS Lambda, S3 і DynamoDB, доступні в різних зонах доступності регіонів, що робить цей дизайн стійким. Amazon CloudFront кешує контент на багатьох серверах, тому якщо один сервер вийде з ладу, інший сервер буде готовий поглинути навантаження. Завдяки службам AWS, якщо один сервер вийде з ладу, інший буде готовий до роботи, що робить цей дизайн стійким до збоїв.
Перекладено з: Simplified Video-Sharing Platform AWS Design