Our Grandparents Have the Best Advice for Controlling Cloud Costs. Here’s Why.
Who would have thought the admonishments of our grandparents would also hold true in the cloud? There’s “waste not, want not.” And the time honored “Turn the lights out when you leave the room! Do you think money grows on trees?” Turns out these well-worn but common-sense directives work well to sum up how to best manage your cloud costs.
As with your utilities, the less cloud resources you use, the less you pay and the less you waste. Albeit more complicated than pricing options from your utility company, cloud providers also have ways of structuring costs that you can work with to lower bills. For example, your utility provider likely offers time of use pricing (TOU). Your costs for doing laundry or running the heat or A/C during peak TOU will be more than if you run them during low TOU periods.
After you understand how costs are incurred in the cloud, you can better manage your cloud bills and avoid cloud waste. With AWS, GCP and Azure, costs begin once you start using a service. And there are many services. Azure’s most used services are Virtual Machines, Active Directory, API Management, CDN, Azure SQL, CosmoDB and others. AWS has over 200 services, each with specific billing terms. The most common AWS services are EC2, RDS, Elastic File System, Elastic Load Balancer and ElastiCache. These services incur the most cost, as these are the most often used services.
What is cloud waste?
Cloud waste occurs in all Cloud Service Providers (CSPs) and happens when instances are either over-provisioned, under-provisioned or left on when they shouldn’t be. In other words, when the cloud resources are wasted. You purchase an instance type based on your business needs and budget. After that initial choice of instance, it is not uncommon for companies to forget about the budget and focus on development. Until that first high bill arrives, no one contemplates cloud waste.
Each cloud provider has similar categories of servers: General Purpose, Compute Optimized, Memory Optimized and Accelerator. Servers in AWS are Elastic Cloud Compute (EC2) instances. They come in 275 varieties, each with different levels of CPU, memory and networking resources.
To reduce the financial impact from wasted cloud resources, you need to take an active role monitoring and managing instances. In this blog, we will cover the basics of how AWS EC2 costs are incurred in the cloud, but the same principals can be applied to Azure and GCP. We will review why actively managing cloud instances is an important part of leveraging the flexibility of the cloud and discuss four ways to reduce your spending.
Cloud waste tip 1: If you don’t need it, shut it down
The cloud requires a different way of thinking than with on-prem. With on-prem servers, shutting down a VM server has no impact on your cost model. Your finance department bought or leased the equipment and pays a monthly fee for the hardware. But in the cloud, you pay for what you use. So, if you don’t need it, stop it or shut it down.
Perhaps you only need the EC2 to run for a few hours a day. If so, use the AWS Instance Scheduler to start and stop EC2 instances based on your time-of-day requirements. For example, if your development staff is based out of the Pacific time zone (PT) and only works 8-5pm, you can schedule instances to automatically stop at 6pm PT and automatically start at 7am PT the next day.
Cloud waste tip 2: Delete an instance
Whether you are using the system to solve world hunger, manage your business or are letting the server sit idle, the charges are the same. So, if you don’t need a server, remember what your parents told you about “turn the lights off” and “don’t waste energy.” Go ahead and delete the server and the charges will stop occurring. Deleting the server will reduce your cost from dollars per hour to ZERO!
What if you think you'll need that server in the future? You can take a snapshot of the server and disk for later and restore it from this snapshot image when it is needed. Behold the flexibility of the cloud!
Cloud waste tip 3: Over/under provisioned resources and rightsizing
Selecting the right server size can be difficult in the early phases of designing and building a system. Sometimes you will need to have a system load on the server to understand the performance. Often, development teams will select a much larger server size to ensure the success of the project. This focus can result in over provisioning of resources.
AWS offers a tool that can assist in selecting the optimal instances, The AWS Pricing Calculator can assist you in selecting the best configuration for your application. The tool can assist with:
- Selecting the instance family (T4, M5, C5, etc.) along with the region and operating system.
- Selecting the number of vCPUs that meet your application requirements.
- Adding in the amount of memory you need, if memory is critical (e.g., 16GB memory with 4 vCPU). Search results will display the EC2s that match your requirements (e.g., t4g.xlarge, m5.xlarge, etc.).
Cloud waste tip 4: Use third-party tools to help analyze
What if your server is up and running but you still need help deciding if your environment is optimized? There are third-party applications to assist you in analyzing your environment to determine if your servers are over-or under-provisioned.
The leading solution providers will scan your GPC, Azure and AWS accounts and give you a detailed analysis of your environment and provide recommendations. In addition, AWS offers a native service called AWS Compute Optimizer that will analyze one account at a time and give you an analysis of your resources and some suggestions to optimize.
For AWS, once you have determined the best EC2 size, you will need to make sure the change meets certain criteria. For the most part, staying in the same EC2 family type is a simple change, but you should still check the following. You will need to confirm the instance’s root volume and whether the instance type is compatible with the instance’s current configuration.
Compatibility is decided by:
- Virtualization type. For Linux, the instance can be PV or HVM. You can’t change between PV and HVM virtualization types. You can check the current virtualization type by looking at the detailed pane of the Instance Screen.
- Architecture type. EC2 AMIs are specific to the architecture of the processor. You must select an instance type with the same processor architecture.
- Network. Newer EC2s must be launched in a VPC. If you have an older EC2 on a classic platform, you cannot change the instance type to one that is available on a VPC.
- Network cards. When selecting a new instance size, you need to select the instance that supports the same number of network cards.
- Enhanced networking. Instances that support enhanced networking require necessary drivers to be installed. To change from an instance that doesn’t support enhanced networking to an instant type that does, you must install the ENA drivers first.
- NVMe. The disk attached to the EC2 (EBS volumes) are NVMe block devices built on the Nitro system. If you change from an instance that doesn’t support NVMe to one that does support NVMe, you must install the drivers first.
After you have determined that you can change the EC2 without any of the above compatibility issues, then you can select the instance you want to change.
Example of cost savings with rightsizing
AWS has EC2s for different functions such as Compute Optimized, (C7), General Purpose (A1, T4, M7), Memory Optimized (R7, X2, Z1), Storage Optimized (I4, D3, H1) and many others. You can select any size EC2 to support your process needs.
For example, you can select a T4g.nano that has 2 vCPU with .5GB of memory costing .004 cents per hour or you can select aT4g.2xLarge with 8 vCPU with 32GB costing 27 cents per hour. That is a 66x increase in cost. Selecting the correct EC2 size can result in large savings.
Reducing EC2 spend is as s simple as 1,2,3
Saving money and reducing waste have always been sound principles of financial management. And they apply to cloud waste. Today we are more aware of the need to conserve than ever. Dust off granny’s embroidered wisdom and apply it to how you manage cloud spending.
You can significantly reduce your spending on EC2. It's as simple as
- Stopping if not using
- Deleting if not needed
- Rightsizing if too large
Understanding how to correctly rightsize resources and when to shut down instances will help control cloud costs. Getting this kind of cloud waste visibility requires an active view into operational data that is not easy with cloud native tools. Third-party tools can help. Envisor Cloud Control provides real-time visibility into multiple cloud accounts and instances along with the controls to adjust EC2 instances on the fly or by automating scheduling to meet known usage patterns.
Active management of EC2 instances along with the three steps discussed here will result in significant savings. And just as with turning off the lights in a room you aren’t using, shutting off unwanted server usage is good for the planet in addition to the pocketbook.
Need help getting started? Contact us at Envisor. We are happy to discuss your cloud environment and review the best options for cost savings opportunities.