This is interesting, Amazon just announced upcoming price changes on their EC2 and S3 services. For EC2, they will move to a flexible bandwidth pricing scheme, depending on how much you download:
New Pricing (effective June 1st, 2007)
Instances
$0.10 per instance-hour consumed (or part of an hour consumed)
Data Transfer
$0.10 per GB - all data uploaded
$0.18 per GB - first 10 TB / month data downloaded
$0.16 per GB - next 40 TB / month data downloaded
$0.13 per GB - data downloaded / month over 50 TB
And for S3, they have added charges per request:
New Pricing (effective June 1st, 2007)
Storage
$0.15 per GB-Month of storage used
Data Transfer
$0.10 per GB - all data uploaded
$0.18 per GB - first 10 TB / month data downloaded
$0.16 per GB - next 40 TB / month data downloaded
$0.13 per GB - data downloaded / month over 50 TB
Data transferred between Amazon S3 and Amazon EC2 is free of charge
Requests
$0.01 per 1,000 PUT or LIST requests
$0.01 per 10,000 GET and all other requests*
* No charge for delete requests
Storage and bandwidth size includes all file overhead
I'm not sure if this changes my strategy to host all my images and client static sites, but I can really see why they need to do this, previously, you could have a whole bunch of tiny 1kb objects, and would only get charged for the total bandwidth. This could easily get quite expensive for Amazon, since they would have had a fixed overhead for each request. I'll have to monitor how things go, and perhaps use S3 for a more coarse-grained storage than I'm currently doing.
Still, for client sites that see low bandwidth, this is still much cheaper than most other hosting providers.