Your customer is implementing a video on-demand streaming platform on AWS. The requirements are; support for multiple devices such as IOS, Android and PC and client devices, using a standard client player, using streaming technology (not download) and scalable architecture with cost effectiveness. Which architecture meets the requirements? (Choose 1)
a. Store the video contents to Amazon Simple Storage Service (S3) as an origin server. Configure the Amazon CloudFront distribution with a streaming option to stream the video contents
b. Store the video contents to Amazon Simple Storage Service (S3) as an origin server. Configure the Amazon CloudFront distribution with a download option to stream the video contents.
c. Launch a streaming server on Amazon Elastic Cloud Compute (EC2) (for example, Adobe Media Server), and store the video contents as an origin server. Configure the Amazon CloudFront distribution with a download option to stream the video contents
d. Launch a streaming server on Amazon EC2 (for example, Adobe Media Server), and store the video contents as an origin server. Launch and configure the required amount of streaming servers on Amazon EC2 as an edge server to stream the video contents.
This question is testing your understanding of a both Amazon S3 and CloudFront. I’d highly recommend reading the following articles from the AWS Blog and CloudFront Documentation:
“Answer D” is incorrect. Now whilst you could configure EC2 to be in an auto-scaling group in order to scale in/out based on demand this isn’t very scalable given the overall solution requirements. As this is for a media streaming site then you could make an assumption that there will be some rather large storage requirements for the overall solution. With EC2 you would typically be utilizing EBS Storage and an EBS Volume cannot be attached to more than one EC2 Instance at a time. You could utilize EFS as a scalable storage platform which could then provide a shared repository for the media files across lots of EC2 instances. EC2 is not a services at the edge whereas services like CloudFront is (i.e. taking the content closer to the end user in order to improve the performance). As the question is asking for a scalable and cost effective solution, it mentions nothing about the use of either S3 or CloudFront as part of the proposed solution which are 2 key services this solution requires.
“Answer C” is also incorrect for the majority of the reasons as I mentioned for “Answer D”. Now whilst its recommending utilizing CloudFront the underlying solution that CloudFront would be streaming/caching the content from would still be EC2 Instances which wouldn’t be a cost effective solution in comparison to if you were utilize Amazon S3. In addition the question specifically says the users/devices shouldn’t be allowed to download whilst the solution being proposed in this answer was allowing them to.
“Answer B” whilst it’s recommending to store the video contents in Amazon S3 which is highly scalable and cost effective storage solution and configuring it as a CloudFront Origin. The proposed solution is configuring CloudFront to allow the users/devices to download the content. As previously mentioned the question clearly states they should not be able to download.
“Answer A” is the correct answer. Configuring Amazon S3 as the storage solution for the media content means it’s placing this in a cost effective and scalable platform. Amazon S3 can be configured as an Origin Server for CloudFront which can be utilized to take the content closer to the end users and is highly scalable by design. As the CloudFront distribution is being configured with the streaming option this is meeting all of the requirements.