I want to build a web/application server in AWS and I want to use CloudFront to deliver content with low latency and Application Load Balancer (ALB) to balance traffic between servers. If there are some contents needed to be cached, using CloudFront in front of ALB should benefit, however if not is it still recommended to use CloudFront in front of ALB in view of performance and cost? For example, which one of the following two alternatives is recommended?
User always accesses ALB through CloudFront regardless of what content the user accesses.
User accesses CloudFront or ALB directly depending on the content the user accesses.
Which one is the better pattern?