AWS Cost Optimization

Source: Image Source:

What is Cost optimization and Why do we need it?

  • How much spend is going towards a particular project/application/environment?
  • Are there any particular applications that seem too expensive compared to others?
  • Is a particular feature/service/resource too costly?
  • Should we allocate resources to look into optimization or alternatives to driving down cost?
  • Are there unexplained spikes in usage or cost? For which resources? Who do they belong to?


  • Name: {Prefix}-{Product_Name/Project_Name}-{Environment_Name} (e.g: BU-xyz-dev)
  • Product: Product1/Product2/Product2
  • Project: Project1/Project2/Project3/Project4
  • Owner: Mayank Patel (Technical Lead of the Project who can take ownership of resources)
  • ManagedBy: Terraform/CodeCatalyst/Person’s Name (This should represent how resources are deployed either through the Automation tool or the Person who manually provisioned the resource.)
  • Environment: dev/staging/rc/uat/onboard/prod (Standard Environment Name across all business unit products)
  • Description: AWS Aurora Database for Project1 (High-level short human-readable description)
  • Unit: Business Unit Name

Budget Allocation and Alerts

Trusted Advisor

  • If Database Instances Idle for X amount of time and not being used. This brings the opportunity to either downscale or stop or eliminate it.
  • Over Provisioned resources / Low Utilization on resources → Right Sizing of resources specification. For example, if the team requested 2xlarge Instances and Instances not utilizing resources over a certain percentage even at peak time then right sizing to xlarge and observe the usage.

Spot Instances

  • If Spot instances are sold to other customers then this can cause failure in spinning up Instances
  • If the Price of Spot Instances is higher than the threshold set by us then also causes failure in spinning up instances.
  • Make sure your architecture is Flexible, stateless, and loosely coupled.
  • Data Pipeline
  • Runner Instances for CI/CD
  • High performance Compute needed for Machine learning,

Reserve Instances

  • Have to plan for Growth and future compute needs making sure will not need to have major architecture changes.
  • In a multi-account setup If one account reserved an instance and does not use it. Another account can leverage that if using specific instance families and classes

Savings Plan


Graviton Instances

  • Graviton being ARM-based often time there is a major issue of packages not being available.

GP3 Storage

  • Clean up Unattached volumes

Setup Automated Instance Scale up and down depending on usage

Auto Scaling

S3 Buckets



Principal Architect at Enverus

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store