Amazon S3 has a more competitive outgoing bandwidth pricing. That works out best for me (lots of small files with small overall storage size but consume lots of bandwidth).
You need to ask yourself, what is your main use case? More often than not, if your use case is a web service serving up files over HTTP then Amazon is more competitive. I would say bandwidth would be the greater consideration in most cases for web services.
Even S3 outgoing price are ridiculously expensive for any kind of significant bandwidth use, that's what CDN are for (and in that area, cloudfront is really not cheap either).
I'm a fan of AWS and use a lot of their services, but their bandwith price from them to the outside world are far from the best deal (of course if your bandwith is still calculated in the hundreds of dollars this doesn't apply/matter much).
I know you weren't saying the contrary, but still I wanted to point it out.
Duplicity is a simple tool for signed/encrypted (PGP) differential backups using a variety of protocols including: ssh/scp, local file access, rsync, ftp, HSI, WebDAV, Tahoe-LAFS, and Amazon S3. I'm assuming that rackspace storage supports at least one of these?
There is a very easy to use command line interace, and also a GUI (which I have not tried).
One theory is that cloud hosting providers use memory as a metric to estimate a customer's use of resources that aren't directly paid for (bandwidth, CPU, support, etc). So even though you may be way overpaying for increased memory based on current RAM prices, their data may show that you're much more likely to also use more resources you aren't directly paying for and set the price accordingly.
Well you probably know its not really just the RAM you are paying, they just use the RAM amount as a label. If you take a large chunk of RAM, that significantly reduces the number of other users that can go on that machine. Really its the whole service is expensive when you want larger amounts of RAM.
Basically I think we are paying for all of their support people and infrastructure and also a healthy profit.
RAM is a resource that they can't oversubscribe, so it costs more.
If I have an instance with 8x CPU cores they can timeshare CPU time between multiple customers on that physical server, since it's unlikely that all instances will use 100% CPU 100% of the time.
However, if I have a server running memcached and a 30GB cache, they can't also cell that RAM to another customer. This limits the amount they can oversell server resources, thus they charge more for it.