Deliver personalized, dynamic web content at no additional cost without writing new code

A typical website generally contains a mix of static and dynamic content. Static content includes images or style sheets; dynamic or application generated content includes elements of your site that are personalized to each viewer. Previously, developers who wanted to improve the performance and reliability of their dynamic content had limited options, as the solutions offered by traditional CDNs are expensive, hard to configure and difficult to manage.


earth-networks-thumbnail
video-thumb-dynamic-content-02

With Amazon CloudFront, there are no additional costs for serving dynamic content beyond Amazon CloudFront’s existing low prices for data transfer and requests, and no required long term commitments for use. There are also no up-front fees, no monthly platform fees, and no need to hire expensive consultants to help with configuration.

Get Started with AWS for Free

Create a Free Account
Or Sign In to the Console

AWS Free Tier includes 50GB data transfer out, 2,000,000 HTTP and HTTPS Requests with Amazon CloudFront.

View AWS Free Tier Details »

Download this AWS-sponsored Frost & Sullivan white paper to learn why amazon.com chose Amazon CloudFront to deliver the vast majority of its global CDN traffic. Download the Amazon CloudFront CDN paper.

Amazon CloudFront offers a simple, cost-effective way to improve the performance, reliability and global reach of your entire website for both static content and the dynamic portions of your site that change for each end user.

Amazon CloudFront works seamlessly with dynamic web applications running in Amazon EC2 or your origin running outside of AWS without any custom coding or proprietary configurations, making the service simple to deploy and manage. You can use a single Amazon CloudFront distribution to deliver your entire website, including both static and dynamic (or interactive) content. This means that you can continue to use a single domain name (e.g., www.example) for your entire website without the need to separate your static and dynamic content or manage multiple domain names on your website.

Amazon CloudFront enables you to include query string parameters or cookies to help customize your web pages for each viewer. You can also configure multiple cache behaviors for your web distribution based on URL patterns on your website. These cache behaviors give you granular control over how you want Amazon CloudFront to cache different portions of your website.

These features are described in more detail below:

A cache behavior is the set of rules you configure for a given URL pattern based on file extensions, file names, or any portion of a URL path on your website (e.g., *.jpg). You can configure multiple cache behaviors for your web distribution. Amazon CloudFront will match incoming viewer requests with your list of URL patterns, and if there is a match, the service will honor the cache behavior you configure for that URL pattern. Each cache behavior can include the following Amazon CloudFront configuration values: origin server name, viewer connection protocol, minimum expiration period, query string parameters, cookies, and trusted signers for private content.

Amazon CloudFront edge locations can look at the value of the User Agent header to detect the device type of all the incoming requests. Amazon CloudFront can determine whether the end user request came from a Desktop, Tablet or Mobile device and pass that information in the form of new HTTP Headers to your origin server - Amazon EC2, Elastic Load Balancing, or your custom origin server. Your origin server can use the device type information to generate different versions of the content based on the new headers. Amazon CloudFront will also cache the different versions of the content at that edge location.

Amazon CloudFront can also detect the country where the end users are accessing your content from. Amazon CloudFront can then pass the information about the country in a new HTTP header to your custom origin server. Your origin server can generate different versions of the content for users in different countries and cache these different versions at the edge location to serve subsequent users visiting your website from the same country.

Amazon CloudFront may be configured to forward the Origin header value so your origin server (Amazon S3 or a custom origin) can support cross-origin access via CORS (Cross-Origin Resource Sharing). CORS defines a way for client web applications that are loaded in one domain to interact with resources in a different domain.

You can configure one or more origin servers for your Amazon CloudFront download distribution. Origin servers can be an AWS resource, such as Amazon S3, Amazon EC2, Elastic Load Balancing, or a custom origin server outside of AWS. Amazon CloudFront will request content from each origin server by matching the URLs requested by the viewer with rules you configure for your distribution. This feature allows you the flexibility to use each AWS resource for what it’s designed for – Amazon S3 for storage, Amazon EC2 for compute, etc. – without the need to create multiple distributions and manage multiple domain names on your website. You can also continue to use origin servers you already have set-up without the need to move data or re-deploy your application code.

