I'm developing a quite popular mobile application which needs to download some amount of data at first run (then check availability of new data periodically). Currently I'm using shared hosting at Dreamhost and I'm very satisfied, but when downtime occurs, fresh users are screwed, app won't work without initial package.
I can buy secondary hosting and embed source switching logic inside app, but it raises complexity of network part. Instead, I was thinking about some kind of distributed hosting, where data are available from multiple locations.
I need only hosting of files. Are such services available for cheap? Is the Amazon S3 the right direction or should I look for something else? What are disadvantages?
You can use S3 for serving files directly without cloudfront to save on cost. Some Scripiting required possibly. You will have ample help on this with jfgi.
If you sign up now as a new user you get ample resources for the free tier. I think its much easier than using shared hosting once you get the hang of it. It like driving on the other side of the wheel.
I agree with your census that amazon may be a good solution in your case. I use linode in load balance if I have high traffic and free users as Amazon bandwidth costs higher.