Cloud adoption has skyrocketed over the last decade. Organizations in every industry now recognize the benefits of migrating to a platform like Amazon Web Services (AWS) – serverless infrastructure, unlimited scalability, pay-as-you-go pricing, and much more. However, many are struggling to control costs and achieve the ROI initially hoped for in making the transition.
The reason is that adopting cloud infrastructure doesn’t automatically guarantee lower TCO and operating costs. Engineering teams have to make thoughtful decisions about how they access compute, memory, and other services over the web. Fortunately, AWS offers many solutions to help companies stay on top of their cloud expenditures and cut costs wherever possible. The key is knowing how to take advantage.
Below are 6 strategies cloud engineering teams can use to start cutting costs on AWS today:
- Eliminate unused or underutilized resources
- Optimize existing resource usage
- Leverage managed services
- Use reserved instances
- Tag resources
- Adopt current-generation instances
We cover each of these strategies in more depth below.
Eliminate Unused or Underutilized Resources
Many organizations on the cloud have unused and underutilized resources, such as inactive virtual machines or idle data storage. Identifying and eliminating these underutilized resources is a quick and easy way to reduce costs. Two great places to start are Amazon EBS volumes and Amazon S3 usage.
On the Amazon EBS front, look for instances of low utilization, like where volumes experience <1 IOPS per day over a week period. AWS Trusted Advisor can inspect EBS volume configurations and quickly point out underused volumes. When it comes to Amazon S3, lower-cost storage tiers may be available depending on an organization’s actual storage access patterns. Here, Amazon S3 Analytics is useful for figuring this out and getting recommendations on when it might make sense to use Amazon S3 Infrequent Access storage class, or Amazon Glacier, rather than something like Amazon S3 Standard.
Enterprises also tend to incur unnecessary costs on the networking side. AWS Trusted Advisor can again help identify unused or underutilized load balancers. Cutting costs is as simple as deleting these idle resources.
2. Optimize Existing Resource Usage
After eliminating what’s not in use today, the next step is to optimize resources that are absolutely necessary. AWS provides a variety of tools to support this, including:
- AWS Cost Explorer Resource Optimization
- Instance Scheduler on AWS
- Operations Conductor on AWS
- Amazon CloudWatch
- Trusted Advisor (again) for DB instances and Redshift clusters checks
Some of these solutions generate reports that can then be used to make informed decisions about when to stop or downsize instances. Others provide ways to automatically flex resource utilization based on actual demand. Amazon CloudWatch, in particular, is an effective way to analyze Amazon DynamoDB usage, which is a popular NoSQL database.
3. Levered Managed Services
For those who want to lower OPEX, managed services may be the answer. AWS managed services typically take on the administrative burden of managing IT infrastructure on the cloud, e.g., provisioning servers, addressing incidents, patching software, etc. This frees up engineering capacity that can be allocated elsewhere.
Examples of managed services from AWS include:
The list goes on and on. Managed service can be a low-stress, cost-efficient way to maintain peak performance for a fraction of the effort.
4. Use Reserved Instances
Reserved instances (RIs) are an option that AWS provides to lease instances in advance for a fixed duration at a discount to the on-demand instance rate. RIs are a straightforward way to keep costs down for those who can reasonably predict the types of instances they will need.
Engineering teams can choose from three types of RIs: All up-front (AURI), partial up-front (PURI) or no upfront payments (NURI). The right type for an organization depends on several factors, although a tool like AWS Cost Explorer RI can help determine the best path.
5. Tag Resources
An essential practice to incorporate into cloud management is to tag all resources. Tagging resources improves visibility and makes sure that teams know what parts of their applications and infrastructure incur the most costs. Tagging is also helpful for general organization and promoting clear cost accountability. Without tagging, it’s hard to know what resources are responsible for a higher proportion of expenses, as well as who should be paying close attention to those resources.
The key to tagging is to build a consistent habit across the engineering organization. Leaders should also understand the differences between soft and hard tagging enforcement to pick the right approach for the enterprise. For reference, below are AWS’s primary tagging categories:
- Application ID
- Automation Opt-in/Opt-out
- Cost center/business unit
6. Use Current Generation Instances
Lastly, using current generation instance types is crucial for getting top price for performance. A summary of AWS’ instance types can be found here. While AWS does support previous instance types, it makes sense to launch new instances on current generation technology whenever possible.
Download our Cost Optimization on the Cloud eBook
With these six steps, engineers can improve their organization’s cloud cost structure immediately. The strategies above provide quick wins, as well as long-term cost-efficiency. But to ensure success, companies need to be committed to monitoring costs and making adjustments regularly.
It’s not enough to implement a few of the tools mentioned above and then take a hands-off approach. True cost optimization comes from making small refinements continuously to keep resource provisioning in line with resource consumption. The good news is that AWS makes this easy with plenty of solutions for improving cost visibility, automating resource management, and making changes to cloud environments as needed.
To go deeper into how you can optimize your AWS cloud deployment, download our free eBook Best Practices for AWS Cost Optimization.