

A newbie’s guide to scaling AWS - maxticket
http://www.revisu.com/2011/12/23/scaling-aws-how-to-protect-your-servers-from-a-giant-robot-dinosaur/

======
blantonl
As a large scale AWS user, I'm not sure I can agree with any of these
recommendations.

 _Don’t use micro instances for real work_

There are some use cases where micro instances work in production environments
(such as MongoDb arbitrators etc) but running anything in production on AWS on
anything less than a m1.large instance is setting you up for failure.

Micro and small instances can be used for a personal Web site or tiny blog,
but nothing else. When I visually think of a micro or small instance, I
envision a PC sitting under a desk performing operations that a server in a
rack should be hosting.

 _Have servers on standby. Configure a large instance, stick it in an Elastic
Load Balancer with your other web servers, and just stop it.... ()_

I really don't consider one server stopped, on standby, as scaling AWS. In the
cases of Web servers, you might need to provision 5-10 Web servers, and having
a single stopped instance is not going to allow you to accomplish that.

The better approach would be to have a server image prepared that can auto-
provision itself (multiple times when needed) into the role defined through
user-data passed to the image.

Scaling Web servers is an n+1 operation, not a +1 operation.

 _Seriously, use RDS_

Seriously, if you are doing any real MySQL work on AWS, DO NOT use RDS. The
reality is that AWS doesn't nearly do the EBS tuning that you yourself can do
(RAID-0, kernel tuning etc) on your own EBS based MySQL implementation. See:

Getting Good IO from Amazon's EBS:

[http://orion.heroku.com/past/2009/7/29/io_performance_on_ebs...](http://orion.heroku.com/past/2009/7/29/io_performance_on_ebs/)

Running MySQL on AWS:

<http://aws.amazon.com/articles/1663>

Finally, for MySQL slaves, use RAID-0 over the ephemeral disks which have
dramatically better performance than EBS.

~~~
typicalrunt
_Configure a large instance, stick it in an Elastic Load Balancer with your
other web servers, and just stop it._

I agree with allowing AWS to auto-provision N new instances when needed.

But from the article and with my financial hat on, when the large instance is
stopped and left in a standby role, are you still paying for it?

~~~
bradly
You do not pay for an EC2 instance that is stopped. If the instance has
attached EBS volumes you will continue to pay for the storage costs, but that
is pretty minimal.

It is important to remember that a stopped instanced is not guaranteed to be
able to be started again. If you have a m1.large stopped, there is a chance
that Amazon will not have any m1.larges available in that zone/region when you
try to start back up your instance.

Also know that the private dns name will change when a stopped instance is
started again, so anything configured to point at that particular instance
will have to be reconfigured.

------
prib
I can attest to the unreliability of AWS Micro instances for production
environments. Two examples:

Ex 1: We had a request triggering an asynchronous job that would take 3-4
seconds of processor time. Several times, this job was being throttled, so
even in a low traffic situation each time one of those requests came, a whole
micro instance was consumed on it making it unavailable for anything else.
Switching to small instances solved the problem.

Ex 2: When launching a new load balancer, due to some sort of wrong
DNS/elastic-ip configuration, it's not uncommon to be hit hard by traffic
coming for the last owner of the given ip. We've seen this happen several
times in the past. Again, switching from 10+ micro instances to 2 small
instances cleared the problem.

There's an interesting post by Greg Wilson addressing the throttling problem
better than I could: [http://gregsramblings.com/2011/02/07/amazon-ec2-micro-
instan...](http://gregsramblings.com/2011/02/07/amazon-ec2-micro-instance-cpu-
steal/)

~~~
Terretta
Thank you for the Greg Wilson link.

------
Brajeshwar
I've been using a Micro Instance for almost a year (the free tier) to run
<http://nsfw.in/> successfully. And the traffic on the site is also not bad at
all, with 100,000+ pageviews a month on an average. You've to know the right
thing you need for your requirement and tweak it.

------
yummybear
One of our problems in scaling is not starting new instances, but rather to
ensure that new instances have the latest version of the platform.

Also, we are running a fantasy soccer game with trading windows, so the server
load near the trading window closure time (the last hour or so) is orders of
magnitude higher than average load. Ideally we would scale up when the load
demands it, but with the platform versioning issue unresolved we need to run
our platform at "full scale" almost constantly (or scale manually which is a
really bad idea when someone forgets to scale back up again for the weekend).

We're running in a WISC setup.

~~~
mnutt
What if every time you did a deploy, afterwards you kicked off a job that
wrote a snapshot and brought up instances based off that. Then at any point
you'd only ever be at most a deploy behind.

------
jaredstenquist
Yes RDS, is great for the money considering the ease of backups and replicas,
which normally are a pain in the ass for any sysadmin.

Overall this article has little to do with scaling on AWS. Running any sort of
production website on a micro instance is pretty foolish, besides a blog or
static website perhaps.

------
mrmagooey
I think I may have had less idea about what your product does after clicking
"See Revisu in Action", three cat pictures does not a demo make.

~~~
maxticket
Yeah, we're working on that. Hopefully the upcoming video helps a bit more.
It's just one designer and one developer, so we gotta triage some things while
we build the product.

------
k33n
This should be called "A guide to scaling AWS written by a newbie".

~~~
bradhe
zing!

------
ultimatewarrior
Your scaling AWS and you're a newb? You must be terrified!

------
njames029
Revisu is pretty sweet, great blog as well.

------
christianreed
Oh man, Fake Grimlock is the man! Er... Giant bird robot.

