Cloud technology offers many benefits, but one of the most important ones is simple scaling. Scaling is the ability to simply add or subtract IT resources.
Back in the 'old days,' scalability was incredibly costly, slow, and complicated. The process of scaling up involved the process of purchasing hardware, installation, management, etc. What if the company needed to scale down? In traditional IT, this task is even more complicated.
Resources are usually provisioned to handle peak demand; this means that the utilization rate is very low. Demands for IT resources change seasonally, weekly, and hourly; that's why the benefit of simple scaling within the cloud platform such as AWS is so attractive.
There are two ways to scale - vertically and horizontally. Vertical scaling is called scaling up or down, while horizontal scaling is also called scaling out or in.
Vertical scaling is a scaling strategy where we add more IT resources (CPU, memory, or other IO resources) to an existing server, or we replace it with a more powerful server. Within the AWS cloud, vertical scaling is accomplished by changing the instance type. AWS offers many different instance sizes making vertical scaling very simple. Vertical scaling usually requires the application to be unavailable for some time.
Horizontal scaling is a scaling strategy where we provision additional servers to meet our needs; the traffic is split between servers to limit the number of requests any individual server is getting. In the AWS cloud, horizontal scaling is achieved by adding more instance types instead of replacing existing instance types with more powerful ones.
In practice, horizontal scaling is often the best practice because it is much easier to implement without any downtime.
There are three types of scaling: manual, scheduled, or automatic.
Manual scaling is the scaling process performed by the engineer. In the cloud, vertical and horizontal scaling is accomplished simply by changing specific preferences, so this process is not very difficult. Because this process is performed manually by an engineer, manual scaling is not suitable for minute-by-minute fluctuations in the application demands. Manual scaling is usually performed when the demands increase over a more extended time period; for example, our needs steadily increase by 30% over two months.
Scheduled scaling is a form of simple auto-scaling where we scale up in the time of predicted increased demand, and we scale back down when those needs decrease. An excellent example of this would be a business application that scales from 2 instances to 5 during regular working hours (8h-17h) and scales back down to 2 instances after working hours (17-8h). This scheduled process is configured once and performed automatically every day.
Automatic scaling is also known as autoscaling. Scaling is based on predefined rules. When specific metrics, such as CPU, memory, or network traffic go above/below, the predefined threshold system scales up, down, in, or out. Autoscaling is a good solution for applications that have constant unpredictable minute by minute fluctuations.
The right type of scaling enables us to optimize our cloud cost. It is very easy to pay for the resources that we don't use by overprovisioning instance type. That's why it is essential to understand the actual needs and resource utilization. We can keep our costs and system's performance under control by right-sizing the instance type and choosing the best scaling method.
Cloud's ability to simply scale up or down is one of the most important features. There is no need for resource overprovisioning or costly hardware investments.
AWS cloud offers unlimited vertical and horizontal scaling possibilities; customers can choose among several instance types based on their needs. Scaling can be set up automatically or manually based on the customer's needs.
As an AWS advanced consulting partner, we can offer AWS cloud implementation services based on your specific needs.
If you want to know more about cloud migration, cloud technology in general, AWS cloud, or you want to try AWS services:
Schedule a talk with one of our cloud experts!
Your message has been sent. We will contact you as soon as possible!
Something is wrong. Your message is not sent. Please contact us directly on our info e-mail: email@example.com.