This chapter covers CloudFront pricing tiers and Price Classes, a key topic for the SAA-C03 exam under Domain 4: Cost-Optimized Architectures (Objective 4.4: Identify cost-effective AWS services). Understanding Price Classes allows you to optimize delivery costs by limiting the geographic distribution of your content. Approximately 5–10% of exam questions touch on CloudFront pricing or edge location behavior, often testing your ability to select the right Price Class for a given cost or performance requirement.
Jump to a section
Imagine you run a global shipping company. You have a warehouse in Virginia (US East) that ships products worldwide. You offer three shipping tiers: Economy (only ships to North America and Europe), Standard (ships to most of the world except remote islands), and Premium (ships everywhere, including Antarctica). Each tier uses a different set of regional distribution hubs. Economy uses only hubs in the US and UK, Standard uses hubs in the US, UK, Japan, and Brazil, and Premium uses every hub you own globally. The cost per package is higher for Premium because you maintain more hubs and pay for longer delivery routes. A customer in Australia can only receive Standard or Premium; if they choose Economy, you cannot deliver because no hub covers that region. Similarly, CloudFront’s Price Classes control which edge locations (hubs) serve your content. Price Class 100 uses only the cheapest regions (US and Europe), Price Class 200 adds more expensive regions (Asia, South America), and Price Class All uses every edge location worldwide. Your content is replicated only to the edge locations in your selected Price Class. If a user requests content from a region not in your Price Class, they are routed to the nearest edge location that is included, which may be far away, increasing latency. The cost per request varies by region—some are heavily discounted (e.g., US$0.0001/request), while others are pricier (e.g., India US$0.0017/request). By choosing a Price Class, you trade off between cost and performance.
What Are CloudFront Pricing Tiers and Price Classes?
Amazon CloudFront is a content delivery network (CDN) that caches content at edge locations worldwide. Each edge location incurs different costs for data transfer and requests based on its geographic region. To give customers control over spending, CloudFront offers three Price Classes that restrict which edge locations can serve your content. These Price Classes directly affect both cost and latency.
Price Class 100 (Use Only US, Canada, and Europe): Uses only edge locations in the United States, Canada, and Europe. This is the cheapest option. Data transfer and request costs are lowest in these regions.
Price Class 200 (Use Only US, Canada, Europe, and Asia Pacific and Africa): Adds edge locations in Asia Pacific (including India, Japan, Singapore, South Korea, Taiwan) and South America (Brazil) and Africa (South Africa). This middle tier balances cost and global reach.
Price Class All (Use All Edge Locations): Uses every CloudFront edge location worldwide, including Australia, New Zealand, and other high-cost regions. This provides the best performance globally but at the highest cost.
How It Works Internally
When you create a CloudFront distribution, you specify a Price Class. CloudFront then replicates your content (cache behaviors) only to edge locations that fall within that Price Class. When a user requests content, DNS routes them to the nearest edge location that is in your Price Class. If the nearest edge location is not in your Price Class, the user is served from the next-closest edge location that is included, potentially increasing latency.
For example, a user in Sydney, Australia, requesting content from a Price Class 100 distribution will be routed to the nearest edge in the US West (Oregon) or possibly a European edge, resulting in high latency. With Price Class 200, the request might be served from Singapore or Japan. With Price Class All, it could be served from Sydney itself.
Key Components, Values, and Defaults
- Default Price Class: When you create a distribution via the AWS Management Console, the default is Price Class All. However, when using AWS CLI or SDKs, you must explicitly set the PriceClass parameter; if omitted, it defaults to PriceClass_All.
- Price Class IDs:
- PriceClass_100
- PriceClass_200
- PriceClass_All
- Cost Differences: Data transfer prices vary by region. For example, as of 2025, data transfer from US/Europe is ~$0.085/GB (first 10 TB), from Asia (Hong Kong, India) ~$0.14/GB, from South America ~$0.161/GB, and from Australia ~$0.14/GB. Requests are also priced per 10,000 requests (e.g., US/Europe $0.0075, India $0.017). By restricting to Price Class 100, you avoid expensive regions.
- Minimum Usage: There is no minimum fee; you pay only for what you use.
- Regional Edge Caches: These are larger caches that sit between origin and edge locations. They are not affected by Price Class; they always exist in each region and help reduce origin load. However, the edge locations that serve end users are limited by Price Class.
Configuration and Verification
You can set Price Class during distribution creation or update it later.
AWS CLI example to create a distribution with Price Class 100:
aws cloudfront create-distribution \
--origin-domain-name mybucket.s3.amazonaws.com \
--default-root-object index.html \
--price-class PriceClass_100Update an existing distribution (requires a distribution config file):
aws cloudfront get-distribution-config --id E1A2B3C4D5E6F > dist-config.json
# Edit dist-config.json, change PriceClass to PriceClass_200
aws cloudfront update-distribution --id E1A2B3C4D5E6F --if-match ETagValue --distribution-config file://dist-config.jsonVerification: Use aws cloudfront get-distribution --id E1A2B3C4D5E6F and check the PriceClass field in the output.
Interaction with Related Technologies
Origin Shield: This is an additional caching layer that can reduce origin load. Origin Shield is region-specific and works independently of Price Class. However, if you use Origin Shield, ensure it is in a region that is included in your Price Class? Actually, Origin Shield is always available; the edge locations that use it are limited by Price Class.
Lambda@Edge: You can run Lambda functions at edge locations. If your distribution uses Price Class 100, Lambda@Edge functions only execute in US, Canada, and Europe. For Price Class 200, they execute in additional regions. This is important for cost optimization.
WAF (Web Application Firewall): WAF can be associated with CloudFront. WAF pricing is per web ACL and per rule, and is independent of Price Class. However, you might choose to use WAF only on distributions with Price Class All to protect global users.
Real-Time Logs: Logs can be sent to Kinesis Data Streams. The logging cost is per request, so restricting to Price Class 100 reduces logging volume.
Performance and Cost Trade-offs
The key trade-off is latency vs. cost. For example, if your user base is primarily in the US and Europe, Price Class 100 is cost-effective. If you have users in Asia, Price Class 200 is a good middle ground. For a truly global audience, Price Class All is necessary but more expensive. The exam often tests this trade-off. You should know that CloudFront automatically redirects users to the nearest edge location within your Price Class; there is no manual routing.
Additional Pricing Considerations
Data Transfer Out to Internet: This is the largest cost component. Prices vary by region. For Price Class 100, you only pay US/Europe rates. For Price Class 200, you also pay Asia and South America rates. For Price Class All, you pay all rates.
Request Pricing: Each HTTP/HTTPS request incurs a cost. Prices vary by region similarly.
Invalidation Requests: You pay for invalidation paths (first 1000 per month free). Invalidation costs are not affected by Price Class.
Dedicated IP Custom SSL: Additional cost, not affected by Price Class.
Field-Level Encryption: Additional cost per request, independent of Price Class.
Best Practices
Analyze your user geographic distribution using CloudFront reports or third-party analytics.
Start with Price Class All for initial deployment, then analyze cost and performance. If most traffic comes from US/Europe, switch to Price Class 100.
For cost-sensitive applications with global users, consider using multiple distributions: one for US/Europe (Price Class 100) and another for rest of world (Price Class 200 or All). Route users based on their geographic location using Route 53 geo-location routing.
Monitor CloudFront cost and usage reports in AWS Cost Explorer to identify opportunities to reduce Price Class.
Exam Tips
The exam will present scenarios where you need to reduce costs while maintaining acceptable performance for a given user base. For example: "A company serves content primarily to users in the US and Europe. How can they reduce CloudFront costs without significantly impacting performance?" Answer: Change Price Class to 100.
Another scenario: "A company wants to serve content globally with minimal latency but is on a tight budget." The best answer might be Price Class 200 if users in Australia are few, but if latency is critical for all, Price Class All is required.
Be aware that Price Class does not affect caching behavior or TTL; it only affects which edge locations are used.
The exam may trick you by suggesting you can select individual edge locations or regions. You cannot; you can only choose from the three Price Classes.
Also, note that CloudFront's regional edge caches are not limited by Price Class; they exist in all regions to cache content from origin, but the edge locations that serve users are limited.
Identify User Geographic Distribution
Analyze your application's user base using CloudFront reports, third-party analytics, or AWS WAF logs. Determine which regions generate the most traffic. For example, if 90% of users are in the US and Europe, Price Class 100 may suffice. This step is critical because choosing the wrong Price Class either increases cost unnecessarily or degrades performance for distant users.
Select Price Class During Distribution Creation
In the CloudFront console, under 'Distribution Settings', you will find 'Price Class'. Choose from: 'Use Only US, Canada, and Europe' (Price Class 100), 'Use Only US, Canada, Europe, and Asia Pacific and Africa' (Price Class 200), or 'Use All Edge Locations' (Price Class All). The default is 'Use All Edge Locations'. If using AWS CLI, set the `--price-class` parameter to `PriceClass_100`, `PriceClass_200`, or `PriceClass_All`.
Content Replication to Selected Edge Locations
Once the distribution is created, CloudFront automatically replicates your content (cached objects) only to edge locations within the selected Price Class. For example, with Price Class 100, content is cached only in US, Canada, and European edge locations. Users in other regions will be served from the nearest included edge, which may be far away, increasing latency. This replication happens gradually as objects are requested.
User Request Routing Based on Price Class
When a user requests content, CloudFront's DNS system routes them to the edge location that is both in your Price Class and geographically closest. If the closest edge is not in your Price Class, the request is routed to the next-closest edge that is included. For instance, a user in Sydney, Australia, with Price Class 100, will be routed to an edge in the US West (Oregon) or possibly Europe, resulting in high latency (200-300ms). With Price Class 200, they might be served from Singapore (100-150ms). With Price Class All, they could be served from Sydney itself (10-20ms).
Monitor Costs and Adjust Price Class
After deployment, monitor CloudFront costs using AWS Cost Explorer. Compare data transfer and request costs across regions. If you notice high costs from regions you don't intend to serve, consider switching to a lower Price Class. You can update the Price Class at any time without recreating the distribution. However, changing the Price Class causes a brief propagation period (minutes) as the new edge locations are activated or deactivated.
Scenario 1: E-commerce Platform with US/Europe Focus
A mid-sized e-commerce company based in the US sells primarily to customers in the US and Europe. They use CloudFront to deliver product images and static assets. Initially, they used Price Class All, but their monthly CloudFront bill was $5,000, with $1,000 coming from requests in Asia and Australia, where they had very few customers. By switching to Price Class 100, they reduced their bill to $4,000, with only a negligible increase in latency for the few Asian users (who now hit US West edges instead of Singapore). The change was seamless: they updated the distribution configuration via the console and within 10 minutes all new requests were served from the reduced set of edges. They also configured CloudFront reports to verify that 99% of users were still served from US/Europe edges.
Scenario 2: Global SaaS Application with Mixed User Base
A SaaS company provides a collaboration tool used by enterprises worldwide. They have significant user bases in the US, Europe, India, and Australia. They need low latency for all users. Using Price Class All is necessary, but costs are high (~$20,000/month). To optimize, they implement a multi-distribution strategy: one distribution with Price Class 100 for US/Europe users, and another with Price Class All for the rest. They use Route 53 geo-location routing to direct users to the appropriate distribution based on their IP address. This reduces costs by ~30% because the majority of traffic (US/Europe) is served at lower rates. However, this adds complexity: they must maintain two distributions and ensure cache consistency (e.g., by using the same origin and cache behaviors). They also monitor for users who might be misrouted due to inaccurate geo-IP data.
Scenario 3: Video Streaming Service with Cost Sensitivity
A startup streams short video clips globally. They are on a tight budget and most of their users are in the US and Europe. They choose Price Class 100 initially. However, they notice that some users in Brazil experience high buffering (latency >300ms). They analyze the cost-benefit: upgrading to Price Class 200 would add Brazilian and South African edges, reducing latency for those users but increasing costs by 15%. They decide to upgrade to Price Class 200 because the improved user experience in Brazil (a growing market) justifies the cost. They also enable Origin Shield in the US East region to reduce origin load, which works independently of Price Class.
Common Misconfigurations
Setting Price Class All when most users are in US/Europe, wasting money.
Not considering that Lambda@Edge functions only run in edge locations included in the Price Class. If you use Lambda@Edge for user-specific logic, ensure the Price Class includes the regions where your users are.
Assuming Price Class affects regional edge caches—it does not. Regional edge caches are always present in each region to cache content from origin, but the edge locations that serve end users are limited.
What the SAA-C03 Exam Tests
The exam tests your ability to select the appropriate Price Class based on cost and performance requirements. The objective code is 4.4: Identify cost-effective AWS services. Specifically, you need to understand:
The three Price Classes and their geographic coverage.
The trade-off between cost and latency.
That Price Class does not affect cache TTL, origin shield, or regional edge caches.
That you cannot select individual regions; only the three predefined classes.
Common Wrong Answers and Why Candidates Choose Them
Selecting Price Class All to "ensure the best performance for all users" without considering cost. Candidates often choose this because it seems like the safest option. However, the exam asks for cost-optimized solutions. If the user base is primarily in one region, Price Class 100 or 200 is more appropriate.
Thinking you can choose a custom set of regions (e.g., "only US and Europe") This is not possible. CloudFront only offers three predefined Price Classes. Candidates might think they can use origin groups or geographic restrictions to achieve this, but those features do not limit which edge locations serve content.
Confusing Price Class with geographic restrictions. Geographic restrictions (whitelist/blacklist) control which countries can access content, not which edge locations serve it. They are independent.
Assuming Price Class affects data transfer pricing to origin. Data transfer from CloudFront to origin (e.g., S3) is free; Price Class only affects data transfer to the internet.
Specific Numbers and Terms That Appear on the Exam
Price Class 100: US, Canada, Europe.
Price Class 200: Adds Asia Pacific, South America, Africa.
Price Class All: All edge locations worldwide.
Default: Price Class All.
Costs are lower in US/Europe; higher in Asia and South America.
Edge Cases and Exceptions
If you use Lambda@Edge, the function runs only in edge locations included in the Price Class. For example, with Price Class 100, Lambda@Edge will not execute in India or Australia. This can cause unexpected behavior if your function is triggered by requests from those regions (the function will not run, and the request may fail or be served from a different edge without the function).
CloudFront's Origin Shield is not affected by Price Class; it always exists in each region to cache content from origin. However, the edge location that requests content from Origin Shield is limited by Price Class.
Changing Price Class does not invalidate cached content; existing cached objects remain until their TTL expires.
How to Eliminate Wrong Answers
If the question asks for "most cost-effective" and the user base is US/Europe, eliminate Price Class All and Price Class 200.
If the question mentions "global users with minimal latency," Price Class All is required. Do not choose a lower class even if cost is a secondary concern.
If the question says "reduce costs without significant performance impact," look for a Price Class that excludes high-cost regions that have few users.
Be wary of answers that suggest using separate distributions for different regions unless the question explicitly mentions using Route 53 geo-routing.
CloudFront offers three Price Classes: Price Class 100 (US, Canada, Europe), Price Class 200 (adds Asia, South America, Africa), and Price Class All (worldwide).
Price Class controls which edge locations can serve your content, directly affecting cost and latency.
Default Price Class is All; you must explicitly change it to reduce costs.
Price Class does not affect cache TTL, origin shield, or geographic restrictions.
Lambda@Edge functions only execute in edge locations included in the Price Class.
You can update Price Class on an existing distribution without downtime.
For cost optimization, choose Price Class 100 if your users are primarily in US/Europe; Price Class 200 for a balance; Price Class All for global low latency.
These come up on the exam all the time. Here's how to tell them apart.
Price Class 100
Includes US, Canada, Europe only.
Lowest cost per GB and per request.
Best for user bases concentrated in North America and Europe.
Users in Asia, Australia, South America experience higher latency.
Lambda@Edge only runs in US, Canada, Europe.
Price Class All
Includes all edge locations worldwide.
Highest cost per GB and per request.
Best for global user base requiring low latency everywhere.
Users in all regions get low latency.
Lambda@Edge runs in all edge locations.
Mistake
Price Class 100 only uses edge locations in the United States.
Correct
Price Class 100 includes edge locations in the United States, Canada, and Europe. It is not limited to the US alone.
Mistake
You can select individual regions or edge locations within a Price Class.
Correct
CloudFront only offers three predefined Price Classes. You cannot customize which specific regions are included. You must choose one of the three options.
Mistake
Price Class affects the caching behavior or TTL of objects.
Correct
Price Class only controls which edge locations are used to serve content. It does not affect cache duration, cache policies, or origin shield behavior.
Mistake
Using Price Class All always provides the best performance.
Correct
While Price Class All uses all edge locations, the performance improvement over Price Class 200 may be marginal for users already close to included edges. The main benefit is for users in remote regions like Australia or New Zealand. The cost increase may not justify the performance gain if those users are few.
Mistake
Changing Price Class requires recreating the distribution.
Correct
You can update the Price Class of an existing distribution via the console, CLI, or SDK without recreating it. The change propagates within minutes.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
Price Class 100 includes only edge locations in the United States, Canada, and Europe. Price Class 200 adds edge locations in Asia Pacific (including India, Japan, Singapore, South Korea, Taiwan), South America (Brazil), and Africa (South Africa). Price Class 200 is a middle ground between cost and global reach. If your users are spread across these regions, Price Class 200 provides better latency than Price Class 100 at a moderate cost increase.
Yes, you can use CloudFront geographic restrictions (whitelist or blacklist) to allow or block access from specific countries. However, this is independent of Price Class. Geographic restrictions control who can access your content, while Price Class controls which edge locations serve it. For example, you can use Price Class 100 and still block access from Europe if desired.
No, changing Price Class does not invalidate cached content. Existing cached objects remain at their respective edge locations until their TTL expires. However, new requests will be served from the new set of edge locations. If you want to clear the cache, you must create an invalidation request separately.
Data transfer costs vary by region. By restricting to Price Class 100, you only pay the lower rates for US, Canada, and Europe. For Price Class 200, you also pay higher rates for Asia and South America. For Price Class All, you pay the highest rates for all regions including Australia and New Zealand. The exact rates are published on the AWS CloudFront pricing page.
The user is routed to the nearest edge location that is included in your Price Class. For example, a user in Australia with a Price Class 100 distribution will be served from an edge in the US West (Oregon) or possibly Europe. This increases latency significantly. The content is still delivered, but performance may be poor.
No, a single CloudFront distribution has one Price Class that applies to all behaviors. However, you can create multiple distributions with different Price Classes and use Route 53 geo-location routing to direct users to the appropriate distribution based on their location. This allows you to serve different user groups with different Price Classes.
No, Origin Shield is a separate feature that provides an additional caching layer in each region. It is not affected by Price Class. Origin Shield always exists in each region to cache content from the origin, but the edge locations that request content from Origin Shield are limited by Price Class.
You've just covered CloudFront Pricing Tiers and Price Classes — now see how well it sticks with free SAA-C03 practice questions. Full explanations included, no account needed.
Done with this chapter?