Last night I spent a few hours playing with Amazon S3.
Tools I used: S3Fox and s3cmd. s3cmd is good for sending files to S3 with the command line. I am not so comfortable using S3Fox (which is far more resource intensive, being a plugin of Firefox) to transfer big files, but in any case this is needed for setting the ACL (read/write permissions) as s3cmd doesn’t seem to be able to do it.
A really cool feature is the seamless Bittorrent support. Say you are sharing a file from S3 with the url http://s3.amazonaws.com/tinthefatty/bigfile.iso, all the BT users need to do is to download the torrent file from http://s3.amazonaws.com/tinthefatty/bigfile.iso?torrent, and give this file to the BT client. In theory one could also save some S3 bandwidth (cost!) by seeding the file with one’s own BT client. Neat!
I have also been reading up on Amazon EC2. The flexibility of bringing up new sessions or bring down existing sessions as necessary at the command line is very attractive. The biggest complaint so far is that there is no built-in persistent storage, i.e. unless you specifically do something to save your stuff (probably to S3), you lose all your data when your EC2 session dies or is killed. This makes the EC2 a very specialized and niche solution (e.g. mass video conversion), and I believe that until this issue is resolved, other suppliers like Joyent may be more suitable for startups looking for hosting services or application servers.