Anybody using Amazon Web Services (S3, EC2) in their startup?
amazon.com
amazon.com
I'm currently developing an open-source framework that allows theoretically infinite scalability utilizing round-robin dns, S3, EC2, S3DFS (allows mounting an S3 bucket as a local file system on multiple EC2 instances), SQLite (serverless embeddable database where each db is just a flat file).
S3DFS works at the block level and has read/write caching so is really fast. However, it requires a commercial license for non-personal use.
SQLite is amazing in it's power and simplicity. It will start to have issues on a high-traffic website, but I'm breaking each user into their own db file. That sounds really bad - but SQLite has a great feature that allows you to attach multiple databases together and run queries across them as if it's just one database (handy for site-wide stats, search indexing, etc). Also, since the db's are just flat-files - backing up is super-easy with tar gzip!
I'm using PHP for the coding, but anticipate other languages libraries to be built to use the system as well.
Help is welcome, just let me know if you're interested!
I was thinking of calling it infinizon - but that sounds kinda dorky - thoughts?
http://www.openfount.com/blog/s3dfs-for-ec2
Update: I just came across http://rightscale.com which is an amazing AWS console that allows you to control almost all aspects of EC2, S3, and SQS. Too many features to list here, but definitely a must see. I've been playing around with it and it works great.
5 nines means the service is down, on average, 5 minutes out of a year.
4 nines would be almost an hour.
That's still pretty damn good.
What's the point of this, then: http://developer.amazonwebservices.com/connect/entry!default.jspa?categoryID=101&externalID=519&fromSearchPage=true
a) don't take up much space,
b) don't change much and
c) don't have to have the latest data.
I'm not seeing where you can't host that DB on EC2. It might not be the optimal platform, but my guess is that EC2 will do a pretty good job for the money.
This theoretically can be addressed with a complex backup/redundancy model, but frankly, it's not worth the trouble. Alternatively, you can use a distributed filesystem based on S3, but the performance will be poor. Long story short, your database is your bread and butter, and EC2 simply can't provide the basic services required to run a DB efficiently.
2) Dynamic DNS. Extra headaches, simply not worth it.
EC2 was not designed for persistent data storage, it's a compute cloud.
That's not quite true: the HD contents survive crashes and reboots. Only if you release the node (or lose it otherwise -- it's not guaranteed to stay with you), the HD contents are lost.
I suspect lots of startups are finding it "stable enough", and the backup/redundancy planning needed manageable.
Maybe I'll just keep everything on S3 as key/value pairs and then use the Queue service to make it all happen. It'd be fun anyway.
-Steve fooworks.com