While there are many advantages to using Amazon Web Services (AWS), cost management can be complicated because so many factors impact your AWS bill. Account setup, savings plans, and a number of other factors can all affect your AWS charges and usage.
In this article, we’ll introduce 10 AWS cost management best practices that promote optimization, and how you can go beyond AWS cost management by using an advanced cloud cost intelligence tool.
Cost management strategies essentially fall into two broad categories: putting the right configurations in place for managing your AWS account, and reducing wasteful spend by efficiently managing your cloud assets.
The best practices for both categories of cost management strategies are outlined in the following sections.
Set up Your Amazon Web Services Account for Cost Optimization
The first step in AWS cost management is to set up your account in a way that makes it easy to track and manage costs. These are the best practices to follow for setting up your AWS account:
Implement AWS Organizations and consolidated billing. You can automate account creation, create groups of accounts, and govern these groups with AWS Organizations. The consolidated billing feature consolidates the charges for all your accounts, making it easier to get an overview of your cloud costs and manage your bill as a whole.
Create separate accounts for production and development. At a minimum, separate production workloads from development so you can see the charges associated with each. You can segment further by product or feature, though this can be difficult to manage at scale.
Create a tagging policy. Tags enable teams to identify, organize, segment, and search for resources within AWS. Activate important tags with cost allocation tagging for use with AWS Cost Explorer or external cost management solutions. You can read more about tagging in this previous article.
Create an AWS Cost and Usage Report (CUR). Most cost management vendors require CUR data. An hourly CUR is not expensive, and having it ready will be helpful, even if you are not yet implementing AWS cost optimization.
Implement tools to gain visibility into your costs: AWS Cost Explorer and similar tools can help you plan and manage resources, and gain visibility into the activities generating your costs.
How To Optimize AWS Costs by Reducing Waste
In computing terms, waste is a broad category. It can mean anything from “zombie” unused infrastructure or resources to choosing the right savings plan. These are the AWS cost management best practices you should focus on to minimize waste:
Plan and manage reserved instances (RIs)/choose the right savings plan. For reserved instances, identify underutilized EC2 instances and downgrade their size or move to a different instance family to reduce cost. With the advent of AWS Savings Plans, many users are no longer purchasing RIs. Select the right Savings Plan to handle the flexibility needed for your workloads to control costs.
Schedule on/off times for instances. Schedule on/off times for non-production instances for developing, testing, and staging. By applying an “on” schedule during weekday work hours, you can save up to 65% on running these instances.
Delete obsolete snapshots. Snapshots are efficient for backing up data on EBS volumes to an S3 storage bucket. Typically, you only need the latest snapshot to restore data in case something goes wrong, though it’s advisable to keep snapshots for several weeks. Individually, storage costs for snapshots are minimal, but if obsolete snapshots are not deleted and continue to accumulate, they can add thousands of dollars to your bill in unnecessary storage costs.
Move infrequently accessed data to less expensive storage tiers. Storing non-critical and infrequently accessed data in a lower storage tier can provide substantial savings. Retrieval fees apply to accessing data in these “cold storage” tiers, and it may take hours to retrieve the data, so it’s important to be sure that lifecycle policies avoid migrating rapidly changing transactional data to cold storage. The costs for transitioning this data to Glacier will exceed the savings you would gain from Glacier’s less expensive storage tier.
Eliminate zombie resources. Unused resources that continue to run can add substantially to your monthly AWS bill. Obsolete snapshots are one example we’ve already mentioned; EBS volumes and unused elastic IP addresses are others.
Build More Optimized Architecture
Once you’ve taken steps to reduce waste — you’re off to a great start. But that’s only one piece of cloud cost optimization. The next step is to start to understand the cost of your products — and how they connect with key business metrics — so you can be more strategic in how you take advantage of cloud-native architecture.
Map cost to your products and architecture. Architectural optimization first starts with understanding the cost of different parts of your products. Start by mapping your cost to your different product features, so you can see what it costs to build and run your products. From there, you can identify which features cost you the most to run — and make decisions about where to optimize.
Understand your unit economics. Growing cloud costs are healthy when your business is growing too. To put cost in context, it’s important to choose a metric (or a few) that aligns your cost with your company growth.
For some companies, this might be cost per customer, while others might be more interested in cost per transaction, message, or more. If you’re not sure where to start, check out some of the metrics that companies like Lyft and Netflix are using.
Decentralize cost to engineering teams. Like anything in DevOps, being more proactive usually means better quality, lower costs, and fewer surprises. When engineers have access to cost data, they can make better decisions about how to architect their systems in a cost-optimized way — while reducing accidental overspend.
With a cloud cost intelligence tool like CloudZero, zeroing in on the specific issues driving your AWS costs is simple. CloudZero provides detailed analysis of your cost data sorted by function, user, time, and other metrics, updated in real time, to make waste easy to spot.
CloudZero organizes costs and correlates them to the engineering activity that generated them, giving you the context needed to make cost management decisions. Cost anomalies can be detected quickly and addressed before costs accumulate.
In addition, CloudZero makes costs associated with engineering decisions transparent during the design process. Engineers can build cost-effectiveness into their applications, preventing waste from the beginning.
CloudZero uses machine learning to classify costs and associate them with the processes that generate them, and includes these features to give you maximum control over your AWS costs:
Unit cost analysis, with costs aligned to key business metrics, such as cost per transaction, customer, message, and more
Engineering-level context, correlating engineering and cost data
Automated tagging assistance, organizing your resources by product, feature, and team without manual input
Relevant team views of cost data, sorted by product, feature, or team and reported directly to the appropriate team’s Slack channel
Automatic anomaly alerts, with alerts sent to the appropriate teams
Real-time, granular cost data capable of updating billions of times per second from 74 different AWS service plug-ins and data streams like CloudTrail and CloudWatch
Ready To Move Beyond AWS Cost Management To Cloud Cost Intelligence?
CloudZero is the only cloud cost intelligence solution that automatically correlates resource and billing data from across your AWS account to group costs and surface insights.
Instead of spending time identifying the source of cost anomalies, you can concentrate on addressing them.
Sign up for a demo, and see how CloudZero can help your company with AWS cost management.
STAY IN THE LOOP
Join thousands of engineers who already receive the best AWS and cloud cost intelligence content.