What should a solutions architect do to minimize the anticipated server load?
Store the videos in Amazon ElastiCache for Redis. Update the web servers to serve the videos using the ElastiCache API.
Store the videos in Amazon Elastic File System (Amazon EFS). Create a user data script for the web servers to mount the EFS volume.
Store the videos in an Amazon S3 bucket. Create an Amazon CloudFront distribution with an origin access identity (OAI) of that S3 bucket. Restrict Amazon S3 access to the OAI.
Store the videos in an Amazon S3 bucket. Create an AWS Storage Gateway file gateway to access the S3 bucket. Create a user data script for the web servers to mount the file gateway.
Explanations:
Using Amazon ElastiCache for Redis to store videos is not ideal, as ElastiCache is designed for caching data rather than serving large files like videos. It could lead to increased complexity and does not address the high load on the web servers.
Amazon Elastic File System (EFS) is a managed file storage service, but it is not optimized for high-scale video delivery. Mounting EFS on web servers could still lead to performance bottlenecks due to network latency and server load when serving multiple video requests simultaneously.
Storing videos in Amazon S3 and using Amazon CloudFront as a content delivery network (CDN) effectively offloads traffic from the EC2 instances, minimizing server load. CloudFront caches the videos at edge locations, providing faster access to users and reducing latency. Restricting S3 access to the OAI enhances security.
Using an AWS Storage Gateway file gateway to access S3 adds unnecessary complexity and latency. File gateways are more suited for hybrid cloud storage scenarios, and while they provide access to S3, they do not offer the same performance benefits as directly serving content through CloudFront.