scaling up or scaling out - aws choices

Amazon Web Services offers a range of tiny (t2.nano) to massive (m3.2xlarge) servers for any power your application may require. Upgrading your server along this scale is usually called Scaling up. Where as creating or adding servers to a cluster for your application to sit on could be referred to as Scaling out.

What are the differences between scaling up and scaling out

Scaling up or vertical scaling

This is where you upgrade the cpu or add processors and memory in your server. The general idea being, more power equals better.

  • Pros
    • Less licensing cost
    • Easier to configure
    • Quicker upgrades on virtual hardware with less downtime

  • Cons
    • Price
    • Bigger risk to failures, all eggs in one basket
    • Limit to how big you can grow

Scaling out or horizontal scaling

Having a cluster of servers working together means you can add (or remove) servers as the need changes.

  • Pros
    • Flexible
    • Redundancy and more resiliency to failures
    • Easy to upgrade and add extra or remove surplus capacity

  • Cons
    • More licence fees (per server models)
    • More complicated to manage
    • Data consistency may need consideration

Embracing cloud services and the phoenix approach can offer further savings to your business by scaling dynamically throughout the week or even day based on the demands on your servers.

Either way can work for your application as it grows. You are best placed to see what works best, depending on the stage your application is in, but we aware of the inherent limitations that scaling up has and will bite you sooner or later.