Migration from v1¶
This guide helps you migrate from the original v1 script collection to the unified v2 CLI tool.
Overview¶
AWS Cloud Utilities v2 consolidates all the individual v1 scripts into a single, unified command-line interface with enhanced functionality and better user experience.
Key Changes¶
From Scripts to Unified CLI¶
v1 (Multiple Scripts)
python support/aws_check_support.py
python account/aws_get_acct_info.py
python account/detect_control_tower.py
v2 (Unified CLI)
aws-cloud-utilities support check-level
aws-cloud-utilities account contact-info
aws-cloud-utilities account detect-control-tower
Enhanced Command Structure¶
v2 follows a hierarchical structure:
Command Mapping¶
Support Commands¶
| v1 Script | v2 Command | Notes |
|---|---|---|
support/aws_check_support.py |
aws-cloud-utilities support check-level |
Enhanced with better error handling |
support/aws_check_support2.py |
aws-cloud-utilities support check-level --method api |
Integrated as option |
New in v2:
aws-cloud-utilities support cases --status open
aws-cloud-utilities support services
aws-cloud-utilities support severity-levels
Account Commands¶
| v1 Script | v2 Command | Notes |
|---|---|---|
account/aws_get_acct_info.py |
aws-cloud-utilities account contact-info |
Enhanced output formatting |
account/detect_control_tower.py |
aws-cloud-utilities account detect-control-tower |
Parallel region scanning |
New in v2:
aws-cloud-utilities account info
aws-cloud-utilities account regions
aws-cloud-utilities account limits
aws-cloud-utilities account validate
Cost Optimization Commands¶
| v1 Script | v2 Command | Notes |
|---|---|---|
costops/aws_pricing.py |
aws-cloud-utilities costops pricing |
Enhanced with more services |
costops/gpu_spot_prices.py |
aws-cloud-utilities costops spot-pricing |
Covers all instance types, not just GPU; filter with --instance-types |
New in v2:
aws-cloud-utilities costops cost-analysis
aws-cloud-utilities costops ebs-optimization --all-regions
aws-cloud-utilities costops usage-metrics AmazonEC2
GPU spot pricing is now a two-step flow rather than a dedicated command. Collect, then analyze:
aws-cloud-utilities costops spot-pricing --all-regions --instance-types p3.2xlarge,g4dn.xlarge --output-dir ./spot-data
aws-cloud-utilities costops spot-analysis ./spot-data --top-n 10
Security Commands¶
| v1 Script | v2 Command | Notes |
|---|---|---|
security/blue_team_audit.py |
aws-cloud-utilities security metrics |
Aggregates WAF, GuardDuty, and Security Hub findings |
security/public_resources.py |
aws-cloud-utilities awsconfig compliance-checker |
Exposure detection now goes through AWS Config rules |
iam/audit_roles.py |
aws-cloud-utilities iam audit |
Dumps roles and policies to disk for offline review |
New in v2:
aws-cloud-utilities security metrics --all-regions
aws-cloud-utilities security list-certificates --all-regions
aws-cloud-utilities awsconfig compliance-status --compliance-type NON_COMPLIANT
Not a one-to-one port
The v1 blue_team_audit.py and public_resources.py scripts do not have direct v2 equivalents.
v2 leans on AWS Config and Security Hub for compliance and exposure findings rather than
reimplementing those checks. See Security Commands and
AWS Config Commands for what is actually available.
Migration Steps¶
1. Install v2¶
2. Update Your Scripts¶
Before (v1):
#!/bin/bash
cd /path/to/aws-cloud-tools
python support/aws_check_support.py
python account/aws_get_acct_info.py
After (v2):
3. Update Configuration¶
v1 Configuration: - Individual script configurations - Hardcoded values in scripts - Environment variables scattered
v2 Configuration:
# Interactive setup
aws-cloud-utilities configure
# Or create ~/.aws-cloud-utilities.env
AWS_PROFILE=default
AWS_DEFAULT_REGION=us-east-1
AWS_OUTPUT_FORMAT=table
WORKERS=4
4. Update Output Handling¶
v1 Output: - Inconsistent formats - Basic text output - Limited formatting options
v2 Output:
# Multiple formats available -- --output is a global option, so it goes first
aws-cloud-utilities --output json account info
aws-cloud-utilities --output yaml account info
aws-cloud-utilities --output table account info
aws-cloud-utilities --output csv account info
Feature Enhancements¶
Improved Error Handling¶
v1: - Basic error messages - Script failures without context - No graceful degradation
v2: - Rich error messages with context - Graceful degradation with limited permissions - Actionable error guidance
Better Performance¶
v1: - Sequential operations - No progress indicators - Fixed timeouts
v2: - Parallel processing with configurable workers - Progress bars for long operations - Configurable timeouts and retries
Enhanced Output¶
v1: - Plain text output - Inconsistent formatting - Limited data export options
v2: - Rich console output with colors and tables - Multiple export formats (JSON, YAML, CSV) - Consistent formatting across all commands
Automation Migration¶
Cron Jobs¶
Before:
# /etc/cron.d/aws-audit
0 2 * * * user cd /path/to/scripts && python security/blue_team_audit.py > /var/log/audit.log
After:
# /etc/cron.d/aws-audit
0 2 * * * user aws-cloud-utilities security blue-team-audit --output json > /var/log/audit.json
CI/CD Pipelines¶
Before:
- name: Run AWS Audit
run: |
cd aws-cloud-tools
python security/blue_team_audit.py
python account/detect_control_tower.py
After:
- name: Run AWS Audit
run: |
aws-cloud-utilities --output json security metrics > audit.json
aws-cloud-utilities --output json account detect-control-tower > control-tower.json
Note that global options such as --output go before the command name, not after it.
Monitoring Scripts¶
Before:
import subprocess
result = subprocess.run(['python', 'support/aws_check_support.py'], capture_output=True)
After:
import subprocess
result = subprocess.run(['aws-cloud-utilities', 'support', 'check-level', '--output', 'json'], capture_output=True)
Backward Compatibility¶
Environment Variables¶
Most v1 environment variables are still supported:
AWS Configuration¶
Your existing AWS configuration continues to work:
# ~/.aws/credentials and ~/.aws/config are still used
aws-cloud-utilities --profile production account info
Testing Your Migration¶
1. Verify Installation¶
2. Test Basic Commands¶
# Test account access
aws-cloud-utilities account info
# Test with your profile
aws-cloud-utilities --profile your-profile account info
3. Compare Outputs¶
Run equivalent commands and compare:
# v1
python account/aws_get_acct_info.py > v1-output.txt
# v2
aws-cloud-utilities account contact-info > v2-output.txt
4. Test Automation¶
Update one automation script at a time and test thoroughly.
Troubleshooting Migration¶
Common Issues¶
-
Command not found
-
Different output format
-
Missing functionality
-
Permission errors
Getting Help¶
# General help
aws-cloud-utilities --help
# Service help
aws-cloud-utilities account --help
# Command help
aws-cloud-utilities account info --help
Migration Checklist¶
- Install v2 CLI tool
- Test basic commands with your AWS profile
- Update automation scripts one by one
- Update cron jobs and CI/CD pipelines
- Update monitoring and alerting scripts
- Test all updated automation
- Update documentation and runbooks
- Train team members on new commands
- Remove v1 scripts (after thorough testing)
Benefits After Migration¶
- Unified Interface: Single command instead of multiple scripts
- Better UX: Rich output, progress indicators, help system
- Enhanced Functionality: More options and better error handling
- Consistent Patterns: Same CLI patterns across all services
- Modern Python: Type hints, proper packaging, testing
- Better Performance: Parallel processing and optimization
- Easier Maintenance: Single codebase instead of scattered scripts
Next Steps¶
- Quick Start - Learn the new commands
- Configuration - Set up your preferences
- Command Reference - Explore all available commands
- Examples - See real-world usage patterns