AWS Cost Optimization

Source: Image Source: https://www.prosperops.com/blog/price-vs-value-selecting-the-best-aws-cost-optimization-tool/

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?

Tagging

  • 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

Source: https://devpress.csdn.net/cicd/62ec75a189d9027116a10ffb.html
  • 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

Serverless

Graviton Instances

Source: https://www.storagereview.com/news/aws-ec2-m7g-and-r7g-instances-powered-by-graviton3-processors-announced
  • 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