AWS International Version Secret Tips to Save on AWS Bills
Secret Tips to Save on AWS Bills
Let’s be honest: opening your AWS bill feels like walking into a surprise birthday party—except instead of cake and confetti, there’s a $4,287.63 line item labeled ‘us-east-1: t3.xlarge (on-demand, 730 hrs)’, and your coffee just went cold. You didn’t even know you had a t3.xlarge. You thought you’d shut it down last Tuesday. Turns out, ‘last Tuesday’ was a myth you told yourself while staring blankly at CloudWatch alarms.
1. Reserved Instances Aren’t Just for Accountants (and Yes, They’re Still Relevant)
Yes, Reserved Instances (RIs) sound like something from a 2012 AWS whitepaper—and yes, they’ve been quietly upgraded to Compute Savings Plans. But don’t scroll past. Think of RIs as your AWS gym membership: pay upfront, show up regularly, and get 40–72% off. No judgment if you skip a day—but if you consistently run m5.large instances in us-west-2 for >1 year? That’s not a workload; that’s a lifestyle choice—and one you should pre-pay for.
Pro tip: Use Instance Scheduler + RIs together. Schedule non-prod environments to run only Mon–Fri, 9–5—and buy RIs *only* for those hours. AWS doesn’t care if your instance is stopped; it cares if it’s *reserved*. And if you over-reserve? Use AWS Cost Explorer’s RI Utilization Report—not to shame yourself, but to right-size next time. Bonus: Convert unused Standard RIs to Convertible RIs (with a small fee) if your app suddenly needs more memory than your ex’s Spotify playlist.
2. Spot Instances: The Thrift Store of Compute (With a 2-Minute Warning)
Spot Instances are AWS’s way of whispering, “Here’s 90% off—just don’t scream when I yank it back.” They’re perfect for fault-tolerant workloads: batch jobs, CI/CD runners, rendering farms, or training ML models that won’t cry if interrupted mid-epoch. Set up Spot Fleet with diversified instance types (c5, c6i, c7g) and multiple AZs—because redundancy isn’t paranoid; it’s polite to your pipeline.
Real talk: Use spot-advisor.net (unofficial but wildly accurate) to see real-time spot price history and interruption rates per instance type/AZ. A c6a.2xlarge in us-east-1c has a 2.3% hourly interruption rate? Great. Your data pipeline can handle that. A p4d.24xlarge? Maybe not—unless your GPU job is literally ‘rendering the universe in Blender.’ Also: always combine Spot with On-Demand as a fallback. It’s like keeping an umbrella in your bag—even if you forget it 80% of the time.
3. Rightsizing Isn’t Punishment—It’s Self-Care for Your EC2s
You wouldn’t wear size-14 jeans because ‘they fit… kind of… when I hold my breath.’ So why keep a r5.4xlarge running a WordPress blog with 12 monthly visitors? Stop. Breathe. Open Amazon Compute Optimizer.
This free service analyzes CPU, memory, network, and disk metrics—and suggests smaller (or larger!) instance types. It even flags underutilized resources: “This t3.medium has averaged 4% CPU for 30 days. Would you like to downgrade to t3.small—or upgrade to a serverless architecture?” (Spoiler: Serverless often wins.) Bonus: Enable EC2 Instance Auto Scaling with dynamic scaling policies—not just based on CPU, but on actual queue depth or API latency. Because scaling *up* when users are fleeing your site due to 5-second response times? That’s not scaling. That’s panic-buying compute.
4. S3: Where Data Goes to Retire (and Bill You Forever)
S3 is cheap—until it’s not. That ‘$0.023/GB/month’ sounds like pocket change until you realize you’ve stored 47TB of uncompressed log files from 2018, all in STANDARD storage. Oof.
Fix it with lifecycle rules. Automate transitions: move objects older than 30 days to STANDARD_IA, then after 90 days to GLACIER_IR, then delete after 7 years. Yes—set deletion rules. Your CFO will hug you. Also: enable S3 Intelligent-Tiering for unpredictable access patterns. It auto-moves objects between tiers (frequent/infrequent) with zero ops overhead—and no retrieval fees. It’s like having a butler who quietly moves your wine collection from cellar to bar depending on whether it’s Tuesday or Thanksgiving.
And please—please—disable S3 versioning unless you truly need it. Every version costs money. Every delete marker costs money. Every accidental aws s3 cp --recursive into a bucket with versioning enabled? That’s not a deploy. That’s a ransom note written in JSON.
5. Cost Explorer Is Your Financial Therapist (If Therapists Had Bar Charts)
Cost Explorer isn’t just charts—it’s your bill’s translator. Go beyond ‘Total Spend’ and drill into Usage Type. See that $1,200 spike labeled EBS:VolumeUsage.gp3? Click it. Filter by region, tag, account. You’ll likely find three unattached 2TB gp3 volumes named temp-db-backup-DO-NOT-DELETE (spoiler: they’re 14 months old and DO need deleting).
Create custom reports: ‘Top 10 Un-tagged Resources’, ‘Daily Spend by Application Tag’, ‘Savings Plan Utilization vs. Forecast’. Then set up budget alerts—not just at 100%, but at 70% and 90%. Because ‘Oops, we overspent’ is less fun than ‘Huh, we hit 70% on the 18th—let’s check what launched yesterday.’
6. The Nuclear Option: Delete What You Don’t Need (Yes, Really)
AWS International Version Go full Marie Kondo on your AWS account. Ask every resource: Does this spark joy? Does it serve prod? Does it have a ticket number, owner, and expiration date?
Run aws ec2 describe-instances --filters "Name=instance-state-name,Values=stopped" weekly. Same for unattached EBS volumes, idle RDS instances, orphaned Elastic IPs (yes, those cost $3.60/month each), and NAT gateways sitting alone in private subnets like sad bouncers at a closed club. Tag everything with Owner, Project, and ExpiresAt. Then automate cleanup: Lambda + EventBridge to terminate resources past their expiry—or at least notify their owners with a GIF of a wilting flower.
Bonus: The Human Factor (aka ‘Stop Saying Yes to Everything’)
The biggest cost center isn’t EC2 or S3—it’s the ‘cool demo’ you spun up at 4:58 PM on Friday. That serverless chatbot using 17 microservices, 3 DynamoDB tables, and a WebSocket API? It’s now running 24/7 because ‘we’ll clean it up Monday.’ Monday became Q3. Q3 became ‘we forgot.’
Solution: Enforce environment tagging and automated shutdowns. All non-prod resources must have Environment=dev|staging and AutoShutdown=true. Then run a nightly Lambda that stops tagged dev instances and deletes untagged resources older than 72 hours. It’s not mean—it’s mercy. For your wallet, your sanity, and the carbon footprint of that forgotten t2.nano humming softly in Ohio.
Bottom line? AWS pricing isn’t a puzzle—it’s a conversation. And the best savings don’t come from complex scripts or third-party tools. They come from asking, daily: What am I paying for that I’m not using? What am I using that I’m not paying attention to? And why does this Lambda function have 10GB of memory when it runs ‘hello world’?
Start small. Pick one tip. Fix one $200/month leak. Then go drink coffee—preferably one you paid for with the savings.

