AAWSLearn
Back to Blog
FinOps10 min read

AWS Cost Optimization: 10 Strategies That Actually Work

Cut cloud spend without sacrificing performance using reserved instances, spot fleets, and right-sizing.

#Cost#FinOps#AWS

Cloud scalability is a double-edged sword: spinning up resources is easy, but forgetting to turn them off is even easier. The discipline of FinOps (Financial Operations) focuses on managing cloud costs through data, automation, and architectural reviews.

Here are the top strategies you can implement today to cut your AWS bill by up to 40%.


1. Right-size Underutilized Resources

AWS Cost Explorer provides recommendations, but you can also write custom CLI queries to identify over-provisioned compute resources.

For instance, you can use the AWS CLI to find EC2 instances running with very low CPU utilization over the past month. Run this bash command to get instance metadata:

# List all t3 and m5 instances that have been running
aws ec2 describe-instances \
  --filters "Name=instance-state-name,Values=running" \
  --query "Reservations[*].Instances[*].{ID:InstanceId,Type:InstanceType,Key:KeyName}" \
  --output table

Once identified, downsize instances to smaller sizes (e.g., from m5.xlarge to t3.medium) or convert them to modern Graviton instances (t4g or m7g), which offer 40% better price-performance.


2. Leverage Savings Plans & Reserved Instances

For predictable baseline workloads running 24/7 (such as persistent databases or monitoring nodes), never pay on-demand pricing.

  • Compute Savings Plans: Offer up to 66% savings and apply automatically across EC2, Fargate, and Lambda.
  • Instance Savings Plans: Offer up to 72% savings in exchange for committing to a specific instance family in a region (e.g., m6g in us-east-1).

3. Automate Non-Production Shut-Downs

Non-production environments (development, testing, QA) only need to run during business hours (approx. 50 hours a week out of 168). Shutting them down at night and on weekends saves over 70% of compute costs.

Use AWS Systems Manager (SSM) or a simple Lambda cron function to automate this behavior:

# Example cron schedule in Serverless/AWS to trigger stop-instances at 8 PM daily
0 20 * * ? *

By implementing these steps and tagging resources with strict lifecycle rules, you will bring immediate financial predictability back to your cloud architecture.

Related Articles

Architecture

AWS Well-Architected Framework: A Practical Guide

Learn the six pillars of the Well-Architected Framework and how to apply them to real-world cloud workloads.

Kubernetes

EKS Production Checklist: From Cluster to Deployment

A comprehensive checklist for running production-grade Kubernetes on Amazon EKS with security and observability.

DevOps

CI/CD with GitHub Actions and AWS

Build a complete deployment pipeline using GitHub Actions, OIDC federation, and AWS CodeDeploy or ECS.

Search AWSLearn

Search for AWS VPC, Karpenter, Docker builds, Linux runlevels, or Terraform states.