Highly Available Architecture: Vertical Scaling vs. Horizontal Scaling

Vertical Scaling vs. Horizontal Scaling

Question

When designing a highly available architecture, what is the difference between vertical scaling (scaling-up) and horizontal scaling (scaling-out)?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer - C.

In high availability architectures, Autoscaling is used to give elasticity to the design.

Horizontal scaling (scaling-out) uses Autoscaling groups to increase processing capacity in response to changes in preset threshold parameters.

It could involve adding more EC2 instances of a web server.

Vertical scaling (scaling-up), which can create a single point of failure, involves adding more resources to a particular instance to meet demand.

https://docs.aws.amazon.com/autoscaling/plans/userguide/what-is-aws-auto-scaling.html

Option A is INCORRECT.

Scaling-up does not provide high availability.

Adding more resources to one instance is often not a best-practice in architecture design.

Option B is INCORRECT.

Scaling-out is cost-effective since it involves adding more resources in response to demand and reducing resources (scaling down) when demand is low.

Option D is INCORRECT.

All Autoscaling groups require a launch configuration based on what resources would be provisioned or deprovisioned to meet predefined parameters.

When designing a highly available architecture, there are two scaling methods that can be used: vertical scaling (scaling-up) and horizontal scaling (scaling-out).

Vertical Scaling: It involves adding more resources to a single instance to improve its performance. This means increasing the size of the instance by adding more CPU, RAM, or storage. For example, upgrading an instance from a t2.micro to a t2.large is a form of vertical scaling. Vertical scaling can help to improve the performance of an application, but it has limitations in terms of how far it can be scaled due to the hardware limitations of the instance.

Horizontal Scaling: It involves adding more instances to a system to improve its performance. This means adding more compute nodes, such as adding more servers to a web application. For example, adding more EC2 instances to a load balancer is a form of horizontal scaling. Horizontal scaling allows you to increase the capacity of your application by distributing the load across multiple instances.

The main difference between vertical and horizontal scaling is that vertical scaling adds more resources to a single instance, while horizontal scaling adds more instances. Vertical scaling is typically used for applications that require high performance but can be limited by hardware constraints. Horizontal scaling is used for applications that require fault tolerance and high availability by spreading the load across multiple instances.

Answer C is the correct answer.