"

 OR removed from page 

I removed the following section due to its entirely being original research and speculation. Per User:SteveLoughran's request, here it is.

The implementation details of S3 are not documented, but it is possible to infer aspects of it from the behaviour (and pricing) of the service.

 There is an S3 repository in the US; there is another in Europe. Their locations are not public.
 From an EC2 server, read access can initially be slow. This could imply that S3 data is not always in the same physical location as all the EC2 servers. 
 Amazon do not bill for data transferred between the US EC2 server farm and the US S3 store, but they do for access between the servers and the European S3 store. While the S3 store and the EC2 servers may be in separate locations, they must be close enough together that cost of transferring data is neglible. Both services are presumably hosted on the same Metropolitan Area Ethernet.
 Connectivity between the S3 datastores and the rest of the Internet is good. This implies they  are close to one of the main Internet exchanges.
 After the initial slow access, later accesses are fast. This could imply that the data is cached.
 Write access is tangibly slower than writing to a local hard disk. Amazon guarantee that when the operation has completed, data has been written to disk in multiple locations. 
 Amazon warn that even after data has been written, old values may still be read. This implies that there can be more than one cache of the data, and that every GET request does not trigger a check from the front-end caches to the back-end store.
 Amazon adjusted their initial pricing from a simple flat rate per GB to one that charges small frequently retrieved items per thousand GET or HEAD operations, rather than purely per byte. There may be a flat cost for every entry (indexing, billing entries) and a per-request cost in CPU-time for every access. These fixed overheads are now billed for.

The dynamic per-bucket DNS entries are implemented by having a custom S3 DNS server that returns a hostname for every host under the s3.amazonaws.com subdomain, even if a bucket of that name has never been created: 
> nslookup made-up-name-for-wikipedia.s3.amazonaws.com

Non-authoritative answer:
made-up-name-for-wikipedia.s3.amazonaws.com     canonical name = s3-directional-w.amazonaws.com.
s3-directional-w.amazonaws.com  canonical name = s3-1-w.amazonaws.com.
Name:   s3-1-w.amazonaws.com
Address: 72.21.211.228

At the identified host, there is a web server that always serves up 404 error pages when a GET request against a nonexistent bucket is issued.

> telnet made-up-name-for-wikipedia.s3.amazonaws.com  80
Trying 72.21.207.212...
Connected to s3-1-w.amazonaws.com.
Escape character is '^]'.
GET / HTTP/1.0
host: made-up-name-for-wikipedia.s3.amazonaws.com

HTTP/1.1 404 Not Found
x-amz-request-id: F0F7301EF1873635
x-amz-id-2: 9gT/YmUa7EZXIm9FNv7GGThAre8Kn5CEfXpoJpthwuq54Pm+5RRcThAdBa20XsLj
Content-Type: application/xml
Date: Wed, 27 Feb 2008 18:54:42 GMT
Connection: close
Server: AmazonS3


NoSuchBucket
The specified bucket does not exist
F0F7301EF1873635
made-up-name-for-wikipedia
9gT/YmUa7EZXIm9FNv7GGThAre8Kn5CEfXpoJpthwuq54Pm+5RRcThAdBa20XsLj

Connection closed by foreign host.

Notice how the XML error text is intended for machine interpretation, rather than end users. The RequestId element can be used in support requests, as Amazon log every request, at least for a few days."