This Guidance demonstrates how to prepare mezzanine video files and make them available for scheduling using the channel assembly capability of AWS Elemental MediaTailor. It automates the process of transcoding video files using AWS Elemental MediaConvert, packaging the files into various formats using AWS Elemental MediaPackage, and applying personalized ad insertions to the files. Additionally, an Amazon CloudFront distribution is created as a content delivery network (CDN) that orchestrates the delivery of the files and the details about how to track and manage the content for delivery. The CDN hosts the video streams with security and performance best practices at the forefront.

Please note: [Disclaimer]

Architecture Diagram

[Architecture diagram description]

Download the architecture diagram PDF 

Well-Architected Pillars

The AWS Well-Architected Framework helps you understand the pros and cons of the decisions you make when building systems in the cloud. The six pillars of the Framework allow you to learn architectural best practices for designing and operating reliable, secure, efficient, cost-effective, and sustainable systems. Using the AWS Well-Architected Tool, available at no charge in the AWS Management Console, you can review your workloads against these best practices by answering a set of questions for each pillar.

The architecture diagram above is an example of a Solution created with Well-Architected best practices in mind. To be fully Well-Architected, you should follow as many Well-Architected best practices as possible.

  • All resources created in this Guidance are tagged, which helps you identify and organize your AWS resources, as well as easily track your AWS costs. If you need to integrate and deploy changes in this Guidance, use an AWS Serverless Application Model (AWS SAM).  

    Read the Operational Excellence whitepaper 
  • All content at rest is protected by AWS Signature Version 4, and can only be viewed through the CloudFront content delivery network (CDN). You can also configure further access controls at the CDN to secure people and machine access. 

    Read the Security whitepaper 
  • All components in this Guidance are serverless and therefore highly available in any given AWS Region, helping to ensure you are implementing a highly available architecture. The workflow processing steps, as outlined in the preceding diagram, are decoupled and use Amazon EventBridge and stateless AWS Lambda, while retry logic is controlled by you. The workflow steps also emit logs to Amazon CloudWatch, in addition to emails sent through Amazon Simple Queue Service (Amazon SQS) for notifications on content state changes. 

    This Guidance scales up and down with demand, limited only by the underlying service limits of MediaConvert, MediaPackage, and MediaTailor. The versions of this Guidance are controlled through GitLab, with any changes run through integration tests first. And by relying on the underlying services Amazon S3, MediaConvert, MediaPackage, and MediaTailor for failure handling, this Guidance helps to ensure you are implementing a solution resilient to failures. 

    Read the Reliability whitepaper 
  • The services selected for this Guidance were purpose-built for this use, and the components are appropriately sized to help meet your performance requirements. If you want to experiment with this Guidance, you can automate the creation of media resources and channels to determine performance limits.

    This Guidance can be deployed in any Region that has AWS Elemental services, including MediaConvert, MediaPackage, and MediaTailor. And because the workflow processing steps are decoupled, appropriate queuing helps ensure a large influx of demand is appropriately staggered. 

    Read the Performance Efficiency whitepaper 
  • We evaluated cost and each component in this Guidance have been rightsized for the optimal balance between cost and perceptual quality. Also, there are no idle running costs. Cost is only incurred when and if media is processed and a channel is running. Finally, the relationship between viewer load and infrastructure is separated by CloudFront, so there is no increase in resources when load increases. 

    Read the Cost Optimization whitepaper 
  • This Guidance scales to continually match the load with only the minimum resources. There is zero idle compute when a channel is not running. And by deploying the minimum set of resources required for a high-quality consumer experience, there are no idle resources running when not in use. 

    Read the Sustainability whitepaper 

Implementation Resources

A detailed guide is provided to experiment and use within your AWS account. Each stage of building the Guidance, including deployment, usage, and cleanup, is examined to prepare it for deployment.

The sample code is a starting point. It is industry validated, prescriptive but not definitive, and a peek under the hood to help you begin.

[Subject]
[Content Type]

[Title]

[Subtitle]
This [blog post/e-book/Guidance/sample code] demonstrates how [insert short description].

Disclaimer

The sample code; software libraries; command line tools; proofs of concept; templates; or other related technology (including any of the foregoing that are provided by our personnel) is provided to you as AWS Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You should not use this AWS Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the AWS Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances or using Amazon S3 storage.

References to third-party services or organizations in this Guidance do not imply an endorsement, sponsorship, or affiliation between Amazon or AWS and the third party. Guidance from AWS is a technical starting point, and you can customize your integration with third-party services when you deploy the architecture.

Was this page helpful?