How to Avoid Over-Sizing of Cloud Resources?

 

Did you know?

 

“Approximately 40% of instances were sized at least one size larger than needed for their workloads.”

 

When consumers migrate to the cloud, they prioritize speed and performance than the cost of the applications. Rushing into migration with oversized or overpowered EC2s may offer better speed and performance, but it will always be too expensive. To avoid overspending, the consumers always lift and shift their environments and expect to right size later.

 

What is right-sizing?

 Right-sizing your AWS resources is one of the key mechanisms to optimize AWS costs, however, it is often ignored by organizations during migration to the AWS cloud. Choosing the right cloud service, machine type, or instance size is very difficult at an early stage.

cloud resources sizing

cloud resources – sizing

 

Right-sizing the process of selecting instance sizes and types based on capacity requirements and workload performance at the lowest possible cost. In simple words, it’s a process of eliminating or down-sizing instances without compromising capacity or other requirements of applications, resulting in a decrease in overall costs.

 

You need to analyze two things continuously – instance performance and usage requirements & patterns  to find out about the idle instances and then right-sizing either poorly matched or overprovisioned instances as per the workload.

 

Resources you must right-size to reduce the cost of your project

 

You must be aware of the fact that resource needs keep on changing from time-to-time. This makes right-sizing a continuous process to continually achieve cost optimization. For a smooth right-sizing process, you can establish a schedule for each team to right-size their resources, enforce tagging for all instances, and use AWS monitoring and analysis tools to monitor the usage of all instances and resources.

Here is a list of AWS resources for which right-sizing is necessary are:

#1. EC2 instance types – EC2 offers a comprehensive range of optimized instances to fit different use cases. Instance types include varying combinations of CPU, storage, memory, and networking capacity. Choose the one that meets your requirement. You can calculate EC2 reservation, tenancy and graph options.

#2. AWS storage classes – Amazon S3 allows customers of any size and business to store their data in an organized manner. They can choose any of the following storage class (offered by Amazon S3) according to their workload requirements:

 

  • S3 Standard – This is for general-purpose storage of frequently accessed data;
  • S3 Standard-Infrequent Access and S3 One Zone-Infrequent Access for frequently accessed data;
  • S3 Glacier and S3 Glacier Deep Archive for long-term object storage;
  • S3 Intelligent-Tiering for data with changing or unknown access patterns.

 

 

#3. RDS instance types – This provides optimized instances that can fit different relational database use cases. RDS instances include various combinations of CPU, storage, memory, and networking capacity. Cloud customers have the flexibility to choose the perfect database instance type and size based on their target workload.

How to right-size your cloud resources?

  1. Analyze instance performance and usage patterns of your application. Track performance records of at least 2-4 weeks to find out about seasonal patterns and spikes.
  2. Instance performance is defined by various metrics including CPU usage, memory utilization, network utilization, IOPS, and ephemeral disk use. Monitor and record the capacity of these attributes. Use these readings to compare the consumed resource against the allocated resource.
  3. Graph your historic data, instance by instance, and look for points of conflict. Find out the level of utilization of resources during peak hours and midnight backup.
  4. Once you’ve all the information, you can select the appropriate sized resources according to the application’s workload.

 

Tools to avoid over-sizing of resources

Right-sizing your resources is not easy. You need appropriate information about the usage of your instances. You can analyze instances usage to avoid over-sizing of resources and reduce overall cost with the help of AWS tools:

 

Amazon CloudWatch – It allows you to monitor CPU utilization, disk I/O, and network throughput, and use these readings to find a new and cheaper instance type. You can also use Amazon EC2 Usage Reports to track the performance of instances. These reports are updated several times a day and provide in-depth usage data for all your EC2 instances.

AWS Cost Optimization: EC2 Right Sizing – This helps analyze 2- weeks’ utilization data of Amazon EC2. It also offers recommendations for right-sizing to meet the current demand by lowering the overall cost to run the workload.

AWS Cost Explorer – You can identify under-utilized EC2 instances with the help of AWS Cost Explorer. You can turn-off or eliminate EC2 instances as per the workload. The AWS Cost Explorer also offers Amazon EC2 Usage Reports, which let you analyze the cost and usage of your EC2 instances over the last 13 months.

AWS Compute Optimizer – It gives recommendations for upsizing instances to fix performance bottlenecks, downsizing by analyzing your resources workload. EC2 instances that are parts of an Auto Scaling group.

AWS Trusted Advisor – This helps you identify idle and underutilized resources and provides ‘service usage’ real-time insights. You can use this information to improve your system performance and reliability, increase security, and look for opportunities to save money.

 

Once you have got the information regarding unused resources, you can always choose right-sized instances to optimize AWS cost.

azure cloud cost optimization