Amazon CloudFront uses the expiration period you set on your files (through cache control headers) to determine whether it needs to check the origin for an updated version of the file. If you expect that your files will change frequently, you can set a short expiration period on the file. Amazon CloudFront accepts expiration periods as short as 0 seconds (in which case Amazon CloudFront will revalidate each viewer request with the origin). Amazon CloudFront also honors special cache control directives such as private, no-store, etc.; these are often useful when delivering dynamic content that may not be cached at the edge.

Query string parameters are often used to return customized content generated by a script running on the origin server. You can optionally configure query strings to be forwarded to the origin servers and be included in the unique identity of the cached object. This feature can be enabled separately for each unique cache behavior you configure. Query string parameters can thus help you customize your web pages for each viewer while still taking advantage of the performance and scale benefits offered by caching content at Amazon CloudFront edge locations.

Amazon CloudFront supports delivery of dynamic content that is customized or personalized using HTTP cookies. To use this feature, you specify whether you want Amazon CloudFront to forward some or all of your cookies to your custom origin server. You may also specify wildcard characters in the cookie name to forward multiple cookies matching a string format. Amazon CloudFront then considers the forwarded cookie values when identifying a unique object in its cache. This way, your end users get both the benefit of content that is personalized just for them with a cookie and the performance benefits of Amazon CloudFront.

You can use Amazon CloudFront to forward all (or a whitelist of) request headers to your origin server. These headers contain information such as the device used by your visitors or the country from which they accessed your content. You can configure CloudFront to cache your content based on the values in the headers, so you can deliver customized content to your viewers. For example, if you are hosting multiple websites on the same web server, you can configure Amazon CloudFront to forward the Host header to your origin. When your origin returns different versions of the same object based on the values in the Host header, Amazon CloudFront will cache the objects separately based on those values.

Custom SSL certificate support lets you deliver content over HTTPS using your own domain name and your own SSL certificate. This gives visitors to your website the security benefits of CloudFront over an SSL connection that uses your own domain name in addition to lower latency and higher reliability. You can also configure CloudFront to use HTTPS connections for origin fetches so that your data is encrypted end-to-end from your origin to your end users. Configuring Custom SSL certificate support is easy; you don’t need to learn any proprietary code or hire any consultants to configure it for you. Get started by visiting the CloudFront Custom SSL detail page and choosing the Custom SSL feature that best fits your needs.

You can use CloudFront to deliver content from the root domain, or "zone apex" of your website. For example, you can configure both http://www.example.com and http://example.com to point at the same CloudFront distribution, without the performance penalty or availability risk of managing a redirect service. To use this feature, you create an Amazon Route 53 Alias record to map the root of your domain to your CloudFront distribution.

You can configure Amazon CloudFront to include the protocol (HTTP vs HTTPS) of your end user’s request as part of the cache key to uniquely identify an object in cache. This allows you to customize your content based on the protocol your end users are using to access your content.

Amazon CloudFront supports the following HTTP methods: GET, HEAD, POST, PUT, DELETE, OPTIONS, and PATCH. This means you can improve the performance of dynamic websites that have web forms, comment and login boxes, “add to cart” buttons or other features that upload data from end users. It also means you can now use a single domain name to deliver your whole website through CloudFront thereby accelerating both the download and upload parts of your website. By default, the response to GET and HEAD methods will be cached at CloudFront edge locations. You may choose to configure your Amazon CloudFront distribution to cache the response for the OPTIONS request. Other HTTP methods (POST, PUT, DELETE, and PATCH) are not cached and simply proxied to the origin by Amazon CloudFront edge locations. You may need to enable support for these additional HTTP methods for you existing CloudFront distributions using the AWS Management Console or the CloudFront API.

In addition, the full suite of Amazon CloudFront’s capabilities is available for you to use when configuring Amazon CloudFront to deliver a dynamic website. These capabilities include serving private content, secure delivery of content, object versioning and cache invalidation, access logs for usage reporting and monitoring, etc. To learn more about all Amazon CloudFront features, please refer to the Amazon CloudFront Developer Guide.

