<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=1310905&amp;fmt=gif">

How to Set Yourself Up for Success with AWS

[Chapter 1] How to Reduce Your AWS Bill

Return to Chapter List

The first steps in the optimization process involve setting the organization up for success – ensuring that the right configurations are in place and the right data is available when the team is ready to start focusing on costs.

Use AWS Organizations

To start off, if you’re not using AWS Organizations and consolidated billing, consider implementing these tools. AWS Organizations enables teams to automate account creation, create groups of accounts to reflect business needs, and apply policies for these groups for governance. The consolidated billing feature within AWS Organizations lets teams consolidate payments for multiple AWS accounts. These steps will help you stay organized and consistent.

Create Separate AWS Accounts for Production and Development

Second, consider creating different AWS accounts for production and development. AWS will recommend going even further by creating separate accounts for each environment, segmented by feature or product. While that practice can simplify understanding of cloud spend, it can be challenging to manage at scale. As a general rule, separate out production workloads from development at a minimum. Based on organizational requirements, teams may decide to segment further

Create a Company Tagging Policy

Next, focus on establishing a company tagging policy. Tagging will enable teams to identify, organize, filter, and search for resources within AWS. Tagging works best when there’s a company policy that sets expectations for engineering teams. There are many ways to make this process less manual by incorporating standard tags into your Terraform or CloudFormation templates.

Once the team has started tagging its infrastructure, activate important tags with cost allocation tagging, so they can be used with AWS Cost Explorer or cost management vendors. For example, enabling “AWS-Generated Cost Allocation Tags” creates a useful tag called “aws:CreatedBy” that shows which IAM roles are creating resources.

AWS Cost Allocation Tags

Create an AWS Cost & Usage Report

Finally, create an hourly AWS Cost & Usage Report (CUR). Even if your organization is not planning to think about cost optimization for another six months, the majority of the cost vendors need to ingest CUR data. AWS doesn’t back-populate this data—so having it ready is helpful and doesn’t cost much. When creating an hourly CUR, check the “Include resource IDs” checkbox and leave the rest as defaults.

For the level of granularity that many cost management vendors (like CloudZero) need, you may want to turn your setting to:

  • Time Granularity: Hourly Report Versioning: Create New
  • Report Version
  • Compression: GZIP
  • Include Resource IDs: ON
  • Data Refresh Settings: Automatic
  • AWS Cost & Usage Report (CUR)

Tagging: Easier Said Than Done

For most organizations, tagging is a critical component of managing their cloud spend. If only it were easy to enforce! The first step to creating a tagging policy is to start setting expectations for engineering teams. The three most common tags on which to standardize are:

    • Aligned with the service or application a resource supports
    • Corresponding to the environment the resource is being deployed into
    • Identifying what person or team is responsible for the resource

Most development teams leverage some CI/CD and/or infrastructure-as-code tools, which are great ways to tag newly created resources. Unfortunately, there’s usually a manual process involved in tagging existing resources (starting with the most expensive ones). Throughout this process, don’t forget to tag supporting resources (such as EBS volumes or snapshots associated with EC2 instances). For teams looking for help to maximize existing tags, there are tools like CloudZero that can help boost existing tag coverage.

Quick Wins in the AWS Console

There are many useful features within AWS Cost Explorer for visualizing costs. For example:


    Use these to plan and manage reserved capacity, which can save up to 75 percent on the hourly rate compared to on-demand pricing.

    If the company’s environment is relatively static and the team has good account segmentation, this resource can be helpful. However, it can quickly get complicated with different teams building different features.
    A relatively new tool offered out of the EC2 area, AWS Compute Optimizer is a great resource to help identify EC2 waste by performing the typical rightsizing activities.
  • Config and Trusted Advisor
    Other AWS services help with understanding and optimizing infrastructure, namely . Config helps inventory your resources and Trusted Advisor provides proactive recommendations to help optimize your AWS environment. Unlike the free resources listed above, costs for these services can add up depending on your environment.

CloudZero Brings Cloud Cost Intelligence to Your Team

CloudZero delivers relevant cloud cost data about products and features to the engineers responsible for building them. Using machine learning, CloudZero automates manual cost management work, detects cost anomalies, and boosts AWS tagging coverage. With CloudZero, innovative companies can proactively reduce cloud costs, control their margins, and eliminate billing surprises.Cloud spending starts with engineering. Controlling it starts with CloudZero.

Get a Live Demo
Start a Free Trial