This Guidance helps digital video streaming companies provide their audience with the opportunity to shop for products while watching digital media. These companies can use data and contextual analysis to create this seamless shopping experience. Content owners can generate increased revenue and enhance engagement with their audience while minimizing disruption in their viewing experience.
Please note: [Disclaimer]
Step Functions orchestrates the product catalog creation process by processing images uploaded in Step 1. AWS Lambda runs a multimodal apparel machine learning (ML) model that identifies products with bounding boxes and generates image embeddings.
Amazon OpenSearch Service cluster with K-nearest neighbors (K-NN) plugins store the product image embeddings with the product identifier and enable the search for similar products.
In the Video and Image Analysis and Processing stage, upload video files to an Amazon Simple Storage Service (Amazon S3) bucket invoking content processing through Step Functions.
Step Functions orchestrates the processing of the video content, apparel identifications, and search for similar items.
Lambda runs object detection and image embedding models that identify product information from the images obtained through MediaConvert and searches for similar items in the product catalog using OpenSearch Service. The Amazon DynamoDB tables are used for indexing artifacts such as video files and images by MediaConvert.
The output of the Video and Image Analysis and Processing pipeline stage is a shoppable metadata file (stored as JSON), which is used by the user experience (UX) Presentation stage. Lambda and Amazon API Gateway form the API connector to the ecommerce website.
The API connector retrieves detailed information about the products per product ID, such as product images, prices, ratings, and availability, enabling viewers to interact with and shop for desired products.
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.
Step Functions orchestrates Lambda, MediaConvert, and Amazon S3 workflows. The Step Functions console graph view provides a graphical representation of your state machine with visual indications of which steps have succeeded, are in progress, have failed, have caught error, or were cancelled. Visualizing the status of Step Functions states helps the operator understand workflow health.
All user data stored in DynamoDB is fully encrypted at rest. DynamoDB encrypts your data at rest using encryption keys stored in AWS Key Management Service (AWS KMS), which helps reduce the operational burden and complexity involved in protecting sensitive data. All AWS Identity and Access Management (IAM) policies have been scoped down to the minimum permissions required for the service to function properly. Minimum permissions set by IAM help you avoid unauthorized access.
Lambda supports automatic scaling to handle increased workloads and runs in multiple Availability Zones to help ensure that it is available to process events in case of a service interruption in a single Availability Zone. Lambda supports automatic scaling, retries, and high availability, adding resiliency and reliability to the workflow. DynamoDB automatically replicates data across multiple Availability Zones, offering high data durability and integrated availability.
Serverless architectures that use serverless managed services like Lambda remove the need to run and maintain physical servers for video or image processing workflows. As a managed service that hosts code, Lambda can also lower transactional costs because managed services operate at scale in the cloud.
Step Functions is a managed service that scales based on demand, so you do not have to manage underlying infrastructure. This reduces carbon emissions as Step Functions has inherited compute efficiencies and only runs when needed. Additionally, Step Functions provide an event-driven architecture for the Product Catalog Creation and Video and Image Analysis and Processing pipelines, which, in combination with Lambda only consume computational resources when actually processing data. These pipelines scale on demand to avoid over-provisioned server capacity.
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.
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.