Scalability concepts

The two types of scalability, vertical and horizontal.

Vertical scalability is where you increase the size of the instance in order to handle more requests e.g. you may add a larger processor or more ram to an ec2 instance in order to handle more requests.

Horizontal scalability is where you add more instances in order to handle the increased number of requests e.g. you may have one small server and then in order to handle more requests you add two more servers.

Vertical scalability is very common for non distributed systems such as a database whereas horizontal scalability is common for web applications.

High availability is the premise where if one server fails another server can carry on running your application or system. 

The main goal of high availability is to survive a data center loss and high availability usually goes hand in hand horizontal scaling.

The best way to provide high availability via AWS to place your ec2 instances in separate availability zones.