Live Streaming with AWS
Live Streaming with AWS Elemental Cloud

Architecture Overview

Deploying this solution with the default parameters builds the following environment in the AWS Cloud.

        Live streaming solution (with AWS Elemental Cloud) architectural overview

Figure 1: Live streaming solution (with AWS Elemental Cloud) architecture on AWS

Before you launch this live streaming solution, you must have an existing AWS Elemental Cloud deployment with running AWS Elemental Live and AWS Elemental Delta services in the same AWS Region where you deploy this live streaming solution. For more information, see the Prerequisites section.

The primary solution AWS CloudFormation template launches an AWS Lambda function that configures your running AWS Elemental Live nodes for encoding to multiple adaptive bitrate resolutions, and AWS Elemental Delta nodes for just-in-time packaging, using .xml templates. These templates can be customized to meet your needs.

For customers who want to deploy this solution in an AWS Region that does not support AWS Lambda, this solution includes a secondary template that uses a Python script, hosted on an Amazon Elastic Compute Cloud (Amazon EC2) instance, to configure the AWS Elemental Cloud services. See Regional Deployment for more information.

AWS Elemental Cloud Platform

For this solution, the AWS Elemental Cloud platform consists of two AWS Elemental Live nodes and two AWS Elemental Delta nodes. Each AWS Elemental Live node has a corresponding AWS Elemental Delta node downstream. This provides a separate stream of the original source for high availability. AWS Elemental Live encodes the incoming stream and creates five adaptive bitrate (ABR) resolutions that are pushed to AWS Elemental Delta. AWS Elemental Delta packages the five resolutions and delivers them, as requested by clients, to Apple HLS, MPEG DASH, or Microsoft Smooth ABR packages. Optionally, customers can configure a third set of AWS Elemental Live and AWS Elemental Delta nodes to provide a sample video feed for testing purposes.

AWS Cloud Architecture

The AWS architecture consists of Nginx across a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that cache content from the primary AWS Elemental Delta and fail over to the secondary AWS Elemental Delta, if necessary. The Amazon EC2 instances also send cache logs to Amazon CloudWatch. The Nginx cluster uses Auto Scaling to provide a scalable cache layer between AWS Elemental Cloud and Amazon CloudFront. CloudFront is used to provide video delivery worldwide. This approach provides two highly scalable cache tiers to offload video distribution to end users while optimizing their viewing experience.

When the live streaming event is complete, customers can delete the AWS CloudFormation stack which deletes the AWS resources and the AWS Elemental Cloud configuration.