Show HN: AWS-doctor – A terminal-based AWS health check and cost optimizer in Go

Source: github.com
50 points by elC0mpa a month ago on hackernews | 20 comments

aws-doctor

A terminal-based tool that acts as a comprehensive health check for your AWS accounts. Built with Golang, aws-doctor diagnoses cost anomalies, detects idle resources, and provides a proactive analysis of your cloud infrastructure—effectively giving you the insights of AWS Trusted Advisor without the need for a Business or Enterprise support plan.

Demo

Basic usage

Trend

Waste

Features

  • 📉 Cost Comparison: Compares costs between the current and previous month for the exact same period (e.g., comparing Jan 1–15 vs Feb 1–15) to give a fair assessment of spending velocity.
  • 🏥 Waste Detection (The "Checkup"): Scans your account for "zombie" resources and inefficiencies that are silently inflating your bill.
  • 📊 Trend Analysis: Visualizes cost history over the last 6 months to spot long-term anomalies.

Motivation

As a Cloud Architect, I often need to check AWS costs and billing information. While the AWS Console provides raw data, it lacks the immediate context I need to answer the question: "Are we spending efficiently?"

I created aws-doctor to fill that gap. It doesn't just show you the bill; it acts as a diagnostic tool that helps you understand where the money is going and what can be cleaned up. It automates the routine checks I used to perform manually, serving as a free, open-source alternative to the paid recommendations found in AWS Trusted Advisor.

Installation

Golang

  • go install github.com/elC0mpa/aws-doctor@latest

Flags

  • --profile: Specify the AWS profile to use (default is "").
  • --region: Specify the AWS region to use (default is "us-east-1").
  • --trend: Shows a trend analysis for the last 6 months.
  • --waste: Makes an analysis of possible money waste you have in your AWS Account.
    • Unused EBS Volumes (not attached to any instance).
    • EBS Volumes attached to stopped EC2 instances.
    • Unassociated Elastic IPs.
    • EC2 reserved instance that are scheduled to expire in the next 30 days or have expired in the preceding 30 days.
    • EC2 instance stopped for more than 30 days.
    • EC2 instances stopped for more than 30 days.
    • Load Balancers with no attached target groups.
    • Inactive VPC interface endpoints.
    • Inactive NAT Gateways.
    • Idle Load Balancers.
    • RDS Idle DB Instances.

Roadmap

[x] Add monthly trend analysis.

[x] Add waste/waste analysis logic.

[ ] Export reports to CSV and PDF formats (Medical records for your cloud).

[ ] Distribute the CLI in Fedora, Ubuntu, and macOS repositories.