Having this architecture in mind:
- server 1: webserver - floating/surges of CPU load and BW consumption
- server 2: dbserver - floating I/O from webserver and steady/heavy I/O from batch-process
- server 3: batch-process - steady/low CPU load and steady/heavy BW
What's the best solution for hosting?
Following Ryan's proposed architecture using Amazon EC2 (http://bit.ly/Osfy5), I thought about this using Rackspace's: (bear in mind that this is a start-up, zero traffic at the moment)
Webserver
- two 256MB servers
- each server using Cloud Servers API (http://bit.ly/3veAJv) to automaticly resize when needed
- round-robin DNS load balancing
Database
- one 512MB server
- also using CS API to auto-resize
Batch-process
- one 256MB server
- message queue service (a simple mysql-db)
- using the API to monitor all the oher 3 servers
Persistent storage and content delivery
- Amazon S3
For less than the price of 1 Amazon EC2 ($82.8/mo), you get 4 servers with scalability (API auto-resize), reliability (DNS load balancer and auto-rebuild/restart) and monitoring, for $54/mo. Obviously there's more work involved in setting this up at Rackspace: API development and DNS configuration (they have no built-in load balancer) where at Amazon everything is ready-made. But you take smaller steps when scaling: for the price of 2 EC2+CloudWatch I can get 8+ slices, each tailor-fitted to their task (webserver, db or batch-process).
Does anyone have experience with Rackspace's API? they say it's still in BETA.
What are the disavantadges of this approach?