Amazon CloudFront also offers a Service Level Agreement (SLA) which provides for a service credit if a customer’s monthly uptime percentage is below our service commitment in any billing cycle. More information can be found on the Amazon CloudFront SLA page.

In addition to this page, other pages that you might find of interest include the Amazon CloudFront product page and the Amazon CloudFront Developer Guide.

Amazon CloudFront has implemented several performance optimizations that accelerate the delivery of your entire website (including both dynamic and static content) from the origin to your end users. These performance improvements include maintaining persistent connections with the origin and other network path optimizations to speed up the delivery of dynamic content. Specifically, each of your end users is routed to the Amazon CloudFront edge location closest to them, in terms of internet latency. Then, their requests are carried back to your origin server running in AWS on connections that Amazon monitors and optimizes for performance.

Amazon CloudFront also reuses existing connections between the Amazon CloudFront edge and the origin server reducing connection setup latency for each origin request. Other connection optimizations are also applied to avoid internet bottlenecks and fully utilize available bandwidth between the edge location and the viewer. This means that Amazon CloudFront can speed-up the delivery of your dynamic content and provide your viewers with a consistent and reliable, yet personalized experience when navigating your web application. Amazon CloudFront also applies the same performance benefits to upload requests as those applied to the requests for downloading dynamic content.

Frost & Sullivan White Paper on Amazon CloudFront performanceAWS recently commissioned Frost & Sullivan to write a white paper on Amazon CloudFront performance compared to other top-tier CDNs. The paper, authored by CDN expert Dan Rayburn, provides comparative performance data that concludes that Amazon CloudFront is fastest among top CDNs in several latency tests and beats the average latency of other top CDNs in all tests. The paper also presents results of tests run on the Amazon.com site (which runs performance testing on several top CDNs) and notes why the vast majority of CDN traffic on the Amazon.com site is currently served by Amazon CloudFront Download the paper.

Amazon CloudFront works seamlessly with dynamic web applications running in Amazon EC2 or your origin running outside of AWS without any custom coding or proprietary configurations, making the service simple to deploy and manage. You can use a single Amazon CloudFront distribution to deliver your entire website, including both static and dynamic or interactive content. This means that you can continue to use a single domain name (e.g., www.example) for your entire website without the need to separate your static and dynamic content or manage multiple domain names on your website.

You can interact with Amazon CloudFront through the AWS Management Console’s simple graphical user interface. Or, a single API call lets you get started distributing content from your Amazon S3 bucket or Amazon EC2 instance or other origin server through the Amazon CloudFront network. Any changes you make to your existing configuration take effect across the entire global network within minutes. Plus, since there’s no need to negotiate with a sales person, you can get started quickly and begin delivering your entire website using Amazon CloudFront.

Configuring Amazon CloudFront in the AWS Management Console

console

Amazon CloudFront is also designed for use with other Amazon Web Services. When using Amazon EC2 as your Amazon CloudFront origin server, you get the benefit of working with the same set of tools to configure and manage the delivery of your entire web application. In addition, Amazon EC2 offers the same pay-as-you-go and pay-for-use pricing model as Amazon CloudFront. Plus, the routes between Amazon CloudFront edge locations and Amazon EC2 data centers are constantly monitored and optimized for performance and availability. Any issues with these network routes are quickly detected and fixed or viewers are automatically routed to another Amazon monitored network route, minimizing impact to viewers of your applications.

Web applications here are highly personalized (e.g. recommendations) and fast discovery of products (via search and browse) is critical. Performance improvements for applications here translate directly into revenue and end user loyalty.

With shorter attention span of end users, news and sports applications need to be customized to each end user. Yet, this content can be cached for short periods of time (e.g. a few seconds) to help scalability and improve performance for end users.

Web applications here have a geographic focus in customizing content for end users. Content can be cached at edge locations for varying lengths of time depending on type of content. For example, hourly weather updates can be cached for up to an hour, while urgent weather alerts may only be cached for a few seconds so end users always have the most up to date information available to them.

