A Beginner’s Guide to Optimizing Your Company’s AWS Account

Pierre Schroth
TrackIt
Published in
5 min readDec 21, 2023

Article by Pierre Schroth and Antoine Berger, Software Engineers @ TrackIt

Amazon Web Services (AWS) provides an extensive array of cloud services that empower businesses to scale, innovate, and operate more efficiently. However, as your company’s usage of AWS grows, so does the complexity of managing resources and controlling costs. It is crucial to periodically clean and optimize your AWS account to remove unnecessary services, reduce costs, and ensure proper organization.

This article serves as a comprehensive guide to cleaning your company’s AWS account, including removing useless services, reducing costs, and implementing proper tagging practices.

1. Identify Unused Resources

There are numerous tools that can be used to help you identify unused resources on your AWS account.

Review AWS Billing Dashboard & Cost Explorer

AWS Billing Dashboard

Regularly check and review your billing dashboard. It will help you identify spikes in costs and/or unexpected charges. The Cost Manager tool allows you to sort the services with filters such as cost, region, and type. This helps you get a better understanding of how your money is being spent.

Amazon CloudWatch Metrics

Occasionally, services may be overprovisioned (used on scales that are too large for the tasks they are meant to perform). Using Amazon CloudWatch metrics helps you address this issue. For example, CloudWatch metrics can be used to identify instances with consistently low CPU or network usage. This aids in pinpointing instances that may be candidates for downsizing or termination.

Check your Tagged Projects

Tags can be very useful in improving your AWS console management. It is a best practice to consistently tag AWS resources while they are being created. Tags can help in the quick listing and identification of unused instances. The third section of this article will conduct a deeper dive into tags.

2. Remove Unnecessary Services

Assess the need for each AWS service. If a service is not contributing directly to business objectives, consider discontinuing or replacing it with a more cost-effective alternative.

Below is a list of services that frequently contribute to excessive AWS spending:

Idle/Underutilized Amazon EC2 instances

Identify and terminate idle or underutilized EC2 instances. Consider using Auto Scaling Groups to dynamically adjust the number of instances based on demand.

Unused Volumes and Snapshots

Remove unused EBS volumes and snapshots. These can accumulate over time, resulting in unnecessary costs.

Obsolete Load Balancers and Auto Scaling Groups

If your application architectures have evolved, review and remove obsolete Elastic Load Balancers and Auto Scaling Groups that are no longer required.

3. Implementing Consistent & Effective Tagging

Consistent tagging can help you organize and quickly identify AWS resources associated with specific projects, teams, and related elements.

Define Tagging Policies

Establish tagging policies for your company, and consistently apply tags to all resources. The tagging policies you choose to implement should be customized to meet your company’s requirements. The following is a list of common tags used for effective resource management:

  • type
  • region
  • name
  • project
  • creator
  • environment
  • persistent (boolean)
  • creation date

Automate Tagging with AWS Lambda

Use AWS Lambda functions to automatically apply tags based on predefined rules. This ensures consistency and reduces the manual effort required for tagging.

AWS Tagging Best Practices

Follow AWS tagging best practices such as standardized key names, avoiding special characters, and ensuring that tags are relevant and meaningful. Find the official AWS documentation here.

Review your Tagged Resources with Tagbot

There are many ways to simplify instances overview. One solution is to use Tagbot to see all your resources and sort them by tags.

An example of an account with poor tagging

4. Conduct Regular Audits and Monitor Your Resources

To avoid ending up with a lot of unused, expensive, and untagged resources, conduct regular and organized audits of your AWS account(s).

Schedule audits

Set up regular audits to review your AWS environment for compliance with optimization and tagging practices. You can also review governance and security measures in your AWS account. It is recommended to conduct audits at least once every quarter. This frequency may vary based on company size and AWS usage.

Set up alarms

Implement alarms to receive notifications for unexpected service utilization, cost spikes, or deviations from best practices. CloudWatch Alarms and Billing Alarms can be used for this purpose.

Conclusion

Cleaning and optimizing your company’s AWS account is an ongoing process that requires regular attention and adherence to best practices. By identifying unused resources, removing unnecessary services, implementing cost-reduction strategies, adopting proper tagging practices, and enforcing governance and compliance, you can ensure that your AWS environment remains efficient, cost-effective, and aligned with your business goals. Regular audits and monitoring further contribute to maintaining a well-optimized and organized AWS infrastructure.

Remember, a clean and well-organized AWS account not only reduces costs but also enhances overall operational efficiency and security.

About TrackIt

TrackIt is an Amazon Web Services Advanced Tier Services Partner specializing in cloud management, consulting, and software development solutions based in Marina del Rey, CA.

TrackIt specializes in Modern Software Development, DevOps, Infrastructure-As-Code, Serverless, CI/CD, and Containerization with specialized expertise in Media & Entertainment workflows, High-Performance Computing environments, and data storage.

In addition to providing cloud management, consulting, and modern software development services, TrackIt also provides an open-source AWS cost management tool that allows users to optimize their costs and resources on AWS.

--

--