Skip to content

CloudOps Runbooks Inventory - Advanced GuideΒΆ

Target Audience: Technical users, SREs, Cloud Architects, FinOps practitioners, Security Engineers

πŸ“‹ Command Categories - Detailed ReferenceΒΆ

1️⃣ Discovery CommandsΒΆ

πŸ” Multi-account resource discovery (10 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `resource-explorer` | Discover 88 AWS resource types | CENTRALISED_OPS | CSV/JSON | Universal discovery | | `discover-ec2` | EC2 instance discovery | CENTRALISED_OPS | CSV | Compute inventory | | `discover-rds` | RDS database discovery | CENTRALISED_OPS | CSV | Database inventory | | `discover-lambda` | Lambda function discovery | CENTRALISED_OPS | CSV | Serverless inventory | | `discover-workspaces` | WorkSpaces discovery | CENTRALISED_OPS | CSV | VDI cost analysis | | `discover-snapshots` | EBS snapshot discovery | CENTRALISED_OPS | CSV | Storage optimization | | `list-s3-buckets` | S3 bucket enumeration | CENTRALISED_OPS | CSV | Storage inventory | | `list-elbs` | Load balancer discovery | CENTRALISED_OPS | CSV | Network inventory | | `list-vpcs` | VPC discovery | CENTRALISED_OPS | CSV | Network topology | | `resource-types` | List 88 supported types | Any | Table | Reference documentation | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml discover-ec2

# Notebook integration (subprocess pattern)
import subprocess
result = subprocess.run([
    'runbooks', 'inventory', 'resource-explorer',
    '--resource-type', 'ec2',
    '--output', '/tmp/ec2.csv'
], check=True)
**CLI Example**:
# Discover all EC2 instances across organization
runbooks inventory resource-explorer --resource-type ec2 --output ec2-inventory.csv

# Discover specific resource types
runbooks inventory discover-rds --output rds-databases.csv
runbooks inventory discover-lambda --output lambda-functions.csv

2️⃣ Organizations CommandsΒΆ

🏒 Multi-account organization mapping (3 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `draw-org` | Visualize AWS organization structure | CENTRALISED_OPS | JSON/Markdown | Architecture documentation | | `enrich-accounts` | Add account metadata to inventory | CENTRALISED_OPS | CSV | Account context enrichment | | `list-accounts` | List organization accounts | CENTRALISED_OPS | Table/CSV | Account discovery | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml draw-org

# Notebook integration
subprocess.run([
    'runbooks', 'inventory', 'draw-org',
    '--output', '/tmp/org-structure.json'
], check=True)
**CLI Example**:
# Generate organization diagram
runbooks inventory draw-org --output org-structure.json

# Enrich inventory with account metadata
runbooks inventory enrich-accounts \
  --input ec2-inventory.csv \
  --output ec2-with-accounts.csv

3️⃣ Cost Enrichment CommandsΒΆ

πŸ’° Cost data integration (3 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `enrich-costs` | Add cost data to inventory | CENTRALISED_OPS | CSV | Cost visibility | | `validate-costs` | Cross-validate cost accuracy | CENTRALISED_OPS | JSON | Quality assurance | | `historical-costs` | 6-month cost analysis | CENTRALISED_OPS | CSV/JSON | Trend analysis | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml enrich-costs

# Notebook integration
import pandas as pd
subprocess.run([
    'runbooks', 'inventory', 'enrich-costs',
    '--input', '/tmp/resources.csv',
    '--output', '/tmp/resources-with-costs.csv'
], check=True)
df = pd.read_csv('/tmp/resources-with-costs.csv')
**CLI Example**:
# Add cost data to EC2 inventory
runbooks inventory enrich-costs \
  --input ec2-inventory.csv \
  --output ec2-with-costs.csv

# Validate cost accuracy (β‰₯99.5% target)
runbooks inventory validate-costs \
  --input ec2-with-costs.csv \
  --output validation-results.json

# Historical cost analysis (6 months)
runbooks inventory historical-costs \
  --output cost-analysis.csv

4️⃣ Activity Enrichment CommandsΒΆ

πŸ“Š Resource activity signals (2 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `enrich-activity` | Add activity signals (E1-E7, W1-W6, S1-S7, L1-L6) | CENTRALISED_OPS | CSV | Usage patterns | | `analyze-activity` | Activity pattern analysis | CENTRALISED_OPS | JSON | Decommission candidates | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml enrich-activity

# Notebook integration
subprocess.run([
    'runbooks', 'inventory', 'enrich-activity',
    '--input', '/tmp/ec2.csv',
    '--output', '/tmp/ec2-activity.csv'
], check=True)
**CLI Example**:
# Add activity signals to EC2 inventory
runbooks inventory enrich-activity \
  --input ec2-with-costs.csv \
  --output ec2-with-activity.csv

# Signals added: E1 (CloudTrail), E2 (CloudWatch), E3 (EBS), E4 (Network), etc.
**Activity Signals Reference**: - **EC2 (E1-E7)**: CloudTrail API calls, CloudWatch metrics, EBS activity, Network I/O, Instance state, CPU utilization, Age analysis - **WorkSpaces (W1-W6)**: Connection frequency, User activity, Data transfer, Session duration, Login patterns, Usage hours - **Snapshots (S1-S7)**: AMI association, Volume existence, Age, Size, Encryption, Tags, Lifecycle status - **Lambda (L1-L6)**: Invocation count, Error rate, Duration, Memory usage, Concurrency, Last invoked

5️⃣ Scoring CommandsΒΆ

🎯 Decommission prioritization (2 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `score-decommission` | Calculate decommission scores (0-100) | CENTRALISED_OPS | CSV | Savings prioritization | | `tier-resources` | Classify by decommission likelihood | CENTRALISED_OPS | JSON | Risk stratification | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml score-decommission

# Notebook integration
subprocess.run([
    'runbooks', 'inventory', 'score-decommission',
    '--input', '/tmp/ec2-activity.csv',
    '--output', '/tmp/ec2-scored.csv'
], check=True)
**CLI Example**:
# Calculate decommission scores
runbooks inventory score-decommission \
  --input ec2-with-activity.csv \
  --output ec2-scored.csv

# Tier resources by decommission likelihood
runbooks inventory tier-resources \
  --input ec2-scored.csv \
  --output tiers.json
**Scoring Logic**: - **90-100**: High confidence decommission (idle, stopped, old) - **70-89**: Moderate confidence (low usage, redundant) - **50-69**: Review recommended (underutilized) - **0-49**: Keep running (active, critical)

6️⃣ Validation CommandsΒΆ

βœ… Quality assurance & cross-validation (3 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `validate-mcp` | MCP server cross-validation | CENTRALISED_OPS | JSON | Accuracy verification | | `validate-costs` | Cost data accuracy check | CENTRALISED_OPS | JSON | Financial validation | | `validate-discovery` | Discovery completeness check | CENTRALISED_OPS | JSON | Coverage verification | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml validate-mcp

# Notebook integration
subprocess.run([
    'runbooks', 'inventory', 'validate-mcp',
    '--input', '/tmp/ec2.csv',
    '--output', '/tmp/validation.json'
], check=True)
**CLI Example**:
# MCP cross-validation (β‰₯99.5% target)
runbooks inventory validate-mcp \
  --input ec2-inventory.csv \
  --output mcp-validation.json

# Cost accuracy validation
runbooks inventory validate-costs \
  --input ec2-with-costs.csv \
  --output cost-validation.json
**Validation Standards**: - **MCP Accuracy**: β‰₯99.5% required for production readiness - **Cost Variance**: <0.5% deviation acceptable - **Discovery Coverage**: 100% of accessible accounts

7️⃣ Workflow CommandsΒΆ

⚑ Automated pipelines (3 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `workflow-multi-account` | Full 5-layer pipeline (all accounts) | CENTRALISED_OPS | CSV | Enterprise automation | | `workflow-single-account` | 5-layer pipeline (single account) | Any | CSV | Focused analysis | | `workflow-custom` | Custom pipeline configuration | CENTRALISED_OPS | CSV | Specialized workflows | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml workflow-multi-account

# Notebook integration
subprocess.run([
    'runbooks', 'inventory', 'workflow-multi-account',
    '--output', '/tmp/complete-inventory.csv'
], check=True)
**CLI Example**:
# Full enterprise workflow (5 layers)
runbooks inventory workflow-multi-account \
  --output enterprise-inventory.csv

# Single account workflow
runbooks inventory workflow-single-account \
  --profile PRODUCTION \
  --output production-inventory.csv
**5-Layer Pipeline Architecture**: 1. **Discovery**: Resource enumeration (88 types) 2. **Organizations**: Account metadata enrichment 3. **Costs**: Financial data integration 4. **Activity**: Usage signals (E1-E7, W1-W6, S1-S7, L1-L6) 5. **Scoring**: Decommission prioritization (0-100)

8️⃣ Export CommandsΒΆ

πŸ“€ Multi-format data export (4 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `export-csv` | CSV export with filtering | Any | CSV | Excel analysis | | `export-json` | JSON export for APIs | Any | JSON | System integration | | `export-markdown` | Markdown tables | Any | Markdown | Documentation | | `export-excel` | Excel workbook (multi-sheet) | Any | XLSX | Executive reporting | **Integration Example**:
# Taskfile integration
task -t Taskfile.inventory.yaml export-excel

# Notebook integration
subprocess.run([
    'runbooks', 'inventory', 'export-excel',
    '--input', '/tmp/inventory.csv',
    '--output', '/tmp/report.xlsx'
], check=True)
**CLI Example**:
# Export to Excel (multi-sheet workbook)
runbooks inventory export-excel \
  --input ec2-scored.csv \
  --output ec2-report.xlsx

# Export to JSON for API integration
runbooks inventory export-json \
  --input ec2-scored.csv \
  --output ec2-data.json

# Export to Markdown for documentation
runbooks inventory export-markdown \
  --input ec2-scored.csv \
  --output ec2-table.md

9️⃣ Utility CommandsΒΆ

πŸ”§ Helper & reference commands (5 commands) | Command | Purpose | Profile | Output Format | Use Case | |---------|---------|---------|---------------|----------| | `resource-types` | List 88 supported resource types | Any | Table | Reference | | `list-profiles` | AWS profile enumeration | Any | Table | Configuration | | `test-connection` | AWS connectivity check | Any | JSON | Troubleshooting | | `version` | Show CLI version | Any | Text | Version verification | | `help` | Command documentation | Any | Text | Quick reference | **CLI Example**:
# List all supported resource types
runbooks inventory resource-types

# List AWS profiles
runbooks inventory list-profiles

# Test AWS connectivity
runbooks inventory test-connection --profile CENTRALISED_OPS

πŸ‘₯ User Persona MappingΒΆ

Persona 1: πŸ’Ό CxO / ExecutiveΒΆ

Goals: Cost visibility, decommission opportunities, compliance status, ROI measurement

Recommended Commands:

# Executive dashboard: Full pipeline with decommission scoring
runbooks inventory workflow-multi-account \
  --output executive-dashboard.csv

# Cost validation for financial accuracy
runbooks inventory validate-costs \
  --input executive-dashboard.csv \
  --output cost-validation.json

# Excel export for board presentations
runbooks inventory export-excel \
  --input executive-dashboard.csv \
  --output executive-report.xlsx

Key Metrics: - Total resource count across organization - Monthly cost by account/resource type - Decommission savings opportunities (high-score resources) - Cost accuracy validation (β‰₯99.5%)

Typical Questions Answered: - "What are our top cost drivers?" - "What savings can we achieve from idle resources?" - "What's our cloud spend by business unit?"


Persona 2: πŸ’° FinOps PractitionerΒΆ

Goals: Cost optimization, rightsizing, orphaned resource cleanup, budget tracking

Recommended Commands:

# Cost enrichment for financial analysis
runbooks inventory enrich-costs \
  --input resources.csv \
  --output resources-with-costs.csv

# Decommission scoring for cleanup prioritization
runbooks inventory score-decommission \
  --input resources-with-costs.csv \
  --output scored-resources.csv

# Historical cost trends (6 months)
runbooks inventory historical-costs \
  --output cost-trends.csv

# Cost validation for accuracy
runbooks inventory validate-costs \
  --input scored-resources.csv \
  --output validation.json

Key Metrics: - Resource cost by tag/account/type - Decommission candidates with cost impact - Cost variance vs. budget - Orphaned resource identification

Typical Questions Answered: - "Which resources have highest decommission scores?" - "What's the cost of idle/stopped instances?" - "Are our cost tags accurate?"


Persona 3: πŸ”§ SRE / OperationsΒΆ

Goals: Resource discovery, inventory accuracy, operational efficiency, automation

Recommended Commands:

# Multi-account resource discovery
runbooks inventory resource-explorer \
  --resource-type ec2 \
  --output ec2-inventory.csv

# MCP validation for accuracy
runbooks inventory validate-mcp \
  --input ec2-inventory.csv \
  --output validation.json

# Single-account workflow for focused analysis
runbooks inventory workflow-single-account \
  --profile PRODUCTION \
  --output production-inventory.csv

# Activity enrichment for usage patterns
runbooks inventory enrich-activity \
  --input ec2-inventory.csv \
  --output ec2-activity.csv

Key Metrics: - Resource count by state (running/stopped) - Activity signals (E1-E7) for usage patterns - Discovery completeness (100% coverage) - MCP validation accuracy (β‰₯99.5%)

Typical Questions Answered: - "What resources are running in production?" - "Which instances have low activity?" - "Is our inventory accurate?"


Persona 4: πŸ”’ Security EngineerΒΆ

Goals: Compliance validation, security posture, audit trails, vulnerability management

Recommended Commands:

# Resource discovery for security audit
runbooks inventory resource-explorer \
  --resource-type ec2 \
  --output ec2-security-audit.csv

# Tag coverage for compliance
runbooks inventory validate-discovery \
  --input ec2-security-audit.csv \
  --output discovery-validation.json

# Organization structure for access review
runbooks inventory draw-org \
  --output org-structure.json

# Export for security tools
runbooks inventory export-json \
  --input ec2-security-audit.csv \
  --output ec2-data.json

Key Metrics: - Resource inventory completeness - Tag coverage for compliance tracking - Account organization structure - Resource lifecycle status

Typical Questions Answered: - "What resources exist in production?" - "Are all resources properly tagged?" - "What's our organization structure?"


Persona 5: πŸ—οΈ Cloud ArchitectΒΆ

Goals: Architecture assessment, network topology, IaC drift, resource dependencies

Recommended Commands:

# Organization visualization
runbooks inventory draw-org \
  --output org-architecture.json

# VPC discovery for network topology
runbooks inventory list-vpcs \
  --output vpc-topology.csv

# Multi-account discovery for architecture review
runbooks inventory workflow-multi-account \
  --output architecture-inventory.csv

# Export to markdown for documentation
runbooks inventory export-markdown \
  --input architecture-inventory.csv \
  --output architecture-docs.md

Key Metrics: - Organization structure (OUs, accounts) - VPC topology and networking - Resource distribution by account - Account metadata and tags

Typical Questions Answered: - "What's our AWS organization structure?" - "How are resources distributed?" - "What's our network topology?"


Persona 6: πŸ’» Application DeveloperΒΆ

Goals: Resource discovery, dependency mapping, development resources, troubleshooting

Recommended Commands:

# Lambda function discovery
runbooks inventory discover-lambda \
  --output lambda-inventory.csv

# RDS database discovery
runbooks inventory discover-rds \
  --output rds-inventory.csv

# Load balancer enumeration
runbooks inventory list-elbs \
  --output elb-inventory.csv

# S3 bucket discovery
runbooks inventory list-s3-buckets \
  --output s3-inventory.csv

Key Metrics: - Development resource inventory - Resource dependencies (ELB β†’ EC2 β†’ RDS) - Resource configuration details - Resource state and availability

Typical Questions Answered: - "What Lambda functions exist?" - "Which databases are available?" - "What load balancers are configured?"


Persona 7: πŸ“‹ Compliance / AuditΒΆ

Goals: Landing Zone validation, Control Tower compliance, drift detection, audit trails

Recommended Commands:

# Complete organization inventory for audit
runbooks inventory workflow-multi-account \
  --output audit-inventory.csv

# Validation for audit evidence
runbooks inventory validate-mcp \
  --input audit-inventory.csv \
  --output mcp-validation.json

# Cost validation for financial audit
runbooks inventory validate-costs \
  --input audit-inventory.csv \
  --output cost-validation.json

# Excel export for audit documentation
runbooks inventory export-excel \
  --input audit-inventory.csv \
  --output audit-report.xlsx

Key Metrics: - Complete resource inventory (audit trail) - Validation accuracy (β‰₯99.5% MCP, <0.5% cost variance) - Discovery completeness (100% accounts) - Data provenance documentation

Typical Questions Answered: - "What's our complete resource inventory?" - "Is our data accurate and auditable?" - "What's the validation evidence?"


πŸ”— Integration PatternsΒΆ

Pattern 1: πŸ“‹ CLI + Taskfile AutomationΒΆ

Use Case: Scheduled inventory collection, team standardization, repeatable workflows

Implementation:

# Taskfile.inventory.yaml
version: '3'

tasks:
  discover-ec2:
    desc: "Discover EC2 instances"
    cmds:
      - runbooks inventory resource-explorer --resource-type ec2 --output data/ec2.csv

  discover-rds:
    desc: "Discover RDS databases"
    cmds:
      - runbooks inventory discover-rds --output data/rds.csv

  full-workflow:
    desc: "Complete 5-layer pipeline"
    cmds:
      - runbooks inventory workflow-multi-account --output data/complete-inventory.csv
      - runbooks inventory validate-mcp --input data/complete-inventory.csv --output data/validation.json
      - runbooks inventory export-excel --input data/complete-inventory.csv --output reports/inventory-report.xlsx

  scheduled-inventory:
    desc: "Daily scheduled inventory"
    cmds:
      - task: full-workflow
      - echo "Inventory complete - $(date)"

Execution:

# Run single task
task -t Taskfile.inventory.yaml discover-ec2

# Run full workflow
task -t Taskfile.inventory.yaml full-workflow

# Schedule with cron
0 2 * * * cd /path/to/project && task -t Taskfile.inventory.yaml scheduled-inventory

Benefits: - βœ… Repeatable workflows across team - βœ… Scheduled automation via cron - βœ… Standardized commands - βœ… Easy onboarding for new team members


Pattern 2: πŸ“Š CLI + Notebooks (Subprocess)ΒΆ

Use Case: Interactive analysis, visualization, data exploration, custom processing

Implementation:

# notebooks/inventory-analysis.ipynb

import subprocess
import pandas as pd
import matplotlib.pyplot as plt

# Step 1: Execute CLI command via subprocess
subprocess.run([
    'runbooks', 'inventory', 'workflow-multi-account',
    '--output', '/tmp/inventory.csv'
], check=True)

# Step 2: Read results in notebook
df = pd.read_csv('/tmp/inventory.csv')

# Step 3: Analysis and visualization
# Cost by resource type
cost_by_type = df.groupby('ResourceType')['MonthlyCost'].sum().sort_values(ascending=False)
cost_by_type.plot(kind='bar', title='Cost by Resource Type')

# Decommission candidates (score β‰₯70)
decommission_candidates = df[df['DecommissionScore'] >= 70]
potential_savings = decommission_candidates['MonthlyCost'].sum()
print(f"Potential monthly savings: ${potential_savings:,.2f}")

# Activity signal analysis
activity_columns = [col for col in df.columns if col.startswith(('E', 'W', 'S', 'L')) and col[1:].isdigit()]
low_activity = df[df[activity_columns].sum(axis=1) < 2]  # <2 positive signals
print(f"Low activity resources: {len(low_activity)}")

Benefits: - βœ… Rich visualizations (charts, graphs) - βœ… Interactive data exploration - βœ… Custom analysis logic - βœ… Reproducible research

When to Use: - Exploratory data analysis - Custom visualizations - Statistical analysis - Executive presentations


Pattern 3: βœ… CLI + MCP ValidationΒΆ

Use Case: Quality assurance, accuracy verification, production readiness

Implementation:

# Step 1: Runbooks discovery
runbooks inventory resource-explorer \
  --resource-type ec2 \
  --output ec2-inventory.csv

# Step 2: MCP cross-validation (β‰₯99.5% target)
runbooks inventory validate-mcp \
  --input ec2-inventory.csv \
  --output mcp-validation.json

# Step 3: Review validation results
cat mcp-validation.json | jq '.accuracy'
# Expected: 0.995 or higher (99.5%)

# Step 4: If accuracy met, proceed with workflow
if [ $(cat mcp-validation.json | jq '.accuracy >= 0.995') = "true" ]; then
  echo "βœ… MCP validation passed"
  runbooks inventory workflow-multi-account --output final-inventory.csv
else
  echo "❌ MCP validation failed - review discrepancies"
  cat mcp-validation.json | jq '.discrepancies'
fi

Validation Standards: - MCP Accuracy: β‰₯99.5% required for production - Cost Variance: <0.5% deviation acceptable - Discovery Coverage: 100% of accessible accounts

Benefits: - βœ… Independent verification (3rd party MCP) - βœ… Production quality assurance - βœ… Automated accuracy checking - βœ… Audit trail for compliance


Pattern 4: ⚑ Multi-Layer Pipelines¢

Use Case: Enterprise-scale automation, complete inventory lifecycle, end-to-end workflows

Automated Pipeline (Recommended):

# Single command - full 5-layer pipeline
runbooks inventory workflow-multi-account \
  --output enterprise-inventory.csv

Manual Pipeline (Understanding layers):

# Layer 1: Discovery (88 resource types)
runbooks inventory resource-explorer \
  --resource-type ec2 \
  --output layer1-discovery.csv

# Layer 2: Organizations (account metadata)
runbooks inventory enrich-accounts \
  --input layer1-discovery.csv \
  --output layer2-accounts.csv

# Layer 3: Costs (financial data)
runbooks inventory enrich-costs \
  --input layer2-accounts.csv \
  --output layer3-costs.csv

# Layer 4: Activity (usage signals E1-E7, W1-W6, S1-S7, L1-L6)
runbooks inventory enrich-activity \
  --input layer3-costs.csv \
  --output layer4-activity.csv

# Layer 5: Scoring (decommission prioritization 0-100)
runbooks inventory score-decommission \
  --input layer4-activity.csv \
  --output layer5-scored.csv

# Validation: MCP cross-check
runbooks inventory validate-mcp \
  --input layer5-scored.csv \
  --output validation.json

# Export: Excel report
runbooks inventory export-excel \
  --input layer5-scored.csv \
  --output enterprise-report.xlsx

Pipeline Architecture:

Discovery β†’ Organizations β†’ Costs β†’ Activity β†’ Scoring β†’ Validation β†’ Export
(Layer 1)   (Layer 2)       (Layer 3) (Layer 4)  (Layer 5)   (QA)        (Output)

Benefits: - βœ… Complete automation (single command) - βœ… Unix philosophy (composable layers) - βœ… Incremental processing - βœ… Error isolation per layer

When to Use: - Automated: 80% of use cases (workflow-multi-account) - Manual: Debugging, custom processing, layer-specific analysis


πŸ“Š Comparative AnalysisΒΆ

CLI vs Notebook Decision MatrixΒΆ

Criterion CLI Notebook Recommendation
Speed ⚑ Fast (seconds) 🐌 Slower (minutes) CLI for automation
Flexibility πŸ”§ Structured 🎨 Highly flexible Notebook for exploration
Automation βœ… Excellent (cron, Taskfile) ⚠️ Moderate CLI for pipelines
Visualization ❌ Limited (tables) βœ… Rich (charts, graphs) Notebook for analysis
Learning Curve 🟒 Low 🟑 Medium CLI for quick start
Team Sharing βœ… Easy (scripts) ⚠️ Requires Jupyter CLI for collaboration
Reproducibility βœ… Excellent 🟑 Good (with version control) CLI for consistency
Integration βœ… Universal (bash, Python, etc.) ⚠️ Python-specific CLI for broad integration
Cost 🟒 Free 🟒 Free Equal
Maintenance βœ… Simple ⚠️ Requires notebook management CLI for long-term

Overall Recommendation: - CLI-first for 80% of use cases (automation, scheduled tasks, production workflows) - Notebooks for 20% specialized analysis (exploratory analysis, custom visualizations, executive presentations)


Workflow Command ComparisonΒΆ

Feature workflow-multi-account workflow-single-account Manual Pipeline
Account Scope All organization accounts Single account Configurable
Execution Time 5-10 minutes (large orgs) 1-2 minutes Variable
Complexity Low (automated) Low (automated) High (manual)
Customization Limited Limited Unlimited
Error Handling Automatic retry Automatic retry Manual
Use Case Enterprise inventory Focused analysis Debugging, custom

Recommendation: Use workflow-multi-account for 90% of enterprise use cases.


Resource Type CoverageΒΆ

Service CLI Command Notebook Support MCP Validation Coverage
EC2 βœ… resource-explorer, discover-ec2 βœ… Subprocess βœ… β‰₯99.5% 100%
RDS βœ… discover-rds βœ… Subprocess βœ… β‰₯99.5% 100%
Lambda βœ… discover-lambda βœ… Subprocess βœ… β‰₯99.5% 100%
WorkSpaces βœ… discover-workspaces βœ… Subprocess βœ… β‰₯99.5% 100%
Snapshots βœ… discover-snapshots βœ… Subprocess βœ… β‰₯99.5% 100%
S3 βœ… list-s3-buckets βœ… Subprocess βœ… β‰₯99.5% 100%
ELB βœ… list-elbs βœ… Subprocess βœ… β‰₯99.5% 100%
VPC βœ… list-vpcs βœ… Subprocess βœ… β‰₯99.5% 100%
Other 80 types βœ… resource-explorer βœ… Subprocess ⚠️ Partial 88 total

Total Supported: 88 AWS resource types


πŸŽ“ Best PracticesΒΆ

1. Start with WorkflowsΒΆ

# Begin with automated workflow, not individual commands
runbooks inventory workflow-multi-account --output inventory.csv

2. Validate Before ProductionΒΆ

# Always validate accuracy before using data
runbooks inventory validate-mcp --input inventory.csv --output validation.json
runbooks inventory validate-costs --input inventory.csv --output cost-validation.json

3. Use Taskfile for RepeatabilityΒΆ

# Store commands in Taskfile for team consistency
tasks:
  daily-inventory:
    cmds:
      - runbooks inventory workflow-multi-account --output data/$(date +%Y%m%d)-inventory.csv

4. Export to Multiple FormatsΒΆ

# Generate both CSV (analysis) and Excel (presentations)
runbooks inventory export-excel --input inventory.csv --output report.xlsx

5. Leverage Notebooks for ExplorationΒΆ

# Use subprocess pattern for CLI integration in notebooks
subprocess.run(['runbooks', 'inventory', 'workflow-multi-account', '--output', '/tmp/data.csv'])
df = pd.read_csv('/tmp/data.csv')

πŸ“š Additional ResourcesΒΆ


πŸ†˜ TroubleshootingΒΆ

Issue: "No resources found"ΒΆ

Solution: Verify AWS credentials and account access

runbooks inventory test-connection --profile CENTRALISED_OPS
runbooks inventory list-accounts

Issue: "MCP validation accuracy <99.5%"ΒΆ

Solution: Review discrepancies and check AWS API permissions

cat mcp-validation.json | jq '.discrepancies'

Issue: "Cost data missing"ΒΆ

Solution: Ensure Cost Explorer API is enabled and IAM permissions granted

# Check AWS Cost Explorer access in AWS Console
# Required IAM permission: ce:GetCostAndUsage

Issue: "Workflow command timeout"ΒΆ

Solution: Use single-account workflow for large organizations or increase timeout

runbooks inventory workflow-single-account --profile PRODUCTION --timeout 600


Document Version: v1.1.19 (November 2025) Maintained by: CloudOps Technical Documentation Team Feedback: Open GitHub issues for improvements