What should a solutions architect do to meet these requirements?
Create an Amazon CloudFront distribution that has the S3 bucket and the ALB as origins. Configure Route 53 to route traffic to the CloudFront distribution.
Create an Amazon CloudFront distribution that has the ALB as an origin. Create an AWS Global Accelerator standard accelerator that has the S3 bucket as an endpoint. Configure Route 53 to route traffic to the CloudFront distribution.
Create an Amazon CloudFront distribution that has the S3 bucket as an origin. Create an AWS Global Accelerator standard accelerator that has the ALB and the CloudFront distribution as endpoints. Create a custom domain name that points to the accelerator DNS name. Use the custom domain name as an endpoint for the web application.
Create an Amazon CloudFront distribution that has the ALB as an origin. Create an AWS Global Accelerator standard accelerator that has the S3 bucket as an endpoint. Create two domain names. Point one domain name to the CloudFront DNS name for dynamic content. Point the other domain name to the accelerator DNS name for static content. Use the domain names as endpoints for the web application.
Explanations:
This option effectively utilizes Amazon CloudFront as a Content Delivery Network (CDN) to cache and distribute the static data from the S3 bucket and dynamic data from the ALB, reducing latency. Configuring Route 53 to route traffic to the CloudFront distribution optimizes performance by leveraging edge locations to serve content closer to users.
While using CloudFront for dynamic data from the ALB is valid, combining it with an AWS Global Accelerator for the S3 bucket is unnecessary. Global Accelerator is typically used for improving the availability and performance of applications that rely on static IP addresses, which is not relevant for S3 directly in this context.
This option introduces unnecessary complexity. While it correctly identifies the use of CloudFront for static content from S3, using Global Accelerator for both the ALB and CloudFront creates an overly complicated architecture. The primary benefit of using CloudFront alone would suffice without needing Global Accelerator in this scenario.
Similar to option B, this option complicates the architecture by requiring two domain names and routing static content through Global Accelerator, which isn’t necessary when CloudFront can handle both static and dynamic content efficiently. Using CloudFront alone with a single domain name is sufficient to meet performance requirements.