VM Snooze SousChef

AWS Stopped InstancesLister

Professional PowerShell script that discovers and analyzes stopped EC2 instances across AWS accounts and regions. Fast AWS CLI integration with comprehensive CSV + HTML reporting for resource optimization.

Quick Start
# List all stopped instances
.\AWS-StoppedInstances.ps1
# Filter by age (30+ days)
.\AWS-StoppedInstances.ps1 -MinDays 30
# Specific regions
.\AWS-StoppedInstances.ps1 -Regions "us-east-1,us-west-2"

PowerShell + AWS CLI Excellence

Comprehensive analysis and reporting for stopped AWS EC2 instances with enterprise-grade performance

AWS CLI Integration

Native integration with AWS CLI for authenticated access and reliable data retrieval across accounts

Multi-Region Discovery

Automatically discovers all enabled regions or targets specific regions for focused analysis

Profile Management

Support for multiple AWS profiles with automatic authentication verification and credential handling

Parallel Processing

High-performance parallel scanning across regions with configurable concurrency limits

Instance State Analysis

Comprehensive analysis of stopped and optionally terminated instances with detailed metadata

Owner Detection

Extracts owner information from EC2 tags for accountability and lifecycle management

Age Analysis

Calculates days since instance launch with configurable age-based filtering for lifecycle decisions

Dual Report Formats

Generates both CSV (for analysis) and HTML (for executive reporting) with comprehensive breakdowns

Usage Examples

Real-world scenarios for AWS instance lifecycle management and optimization

Complete Account Scan

.\AWS-StoppedInstances.ps1

Discovers all stopped instances across your entire AWS account with automatic region discovery.

Age-Based Filtering

.\AWS-StoppedInstances.ps1 -MinDays 30

Focuses on instances stopped for 30+ days for lifecycle management and potential cleanup decisions.

Regional Analysis

.\AWS-StoppedInstances.ps1 -Regions "us-east-1,us-west-2"

Analyzes specific regions for targeted resource management and compliance reporting.

Profile-Specific Scanning

.\AWS-StoppedInstances.ps1 -Profile "production" -IncludeTerminated

Uses specific AWS profile and includes terminated instances for comprehensive lifecycle analysis.

Technical Specifications

Enterprise-grade PowerShell script with comprehensive AWS instance discovery capabilities

Requirements

PowerShell 5.1+

Modern PowerShell with parallel job support and advanced cmdlets

AWS CLI v2

AWS Command Line Interface installed and configured with proper authentication

AWS Authentication

Valid AWS credentials configured via AWS CLI, environment variables, or IAM roles

IAM Permissions

EC2 read permissions (ec2:DescribeInstances, ec2:DescribeRegions) across target regions

Network Connectivity

Internet access to AWS API endpoints

Command Line Parameters

-Regions

Comma-separated list of AWS regions to scan

-MinDays

Minimum days since launch to include instances (default: 0)

-OutputPath

Output directory for reports (default: current directory)

-MaxConcurrent

Maximum number of concurrent operations (default: 10)

-SkipRegions

Comma-separated list of regions to skip during scanning

-Profile

AWS CLI profile to use (default: default profile)

-IncludeTerminated

Include terminated instances in addition to stopped ones

Core Features

Discovery Engine

  • • Automatic region discovery via AWS CLI
  • • Parallel processing with configurable concurrency limits
  • • PowerShell job-based parallel execution
  • • Comprehensive error handling and retry logic

Data Processing

  • • Instance age calculation with timezone handling
  • • Owner extraction from EC2 tags
  • • Instance type, region, and availability zone analysis
  • • Storage analysis with EBS volume details

Reporting Capabilities

  • • CSV export for data analysis and integration
  • • Rich HTML reports with visual breakdowns
  • • Age distribution analysis with priority levels
  • • Regional and availability zone distribution charts

Performance Optimization

  • • Concurrent AWS CLI calls with job management
  • • Progress tracking and performance metrics
  • • Configurable concurrency limits for rate limiting
  • • Memory-efficient data processing and aggregation

Comprehensive Reporting

Professional reporting in multiple formats with detailed analytics and visual breakdowns

CSV Data Export

Structured CSV export optimized for data analysis, filtering, and integration with business intelligence tools.

Instance details and configuration
Age analysis and launch timestamps
Owner information from tag analysis
Regional and availability zone organization
Instance type and storage details

HTML Executive Report

Rich HTML report with visual analytics, age distribution charts, and executive-friendly presentation for stakeholder communication.

Executive summary with key metrics
Age distribution with priority levels
Regional and availability zone breakdowns
Top oldest instances analysis
Performance metrics and API statistics

Chef's Tips & Best Practices

Professional recommendations for effective AWS instance lifecycle management

AWS CLI Setup

Ensure AWS CLI is properly configured and authenticated before running the script. Like prepping your kitchen tools, proper setup ensures smooth operation.

Performance Tuning

Start with 5-10 concurrent jobs for large accounts to balance speed and API rate limits. Like managing multiple burners, find the right balance for your environment.

Regional Strategy

Use region filtering for focused analysis or to avoid regions with restricted access. Target specific regions like a chef selecting ingredients from trusted suppliers.

Age-Based Filtering

Start with 30+ day filters for initial cleanup identification. Like aging ingredients, some instances need time, but others may be forgotten and ready for cleanup.

Owner Engagement

Use the owner detection to reach out before cleanup decisions. The script identifies owners through EC2 tags, enabling proactive communication about instance lifecycle.

Report Integration

Import CSV reports into analytics tools for trend analysis. The structured output enables executive dashboards and automated lifecycle management workflows.

Ready to Optimize Your AWS Resources?

Download the AWS Stopped Instances Lister and start identifying optimization opportunities in your Amazon Web Services today. PowerShell + AWS CLI excellence for comprehensive instance discovery.