Targeted ads are computed on-the-fly based on cookie or query string data, and advertisers generally need low latency in serving ads. Amazon CloudFront can help meet the performance and personalization needs for such applications.

Applications here also have personalized and interactive content integrating user profiles, preferences, friends and activities. The result of these features is long-tail content that requires frequent trips to the origin servers. CloudFront’s network and path optimizations can help make the delivery of such content faster, helping social media applications perform better.

Earth Networks provides consumers and businesses weather and atmospheric data. Millions of users turn to the company’s WeatherBug products, which include mobile and desktop apps and the website www.weatherbug.com.

Earth Networks uses a CDN so that they can provide dynamic and personalized web based content quickly to their users with very low latency and high performing response times. Specifically, they need to be able to provide local information to the end user, in near real time, and need a CDN that allows them to adjust things like time to live, query strings, and cookie information so that they can pass all that information back to the origin to pull just what the user needs.

“As a provider of weather information at the neighborhood level, there’s no way we could use a CDN that did not provide us with both dynamic content and the ability to optimize under things such as query strings, cookies and low TTLS. Our use case spans the entire array of features that CloudFront provides,” says Andy Rosenbaum, Director of Web and Desktop Development at Earth Networks - WeatherBug. “One of the challenges we had with our previous CDN is that we needed to have code written that was specific to that CDN, which caused our development costs to be higher. We were able to achieve the same level of performance without having to write customized code. We’re seeing about a 50% reduction in cost with an equivalent baseline in performance that we saw with our previous CDN and ultimately we’re anticipating about 20% reduction in Amazon EC2 origin instances under CloudFront.”

You can visit Earth Networks at www.earthnetworks.com or see the company’s WeatherBug products at www.weatherbug.com.

On August 5, 2012, NASA’s Mars rover Curiosity landed on the Red Planet and the entire landing experience was made available to viewers around the world via the mars.jpl.nasa.gov website. NASA JPL (Jet Propulsion Laboratory) delivered the entire landing website experience using Amazon CloudFront. This included the regular HTTP website content with blogging and status updates, the static images with pictures from Mars, and the interactive unity gaming engine downloads where visitors could participate at home by driving the Mars rover and interact with real data from Mars in near real time.

Performance and scalability were very important to JPL and they utilized Amazon CloudFront features such as query strings, low TTLs, multiple origins and multiple cache behaviors to help speed up the delivery of the entire http://mars.jpl.nasa.gov/ website while continuing to use different AWS services as origin servers for different types of content on the website.

Tom Soderstrom, CTO of NASA/JPL said that because of so many unknowns, they ended up using many of the CloudFront scalability and real-time tuning features. He further said that during the landing, the Curiosity landing was more popular than the Olympics based on the traffic served, so the tuning features were indeed needed and worked well.

You can visit the website at http://mars.jpl.nasa.gov/.

Amazon CloudFront is helping make premium and innovative content delivery features that other CDNs sell at high prices much less expensive and much easier to use. There are no additional costs for serving dynamic content beyond Amazon CloudFront’s existing low prices for data transfer and requests, and no required long-term commitments for use. There are also no up-front fees, no monthly platform fees, and no need to hire expensive consultants to help with configuration.

You can get started by simply signing-up on this website and creating an Amazon CloudFront distribution to serve your static and dynamic content within minutes. If you prefer, you can also speak with a member of the Amazon CloudFront sales team to discuss your usage and ways you can save further by using the option to commit to a monthly usage level for 12 months or longer. You can contact the Amazon CloudFront sales team by submitting this form: http://aws.amazon.com/contact-us/aws-sales/.

Amazon CloudFront also offers a Service Level Agreement (SLA) which provides for a service credit if a customer’s monthly uptime percentage is below our service commitment in any billing cycle. More information can be found on the Amazon CloudFront SLA page.

Pay only for what you use. There is no minimum fee. Estimate your monthly bill using the AWS Simple Monthly Calculator.

You can view Amazon CloudFront pricing on our pricing page: http://aws.amazon.com/cloudfront/pricing/.