Over at TechCrunch, Mike Arrington recently shared some of his concerns about linking to up and coming new sites. Any site featured on TechCrunch will see a huge inflow of traffic when seemingly everyone the tech world visits it within the course of a couple of hours to check it out:
There’s a spike, and then most of the people never come back. Hopefully a few stick around, register and tell their friends, but building an application to scale to handle a TechCrunch post is a long term solution to a short term problem.
Before I could even respond, the Crunchback blog proposed theTechcrunch Reference Architecture. In his words:
Build using Amazon EC2 and S3.
Use a load-balanced architecture
Add EC2 nodes when you go live - as many as you can…
Alert TechCrunch
Wait for mention (pray for mention)
2 days later start reducing nodes…
It almost goes without saying that this is in alignment with our own thinking in this area. Instead of scaling in advance for traffic that may or may not materialize, we believe that developers should create a scalable architecture, host it on Amazon EC2, and then simply "turn the knob" (so to speak) when traffic surges. They pay for actual usage while those servers are active, and then simply turn that knob back down when the surge subsides. No fuss, no muss, and no rack full of servers that are sometimes running at capacity and at other times sitting idle.
-- Jeff;
Updates:
- TechCrunch reference architecture came from CrunchBack, not from Phil Wolff.
- Lots of good conversation can be found in the comments.


You are late to the party Jeff. People used to visit TC at some point of time for news. Not anymore. Stale stories don't amount to much.
Posted by: jamba | March 09, 2007 at 01:19 PM
Maybe I'm missing something about EC2, but the fact that you have to externally load-balance web requests defeats the purpose for me. Even though the load on the load balancers is less than actually handling the traffic, you're essentially double paying for bandwidth, and adding latency. The inability to do this inside the EC2 environment makes it virtually useless for web request processing like this.
Posted by: GP | March 09, 2007 at 01:22 PM
While I appreciate the shoutout, I can't claim credit for that suggestion. Perhaps the commenter before or after mine?
Posted by: Phil Wolff | March 09, 2007 at 04:04 PM
Jeff,
Paul Allen recently blogged about how AWS will be helping World Vital Records with scalability... and I agree:
http://www.paulallen.net/2007/02/23/unlimited-storage-at-world-vital-records/#comments
I'm not technically a geek, but even so, EC2 and S3 are constantly on my mind as something I think is awesome. Way to be. :)
Posted by: Carolynn Duncan | March 09, 2007 at 04:37 PM
We have found that EC2 is viable for auto-scaling our server needs including handling spike, as well as cyclical traffic, requirements.
We had to overcome some critical issues such as dynamic IP addressing coupled with a lack of a 24/7 service level agreement. However, we have solved these issues for our own application at Weogeo, and we will begin to offer this EC2 management AMI, called WeoCEO, as a private beta product for developers of AWS applications.
The WeoCEO application, working within the EC2 environment maximizes the power of EC2 by providing automatic and instantaneous scaling, load balancing, and fail-safe supports, within a stable IP environment.
Posted by: Paul Bissett | March 09, 2007 at 08:46 PM
> Build using Amazon EC2 and S3.
> Use a load-balanced architecture
Yes, but how do you actually DO that??? If I've got my standard LAMP architecture on a server somewhere - Apache with ModPHP and a PHP script talking to a MySQL database, can anyone tell me exactly what I have to do to rearchitect that to mork on a multiple EC2 instance scenario? i.e. specifically how do I keep data consistent and accessible between mutliple MySQL installations in real time, how do I shrink and increase the number of EC2 instances? How do I load balance the site if it's hosted on multiple EC2 instances? We need real facts please!
Posted by: Alex Kerr | March 11, 2007 at 05:05 PM