WAF++ WAF++
Back to WAF++ Homepage

WAF-SUS-040 – Idle & Underutilized Resource Elimination

Beschreibung

Alle Cloud-Compute-Ressourcen MÜSSEN auf Auslastung überwacht werden. Ressourcen mit CPU-Auslastung < 5% für 14 Tage MÜSSEN als Idle markiert und einer Stop/Terminate-Review unterzogen werden. Non-Production-Umgebungen MÜSSEN Scheduled-Shutdown-Policies haben. Autoscaling MUSS für alle zustandslosen Compute-Workloads konfiguriert sein — mit Scale-to-Zero für nicht-produktive Umgebungen.

Rationale

30–45% aller Cloud-Compute-Ressourcen sind idle oder unterausgelastet. Eine EC2-Instanz bei 3% CPU verbraucht nahezu dieselbe Energie wie eine bei 80%. Non-Production-Umgebungen laufen oft 24/7, obwohl ihr Nutzungszeitraum ~30% der Kalenderzeit ausmacht. Idle-Elimination ist die höchste-ROI-Sustainability-Maßnahme: sie reduziert gleichzeitig Kosten und Emissionen.

Bedrohungskontext

Risiko Beschreibung

Wasted Energy

30–45% Cloud-Compute läuft idle; die Energie dieser Ressourcen trägt zu Scope-3-Emissionen bei ohne Mehrwert.

Non-Prod 24/7

Dev/Test/Staging-Umgebungen laufen oft rund um die Uhr; 60–70% der Zeit ist reine Energieverschwendung.

Zombie-Ressourcen

Vergessene Instanzen, detached EBS-Volumes, ungenutzte Elastic IPs akkumulieren persistent Energie und Kosten.

Fehlende Autoscaling-Governance

Statische Instanzanzahl für Burst-Workloads bedeutet dauerhaftes Idle in Off-Peak-Phasen.

Anforderung

  • Idle-Detection MUSS für alle EC2-Instanzen konfiguriert sein (< 5% CPU / 14 Tage)

  • Non-Production MUSS Scheduled Shutdown außerhalb der Geschäftszeiten haben

  • Autoscaling MUSS für alle zustandslosen Workloads konfiguriert sein (min_size ≥ 0 für non-prod)

  • Quarterly Zombie-Resource-Hunt MUSS durchgeführt werden

  • Spot-Instanzen SOLLEN für Batch- und Non-Production-Workloads genutzt werden

Implementierungsanleitung

  1. AWS Compute Optimizer aktivieren: Weekly-Recommendations-Review einrichten

  2. Non-Prod Scheduled Shutdown: Instance Scheduler oder Lambda-basierter Scheduler für Abend/Wochenende

  3. CloudWatch Alarms: CPU < 5% für 14 Tage → SNS-Alert für Review

  4. Autoscaling: Alle stateless Services auf ASG mit Target Tracking umstellen

  5. Zombie-Hunt: Script für detached EBS, unassigned EIPs, leere Load Balancer — quarterly

  6. Spot für Batch: AWS Batch + SPOT-Compute-Environment; ASG mit Mixed Instance Policy

Reifegrad-Abstufung

Level Bezeichnung Kriterien

1

Kein Monitoring

Keine Auslastungsüberwachung; Non-Prod läuft 24/7; kein Autoscaling.

2

Manuelle Reviews

Gelegentliche manuelle Überprüfung; punktuelles Autoscaling.

3

Automatisierte Idle-Detection

Idle-Alerts aktiv; Scheduled Shutdown für Non-Prod; Autoscaling konfiguriert.

4

Proaktive Elimination

>50% Spot für Batch/Non-Prod; Scale-to-Zero; Quarterly Zombie-Hunt aktiv.

5

Zero Idle

Alle Ressourcen demand-driven; Zero Idle; Emissionsreduktion documentiert.

Terraform Checks

waf-sus-040.tf.aws.autoscaling-enabled

Prüft: Autoscaling Groups haben min_size und max_size konfiguriert.

Compliant Non-Compliant
resource "aws_autoscaling_group" "app" {
  min_size         = 0
  max_size         = 10
  desired_capacity = 2
  mixed_instances_policy {
    instances_distribution {
      spot_allocation_strategy = "capacity-optimized"
    }
  }
}
resource "aws_autoscaling_group" "app" {
  min_size         = 5
  max_size         = 5
  desired_capacity = 5
  # WAF-SUS-040: Fixed capacity – no scale-in possible
}

Remediation: min_size auf 0 (non-prod) oder 1 (prod); max_size basierend auf Peak-Load; Target-Tracking Policy hinzufügen.

Evidenz

Typ Pflicht Beschreibung

Config

✅ Pflicht

Autoscaling-Konfiguration (min/max/desired) für stateless Compute.

Config

✅ Pflicht

Non-Production Scheduled-Shutdown-Konfiguration.

Process

Optional

Idle-Detection-Alert-Konfiguration und Monthly-Report.

Process

Optional

Quarterly Zombie-Resource-Cleanup-Report.