Terminology
High Availability and Scalability concept go hand-in-hand, depending on the context.
Application can handle greater loads by adapting.
There are two types of scalability.
Horizontal (elasticity)
Vertical
Vertical scalability
Increase the size of resource in a single node.
Typically this means increase memory, addition of storage and CPUs.
Useful for non-distributed systems.
Hardware limitation restricts the amount of scalability.
Horizontal scalability
AKA Scale-out/Scale-in depending on increase/decrease in the number of instances.
Increase the number of instances/systems for your application.
Useful for distributed system.
Achieved using Auto Scaling group and load balancer.
System that aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period.
This is achieved by having system run at atleast two data centers meaning Availability Zone.
Horizontal scaling leads to active high availability.
Achieved using Auto Scaling Group and Load balancer with multi-AZ enabled.
The process of distributing a set of tasks over a set of resources, with the aim of making their overall processing more efficient.
Load balancing can optimize the response time and avoid unevenly overloading some compute nodes while other compute nodes are left idle.
References
Last updated