Scaling
- Scaling refers to increasing machine sizes or machines
- Scaling is of two types
- Vertical Scaling
- Horizontal Scaling
- Vertical Scaling: This refers to increase in Size of CPU/RAM or even instance families in cloud
Vertical Scaling in AWS/Azure
- refer classroom video for screen shots
- AWS => Change instance type
- Scaling is used in the Context of increasing only in traditional on-premises
- So in cloud since we do increase and decrease instance sizes we refer this property as elasticity
- Scale up or down is used in the context of vertical scaling
Horizontal scaling
- Horizontal scaling refers to increase/decrease in the number of servers
- We use scale in (decrease) and scale out (increase)
- In the context of cloud we can do two things
- fixed scaling: always maintain count
- auto scaling: increase or decrease number of servers based on factors like cpu utilizations, schedules etc
- Horizontal scaling in AWS is acheived with Autoscaling groups and in azure with virtual machine scale sets
Autoscaling in AWS
- Two major configurations
- launch template: we set on what should be executed in ec2, which subnets, sizes etc
- Autoscaling group: how many, when to increase and when to decrease
- Refer Here for official docs
- EC2 Autoscaling options
- Simple/Step Scaling
- Target Tracking
- Predictive scaling
- During autoscaling
- min: minimum number of instances
- max: maximum number of instances
- desired: the current count
- Watch classroom video for guided creations
