Amazon CloudFront – Content Uploads Via POST, PUT, other HTTP Methods
As a regular reader of this blog you probably know a thing or two about Amazon CloudFront and have a decent understanding of the basic value proposition: it is a scalable, easy to use web service for content delivery, with a pay-as-you-go pricing model and the ability to accelerate the delivery of static and dynamic web content. With features such as SSL support, root domain hosting, and custom error pages, CloudFront addresses the needs of just about any web site.
The Round Trip
Today we are adding an important new feature that will make CloudFront even more useful. You can now configure any of your CloudFront distributions so that they support five additional HTTP methods: POST, PUT, DELETE, OPTIONS, and PATCH.
Up until today, you could use CloudFront to efficiently distribute content from the “center” (the static or dynamic origin) out to the edges, where the customers are located. With today’s release you can also use CloudFront to accelerate the transfer of information from the end-user back to the origin. This has been the top feature request for CloudFront.
You will see a number of architectural and operational benefits from this feature.
First and foremost, you can now place a single CloudFront distribution in front of your site, including the dynamic or interactive portions that make use of HTML forms or accept user data in some other way. You no longer have to create and manage multiple distributions or domain names in order to accept POST or PUT requests.
Second, your users can now benefit from accelerated content uploads. After you enable the additional HTTP methods for your application’s distribution, PUT and POST operations will be sent to the origin (e.g. Amazon S3) via the CloudFront edge location, improving efficiency, reducing latency, and allowing the application to benefit from the monitored, persistent connections that CloudFront maintains from the edge locations to the origin servers.
Last, but not least, you can now use CloudFront for web sites that support a resource-oriented REST-style web service API, where the GET, PUT, DELETE, and PATCH operations act on stored information. In case you didn’t know (I definitely didn’t), the PATCH operation allows you to replace all or part of an existing object.
You can add this behavior to an existing distribution or you can enable it when you create a new distribution, by setting the Allowed HTTP Methods option:
You shouldn’t need to make any changes to your application: CloudFront simply proxies the requests for the new HTTP methods via the edge. HEAD and GET requests are cached; all others are passed along to the origin.
This new feature is available now and you can start using it today.
Data transfer from the edge to the origin is priced up to 83% lower than data transfer from the edge to end users. For example, data transfer from CloudFront edge locations in the US or Europe to your origin server is $0.02 / GB. Detailed pricing information is available on the Amazon CloudFront Pricing Page.