Hello Friends, have you come across scenarios where your applications stop working due to the access load on the servers. Or the end users are complaining of long delays in response time. These can be challenging time and it is difficult to guess which technique to use to handle the increased traffic. In cloud computing we have two options present to handle such scenarios. They are scale up and scale out. In this article I will discuss the AWS cloud scale out and scale up techniques and their differences . Then we will walk through the pros and cons of each of these mechanism. And finally we will have an example question to understand the concept.
AWS Cloud Scale out and Scale Up
While working with highly available and scale able systems in the cloud we should be aware of two terms i.e. scale ability and elasticity. In fact we should be aware of differences as well as pros and cons.
Scale Out in AWS:
- Scale out is also known as horizontal scaling where we add more resources to handle more traffic. These resource could be increase in number of EC2 instances, or adding more hard drives to storage array.
- Scale out is equivalent to elasticity of the system. As we know that an elastic can be increased an decreased as per requirement with in no time, same is true with elasticity where we can increase and decrease the number of resource as per demand. In case if you are seeing the drop in performance your web application you can increase the number of web servers serving the request.
- Though there are systems where we work with session and if we are using scale out technique to handle traffic we can be in serious troubles. Though there are work around to handle session by using session affinity or by storing session data in persistence storage.
- We can scale out the Dynamo DB by increasing the IOPS for additional spikes in traffic and the IOPS can be decrease later when traffic is normal.
- RDS systems are not very elastic and cannot be scaled out.
Pros of Horizontal Scaling(Scale out):
- Easier to implement and can be easily controlled just with the help of Auto scaling in AWS
- The operating cost can be low as there is no need to provision more hardware
- Can be used for small spikes in traffic
- No need to guess the traffic upfront
Cons of Horizontal Scaling
- Cannot be used for prolonged spikes.
- Session handling can be an issue.
- More licencing fees
Scale Up in AWS:
- Scale up is equivalent to scale ability of systems. In this scenarios the servers sizes are increased in terms of RAM, CPU utilization or instance size. If you can see that there is network performance bottleneck or IO is not performing as expected and causing huge delays. Therefore it is recommended to scale up that particular instance.
- In terms of EC2 instance in AWS scaling up is to increase the instance size from T1.Micro to T2.Small or T2.Medium etc.
- For managed database in AWS like DynamoDB there is no need to scale up as it already has unlimited amount of storage.
- For RDS instances we can increase the instance size to scale up.
Pros of Vertical Scaling(Scale UP):
- Not many servers to maintain.
- No need to worry about session affinity
- Easier to implement.
- Licensing cost is lower.
Cons of Vertical Scaling:
- The resources can hit their upper limit beyond which it is difficult to scale up.
- We need to take care of price factor as adding hardware can be costly affair.
- Need to predict the traffic and be proactive.
While it can be quite confusing to understand AWS cloud scale out and scale up terminologies . Therefore I have covered most of the differences and their used with respect to AWS cloud. And thus making it simple to understand the same.
Leave a Reply