So...I've seen a few of these posts so I'll hopefully lay out something here that can be used by a few people. I'm sure some other people may have different ideas but this is how I would go about scaling.
First
We need to get DNS setup as this is the cornerstone to any properly functioning website. You'll want something with failover and anycast so go with DNSMadeEasy (
http://www.dnsmadeeasy.com) or if you have the money to spend check out Dynect (
http://www.dynect.com). Set TTLs low on your main record and your www record (60 seconds).
Second
CDN Time. If you are planning on a lot of hits where users may be loading the same images/media/content over and over then this should definitely be off loaded to a CDN. Not only will it save you processing on your nodes/servers it will speed up the end users loading time (or should). You don't need hundreds of dollars to use a CDN as Softlayer resells Internap's CDN (which you can use as a caching CDN) at a pay as you go price (
http://www.softlayer.com/cloudlayer_cdn.html), there are other companies who are reselling various CDNs. I believe
www.vps.net resells highwinds, gogrid resells cachenetworks, etc.
The Setup
I prefer setting up DNS to do a round-robin/fail over approach with two application servers sitting at the front. This way you don't just have one server consuming space/power/money just in case of a fail over. These both have private ips along with your database server(s). On your app servers put whatever web front end things you need on them and anything that can help you use memory caching, if you can use memcached to limit database queries then more power to you.
Backups
Backup early and often, don't just trust linode's or anyone elses backups for that matter. And backups don't count if they are sitting on the same server or even in the same data center or using the same provider. Backups should be held offsite away from your primary provider.
If you do things properly there are many advantages to using a cloud/vps provider over using dedicated hardware.