diff --git a/.github/workflows/dedo-duro-analysis.yml b/.github/workflows/dedo-duro-analysis.yml
new file mode 100644
index 0000000..8d8fa93
--- /dev/null
+++ b/.github/workflows/dedo-duro-analysis.yml
@@ -0,0 +1,206 @@
+name: Dedo-Duro AWS Analysis
+
+on:
+ # Run weekly on Monday at 6 AM UTC
+ schedule:
+ - cron: '0 6 * * 1'
+
+ # Allow manual trigger
+ workflow_dispatch:
+ inputs:
+ region:
+ description: 'AWS Region to analyze (leave empty for default)'
+ required: false
+ type: string
+ resource_types:
+ description: 'Comma-separated resource types (leave empty for all)'
+ required: false
+ type: string
+ output_format:
+ description: 'Output format'
+ required: false
+ default: 'html'
+ type: choice
+ options:
+ - html
+ - json
+ - csv
+ multi_region:
+ description: 'Analyze all regions'
+ required: false
+ default: false
+ type: boolean
+ environment_filter:
+ description: 'Environment filter (prod, test, dev)'
+ required: false
+ type: string
+
+env:
+ PYTHON_VERSION: '3.11'
+
+jobs:
+ analyze:
+ name: Run AWS Resource Analysis
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write # Required for OIDC authentication
+ contents: read
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: ${{ env.PYTHON_VERSION }}
+ cache: 'pip'
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+
+ - name: Configure AWS credentials
+ uses: aws-actions/configure-aws-credentials@v4
+ env:
+ INPUT_REGION: ${{ inputs.region }}
+ DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
+ with:
+ role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
+ aws-region: ${{ inputs.region || secrets.AWS_DEFAULT_REGION || 'us-east-1' }}
+
+ - name: Run Dedo-Duro Analysis
+ id: analysis
+ env:
+ INPUT_REGION: ${{ inputs.region }}
+ INPUT_RESOURCE_TYPES: ${{ inputs.resource_types }}
+ INPUT_OUTPUT_FORMAT: ${{ inputs.output_format }}
+ INPUT_MULTI_REGION: ${{ inputs.multi_region }}
+ INPUT_ENVIRONMENT: ${{ inputs.environment_filter }}
+ run: |
+ # Build command with optional parameters using environment variables
+ CMD="python main.py"
+
+ # Add region if specified (validate alphanumeric and hyphens only)
+ if [ -n "$INPUT_REGION" ]; then
+ SAFE_REGION=$(echo "$INPUT_REGION" | grep -E '^[a-z0-9-]+$' || echo "")
+ if [ -n "$SAFE_REGION" ]; then
+ CMD="$CMD --region $SAFE_REGION"
+ fi
+ fi
+
+ # Add resource types if specified (validate alphanumeric, commas, underscores)
+ if [ -n "$INPUT_RESOURCE_TYPES" ]; then
+ SAFE_TYPES=$(echo "$INPUT_RESOURCE_TYPES" | grep -E '^[a-zA-Z0-9_,]+$' || echo "")
+ if [ -n "$SAFE_TYPES" ]; then
+ CMD="$CMD --resource-types $SAFE_TYPES"
+ fi
+ fi
+
+ # Add output format (choice type, already validated)
+ if [ -n "$INPUT_OUTPUT_FORMAT" ]; then
+ CMD="$CMD --output-format $INPUT_OUTPUT_FORMAT"
+ else
+ CMD="$CMD --output-format html"
+ fi
+
+ # Add multi-region flag if enabled
+ if [ "$INPUT_MULTI_REGION" = "true" ]; then
+ CMD="$CMD --multi-region"
+ fi
+
+ # Add environment filter if specified (validate alphanumeric only)
+ if [ -n "$INPUT_ENVIRONMENT" ]; then
+ SAFE_ENV=$(echo "$INPUT_ENVIRONMENT" | grep -E '^[a-zA-Z]+$' || echo "")
+ if [ -n "$SAFE_ENV" ]; then
+ CMD="$CMD --environment $SAFE_ENV"
+ fi
+ fi
+
+ # Run analysis
+ echo "Running: $CMD"
+ eval "$CMD"
+
+ # Set output file path
+ REPORT=$(ls aws-optimization-report.* 2>/dev/null | head -1)
+ echo "report_file=$REPORT" >> "$GITHUB_OUTPUT"
+
+ - name: Upload Report Artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: dedo-duro-report-${{ github.run_number }}
+ path: |
+ aws-optimization-report.*
+ retention-days: 30
+
+ - name: Upload to S3 (optional)
+ if: ${{ secrets.REPORT_S3_BUCKET != '' }}
+ env:
+ REPORT_FILE: ${{ steps.analysis.outputs.report_file }}
+ S3_BUCKET: ${{ secrets.REPORT_S3_BUCKET }}
+ run: |
+ if [ -n "$REPORT_FILE" ] && [ -f "$REPORT_FILE" ]; then
+ TIMESTAMP=$(date +%Y-%m-%d)
+ aws s3 cp "$REPORT_FILE" "s3://${S3_BUCKET}/reports/${TIMESTAMP}/${REPORT_FILE}"
+ echo "Report uploaded to s3://${S3_BUCKET}/reports/${TIMESTAMP}/${REPORT_FILE}"
+ fi
+
+ - name: Create Summary
+ env:
+ REPORT_FILE: ${{ steps.analysis.outputs.report_file }}
+ INPUT_REGION: ${{ inputs.region }}
+ INPUT_OUTPUT_FORMAT: ${{ inputs.output_format }}
+ run: |
+ {
+ echo "## Dedo-Duro Analysis Complete"
+ echo ""
+ echo "**Report:** \`${REPORT_FILE:-no report}\`"
+ echo "**Region:** ${INPUT_REGION:-default}"
+ echo "**Format:** ${INPUT_OUTPUT_FORMAT:-html}"
+ echo ""
+ echo "Download the report from the Artifacts section above."
+ } >> "$GITHUB_STEP_SUMMARY"
+
+ notify:
+ name: Send Notifications
+ needs: analyze
+ runs-on: ubuntu-latest
+ if: always()
+
+ steps:
+ - name: Send Slack Notification (optional)
+ if: ${{ secrets.SLACK_WEBHOOK_URL != '' }}
+ uses: slackapi/slack-github-action@v1.25.0
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
+ SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
+ ANALYZE_RESULT: ${{ needs.analyze.result }}
+ RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ with:
+ payload: |
+ {
+ "text": "Dedo-Duro AWS Analysis Complete",
+ "blocks": [
+ {
+ "type": "header",
+ "text": {
+ "type": "plain_text",
+ "text": "Dedo-Duro AWS Analysis Report"
+ }
+ },
+ {
+ "type": "section",
+ "fields": [
+ {
+ "type": "mrkdwn",
+ "text": "*Status:*\n${{ needs.analyze.result }}"
+ },
+ {
+ "type": "mrkdwn",
+ "text": "*Run:*\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Details>"
+ }
+ ]
+ }
+ ]
+ }
diff --git a/.gitignore b/.gitignore
index 037c860..92b2ce9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -229,3 +229,4 @@ $RECYCLE.BIN/
*.key
credentials.json
secrets.json
+.circleci
\ No newline at end of file
diff --git a/README.md b/README.md
index 9770b80..233814b 100755
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
-
+
This report identifies potential cost-saving opportunities and security findings across your AWS resources.
+Interactive charts showing cost optimization opportunities and resource distribution.
+Focus on these items for the highest potential impact based on estimated monthly savings.
+| Rank | Resource Type | Identifier (ID/Name) | Current Config | Est. Monthly Savings | Recommendation |
|---|---|---|---|---|---|
| 1 | +Cost Explorer | +anomaly-6552 (Amazon EC2) | +N/A | +$13848.16 | +Investigate 140.0% cost increase | +
| 2 | +Cost Explorer | +anomaly-2328 (Amazon EC2) | +N/A | +$2541.51 | +Investigate 41.0% cost increase | +
| 3 | +Cost Explorer | +anomaly-4036 (AWS Lambda) | +N/A | +$2283.17 | +Investigate 64.0% cost increase | +
| 4 | +Cost Explorer | +anomaly-5958 (Amazon RDS) | +N/A | +$1775.38 | +Investigate 58.0% cost increase | +
| 5 | +Bedrock | +pt-claude-instant-prod (Claude Instant Production) | +N/A | +$1200.00 | +Consider on-demand pricing for variable workloads | +
| 6 | +Cost Explorer | +anomaly-9783 (Amazon RDS) | +N/A | +$1083.85 | +Investigate 85.0% cost increase | +
| 7 | +Ec2 | +i-0537d818 (dev-web-01) | +t3.medium | +$394.47 | +Consider stopping | +
| 8 | +Sagemaker | +notebook-experimentation-3 (notebook-3) | +ml.t3.medium | +$309.13 | +Stop idle notebook instance | +
| 9 | +Ec2 | +i-023f4017 (prod-api-02) | +m5.xlarge | +$216.67 | +Consider stopping | +
| 10 | +S3 | +bucket-3 | +N/A | +$212.01 | +Add lifecycle policy for cost optimization | +
| Account ID | Account Alias | Instance ID | Name | Region | Nike Owner | Current Type | Recommended Type | OS | CPU Utilization (%) | Network I/O (MB/s) | Status | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | i-00d8b28f | dev-web-01 | eu-west-1 | devops-team | t3.medium | t3.micro | Ubuntu 22.04 | 45.50% | 93.2 | Idle | Consider stopping | $394.47 |
| 123456789012 | simulated-account | i-035609e7 | prod-api-02 | eu-west-1 | platform-team | m5.xlarge | m6g.medium | Ubuntu 22.04 | 8.00% | 14.7 | Idle | Consider stopping | $216.67 |
| 123456789012 | simulated-account | i-03358932 | prod-worker-03 | us-west-2 | data-team | m5.xlarge | m5.xlarge | Ubuntu 22.04 | 18.50% | 8.8 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-02ad82a3 | dev-worker-04 | eu-west-1 | ml-team | c5.xlarge | t3.micro | Windows Server 2022 | 32.50% | 7.4 | Oversized | Consider downsizing | $112.28 |
| 123456789012 | simulated-account | i-01114819 | prod-api-05 | us-west-2 | platform-team | t3.small | t3.small | Amazon Linux 2023 | 58.90% | 43.5 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-02d29aa0 | dev-api-06 | eu-west-1 | platform-team | r5.xlarge | r5.xlarge | Windows Server 2022 | 36.90% | 52.1 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-015221cd | staging-web-07 | us-east-1 | devops-team | m5.xlarge | m5.xlarge | RHEL 8 | 71.10% | 41.9 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-04abd119 | prod-db-08 | us-west-2 | devops-team | m5.large | m6g.large | Ubuntu 22.04 | 8.80% | 46.9 | Idle | Consider stopping | $168.20 |
| 123456789012 | simulated-account | i-05f074be | prod-api-09 | us-east-1 | backend-team | t3.small | t3.small | Amazon Linux 2 | 42.90% | 74.5 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-04923c56 | prod-api-10 | us-west-2 | ml-team | t3.small | t3.small | RHEL 8 | 22.50% | 121.2 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-03103acd | staging-worker-11 | us-east-1 | ml-team | r5.xlarge | r5.xlarge | Amazon Linux 2023 | 16.60% | 70.3 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-0407a0de | dev-db-12 | eu-west-1 | devops-team | r5.large | r5.large | Amazon Linux 2023 | 26.30% | 80.8 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-00b3ab99 | dev-worker-13 | us-east-1 | devops-team | r5.large | r5.large | RHEL 8 | 73.60% | 44.0 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-01d666b1 | dev-api-14 | us-west-2 | backend-team | t3.micro | t3.micro | Amazon Linux 2023 | 27.60% | 17.9 | Active | Consider no action needed | $0.00 |
| 123456789012 | simulated-account | i-01068c9a | dev-db-15 | eu-west-1 | platform-team | t3.medium | t3.medium | Amazon Linux 2023 | 53.80% | 89.8 | Active | Consider no action needed | $0.00 |
| Account ID | Account Alias | Volume ID | Name | Region | Nike Owner | Current Type | Size (GB) | IOPS | Throughput (MB/s) | Attached Instance | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | vol-031e9a90 | volume-temp-1 | us-west-2 | devops-team | gp3 | 1748 | 3102 | 405 | i-01f825df | OK | $0.00 |
| 123456789012 | simulated-account | vol-04d839c3 | volume-data-2 | us-east-1 | devops-team | gp2 | 956 | 790 | 161 | i-01ffeabb | Migrate to gp3 | $19.12 |
| 123456789012 | simulated-account | vol-05ecdf46 | volume-temp-3 | us-west-2 | devops-team | st1 | 1416 | 1375 | 65 | i-04d2a439 | OK | $0.00 |
| 123456789012 | simulated-account | vol-03764972 | volume-temp-4 | us-west-2 | backend-team | st1 | 1172 | 2510 | 154 | i-05cd53d3 | OK | $0.00 |
| 123456789012 | simulated-account | vol-040d127a | volume-backup-5 | us-west-2 | devops-team | io1 | 1202 | 7267 | 130 | i-029eb240 | OK | $0.00 |
| 123456789012 | simulated-account | vol-04daf759 | volume-backup-6 | us-east-1 | backend-team | sc1 | 1278 | 2148 | 158 | N/A | Delete or snapshot unattached volume | $102.24 |
| 123456789012 | simulated-account | vol-049a3f47 | volume-data-7 | us-west-2 | platform-team | gp2 | 604 | 1847 | 64 | i-02840dd9 | Migrate to gp3 | $12.08 |
| 123456789012 | simulated-account | vol-020a341c | volume-temp-8 | us-west-2 | backend-team | sc1 | 191 | 1418 | 136 | i-026f333f | OK | $0.00 |
| 123456789012 | simulated-account | vol-05229e60 | volume-data-9 | us-east-1 | devops-team | io1 | 1500 | 14110 | 189 | i-04fc40d0 | OK | $0.00 |
| 123456789012 | simulated-account | vol-011417cb | volume-temp-10 | us-west-2 | data-team | io2 | 1429 | 4546 | 208 | N/A | Delete or snapshot unattached volume | $114.32 |
| 123456789012 | simulated-account | vol-00de0275 | volume-temp-11 | us-west-2 | data-team | io1 | 1599 | 14538 | 55 | i-03d7b010 | OK | $0.00 |
| 123456789012 | simulated-account | vol-0176441a | volume-root-12 | us-west-2 | platform-team | sc1 | 1221 | 386 | 170 | i-0135cdc5 | OK | $0.00 |
| Account ID | Account Alias | Bucket Name | Region | Nike Owner | Storage (GB) | Lifecycle Policy | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | prod-logs-5399 | us-east-1 | platform-team | 43485 | Configured | Well configured | $0.00 |
| 123456789012 | simulated-account | prod-static-assets-9432 | us-east-1 | backend-team | 24597 | Configured | Well configured | $0.00 |
| 123456789012 | simulated-account | prod-temp-9053 | us-east-1 | data-team | 15363 | Not Configured | Add lifecycle policy for cost optimization | $212.01 |
| 123456789012 | simulated-account | prod-backups-5866 | us-east-1 | devops-team | 8898 | Not Configured | Add lifecycle policy for cost optimization | $122.79 |
| 123456789012 | simulated-account | dev-archives-3333 | us-east-1 | platform-team | 17386 | Configured | Well configured | $0.00 |
| 123456789012 | simulated-account | prod-backups-1289 | us-east-1 | platform-team | 43061 | Configured | Well configured | $0.00 |
| 123456789012 | simulated-account | prod-temp-8289 | us-east-1 | platform-team | 17821 | Configured | Well configured | $0.00 |
| 123456789012 | simulated-account | dev-archives-4799 | us-east-1 | platform-team | 22562 | Configured | Well configured | $0.00 |
| 123456789012 | simulated-account | staging-backups-5279 | us-east-1 | devops-team | 14901 | Configured | Well configured | $0.00 |
| 123456789012 | simulated-account | prod-data-lake-9344 | us-east-1 | platform-team | 12395 | Not Configured | Add lifecycle policy for cost optimization | $171.05 |
| Account ID | Account Alias | DB Instance | Name | Region | Nike Owner | Current Type | Storage (GB) | CPU Utilization (%) | Connections | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | db-prod-replica-01 | database-1 | us-west-2 | data-team | db.t3.medium | 345 | 47.00% | 301 | Well utilized | $0.00 |
| 123456789012 | simulated-account | db-staging-main-02 | database-2 | us-west-2 | data-team | db.t3.small | 49 | 71.20% | 385 | Well utilized | $0.00 |
| 123456789012 | simulated-account | db-prod-replica-03 | database-3 | us-east-1 | analytics-team | db.r5.xlarge | 600 | 35.50% | 169 | Well utilized | $0.00 |
| 123456789012 | simulated-account | db-dev-analytics-04 | database-4 | us-east-1 | backend-team | db.r5.large | 257 | 49.60% | 52 | Well utilized | $0.00 |
| 123456789012 | simulated-account | db-dev-analytics-05 | database-5 | us-west-2 | analytics-team | db.m5.xlarge | 207 | 49.40% | 260 | Well utilized | $0.00 |
| 123456789012 | simulated-account | db-dev-analytics-06 | database-6 | us-west-2 | data-team | db.t3.micro | 552 | 56.90% | 178 | Well utilized | $0.00 |
| 123456789012 | simulated-account | db-prod-main-07 | database-7 | us-west-2 | platform-team | db.t3.micro | 663 | 17.60% | 223 | Consider downsizing instance class | $42.03 |
| 123456789012 | simulated-account | db-dev-analytics-08 | database-8 | us-east-1 | backend-team | db.t3.medium | 444 | 33.50% | 336 | Well utilized | $0.00 |
Analysis of SageMaker endpoint and notebook instance usage.
| Account ID | Account Alias | Resource ARN | Name | Region | Nike Owner | Type | Status | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | arn:aws:sagemaker:us-east-1:123456789012:notebook-instance/notebook-data-science-1 | notebook-1 | us-east-1 | ml-team | Notebook Instance | Idle | Stop idle notebook instance | $0.00 |
| 123456789012 | simulated-account | arn:aws:sagemaker:us-east-1:123456789012:notebook-instance/notebook-data-science-2 | notebook-2 | us-east-1 | ml-team | Notebook Instance | Idle | Stop idle notebook instance | $0.00 |
| 123456789012 | simulated-account | arn:aws:sagemaker:us-east-1:123456789012:notebook-instance/notebook-experimentation-3 | notebook-3 | us-east-1 | ml-team | Notebook Instance | Idle | Stop idle notebook instance | $309.13 |
| 123456789012 | simulated-account | arn:aws:sagemaker:us-east-1:123456789012:endpoint/endpoint-prediction-1 | endpoint-1 | us-east-1 | ml-team | Inference Endpoint | Active | Well utilized endpoint | $0.00 |
| 123456789012 | simulated-account | arn:aws:sagemaker:us-east-1:123456789012:endpoint/endpoint-inference-2 | endpoint-2 | us-east-1 | ml-team | Inference Endpoint | Active | Well utilized endpoint | $0.00 |
Analysis of Lambda function configurations and usage.
| Account ID | Account Alias | Function Name | Region | Nike Owner | Runtime | Memory Size (MB) | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | prod-worker-1 | us-east-1 | backend-team | java17 | 1024 | OK | $0.00 |
| 123456789012 | simulated-account | dev-handler-2 | us-east-1 | data-team | go1.x | 512 | OK | $0.00 |
| 123456789012 | simulated-account | dev-processor-3 | us-east-1 | data-team | go1.x | 3072 | OK | $0.00 |
| 123456789012 | simulated-account | prod-api-4 | us-east-1 | backend-team | nodejs18.x | 3072 | OK | $0.00 |
| 123456789012 | simulated-account | prod-handler-5 | us-east-1 | ml-team | python3.9 | 3072 | OK | $0.00 |
| 123456789012 | simulated-account | dev-handler-6 | us-east-1 | data-team | python3.9 | 128 | OK | $0.00 |
| 123456789012 | simulated-account | dev-handler-7 | us-east-1 | backend-team | java17 | 3072 | Reduce memory allocation | $47.33 |
| 123456789012 | simulated-account | dev-processor-8 | us-east-1 | backend-team | nodejs20.x | 512 | OK | $0.00 |
| 123456789012 | simulated-account | dev-api-9 | us-east-1 | backend-team | python3.9 | 512 | OK | $0.00 |
| 123456789012 | simulated-account | prod-api-10 | us-east-1 | ml-team | nodejs18.x | 512 | OK | $0.00 |
| Account ID | Account Alias | Resource ID | Name | Region | Nike Owner | Details | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | pt-claude-instant-prod | Claude Instant Production | us-east-1 | ml-team | N/A | Consider on-demand pricing for variable workloads | $1,200.00 |
| Account ID | Account Alias | Resource ID | Name | Region | Nike Owner | Details | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | anomaly-4036 | AWS Lambda | us-east-1 | finops-team | N/A | Investigate 64.0% cost increase | $2,283.17 |
| 123456789012 | simulated-account | anomaly-5958 | Amazon RDS | us-east-1 | finops-team | N/A | Investigate 58.0% cost increase | $1,775.38 |
| 123456789012 | simulated-account | anomaly-6552 | Amazon EC2 | us-east-1 | finops-team | N/A | Investigate 140.0% cost increase | $13,848.16 |
| 123456789012 | simulated-account | anomaly-9783 | Amazon RDS | us-east-1 | finops-team | N/A | Investigate 85.0% cost increase | $1,083.85 |
| 123456789012 | simulated-account | anomaly-2328 | Amazon EC2 | us-east-1 | finops-team | N/A | Investigate 41.0% cost increase | $2,541.51 |
| Account ID | Account Alias | Resource ID | Name | Region | Nike Owner | Details | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | prod-frontend | frontend | us-east-1 | frontend-team | N/A | Deployment healthy | $0.00 |
| 123456789012 | simulated-account | prod-backend-api | backend-api | us-east-1 | platform-team | N/A | Investigate restart issues | $0.00 |
| 123456789012 | simulated-account | prod-worker | worker | us-east-1 | devops-team | N/A | Deployment healthy | $0.00 |
| 123456789012 | simulated-account | staging-scheduler | scheduler | us-east-1 | frontend-team | N/A | Review and update stale deployment | $0.00 |
| 123456789012 | simulated-account | staging-gateway | gateway | us-east-1 | platform-team | N/A | Investigate restart issues | $0.00 |
| Account ID | Account Alias | Resource ID | Name | Region | Nike Owner | Details | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | session-313248 | staging-cluster-session-1 | us-east-1 | devops-team | N/A | Review long-running session for security | $0.00 |
| 123456789012 | simulated-account | session-800338 | dev-cluster-session-2 | us-east-1 | devops-team | N/A | Review long-running session for security | $0.00 |
| 123456789012 | simulated-account | session-228980 | staging-cluster-session-3 | us-east-1 | devops-team | N/A | Review long-running session for security | $0.00 |
| 123456789012 | simulated-account | session-256279 | prod-cluster-session-4 | us-east-1 | devops-team | N/A | Normal session activity | $0.00 |
| 123456789012 | simulated-account | session-127425 | dev-cluster-session-5 | us-east-1 | devops-team | N/A | Review long-running session for security | $0.00 |
| 123456789012 | simulated-account | session-559543 | prod-cluster-session-6 | us-east-1 | devops-team | N/A | Review long-running session for security | $0.00 |
| Account ID | Account Alias | Resource ID | Name | Region | Nike Owner | Details | Recommendation | Est. Monthly Savings |
|---|---|---|---|---|---|---|---|---|
| 123456789012 | simulated-account | db-prod-1 | database-1 | us-east-1 | data-team | N/A | Enable cross-region backup for disaster recovery | $0.00 |
| 123456789012 | simulated-account | db-staging-2 | database-2 | us-east-1 | platform-team | N/A | Enable cross-region backup for disaster recovery | $0.00 |
| 123456789012 | simulated-account | db-staging-3 | database-3 | us-east-1 | devops-team | N/A | Backup configuration adequate | $0.00 |
| 123456789012 | simulated-account | db-staging-4 | database-4 | us-east-1 | platform-team | N/A | Backup configuration adequate | $0.00 |
| 123456789012 | simulated-account | bucket-critical-1 | critical-data-bucket-1 | us-east-1 | data-team | N/A | Enable cross-region replication for critical data | $0.00 |
| 123456789012 | simulated-account | bucket-critical-2 | critical-data-bucket-2 | us-east-1 | platform-team | N/A | Enable cross-region replication for critical data | $0.00 |
| 123456789012 | simulated-account | bucket-critical-3 | critical-data-bucket-3 | us-east-1 | data-team | N/A | Replication configured | $0.00 |
The CloudWatch Agent allows for more detailed metrics collection, including memory utilization, which can improve the accuracy of EC2 efficiency recommendations from both the EC2 Efficiency analyzer and AWS Compute Optimizer.
+Refer to the official AWS documentation for installing and configuring the CloudWatch Agent:
+ +Ensure the necessary IAM permissions are granted to your EC2 instances to send metrics and logs to CloudWatch.
+Review the security findings identified during the analysis. Detailed findings are listed under the 'Security and Privacy' section if available.
+AWS Resource Utilization Analyzer
+API Documentation:
+Start an analysis via the API:
+POST /api/analysis
+{
+ "region": "us-east-1",
+ "output_format": "html"
+}
+ Or use the command line:
+python main.py --region us-east-1 --output-format html+