WAF-COST-110 – Spot-/Preemptible-Instances müssen für geeignete Workloads explizit erlaubt und dokumentiert sein

Beschreibung

Workloads that tolerate interruption MUST use Spot/Preemptible instances by default unless business justification documents on-demand use. IaC definitions MUST tag interruptible workloads with spot-eligibility and maximum Spot price or eviction policy. Auto Scaling Groups and Managed Instance Groups SHOULD define mixed instance policies combining Spot and On-Demand capacity. Documentation MUST cover workload interruption handling and fallback behavior.

Begründung

Risiko Beschreibung

Risk

Always using on-demand compute for interruptible workloads increases cost without reliability benefit.

Risk

Undocumented Spot usage leads to inconsistent financial planning and surprise evictions.

Anforderungen

  • Workloads that tolerate interruption MUST use Spot/Preemptible instances by default unless business justification documents on-demand use.

  • IaC definitions MUST tag interruptible workloads with spot-eligibility and maximum Spot price or eviction policy.

  • Auto Scaling Groups and Managed Instance Groups SHOULD define mixed instance policies combining Spot and On-Demand capacity.

  • Documentation MUST cover workload interruption handling and fallback behavior.

Implementierungsleitfaden

  1. Document the requirement in a version-controlled policy, ADR, or standard.

  2. Assign ownership and establish a review cadence (e.g., quarterly).

  3. Implement the required configuration as code in Terraform or equivalent IaC.

Reifegrade

Level Name Kriterien

L1

Ad hoc – control not consistently applied

* Die Anforderung ist nicht einheitlich umgesetzt; Nachweis existiert nur punktuell oder fehlt.

L2

Standardised – policy defined and communicated

* Eine dokumentierte Policy oder ein Standard beschreibt die Anforderung.

L3

Integrated – automated validation in CI/CD

* Terraform-Checks oder IaC-Gates prüfen die Anforderung automatisch in CI/CD.

L4

Auditable – metrics and exceptions tracked

* Abdeckung, Ausnahmen und Qualitätsmetriken werden quartalsweise berichtet.

L5

Optimised – continuous improvement based on data

* Die Effektivität wird kontinuierlich gemessen und automatisch optimiert.

Checks

waf-cost-110.tf.aws.spot-tagged

Engine: terraform | Provider: aws | Automated: Ja

AWS-unterbrechungstolerante Workloads müssen ein spot-eligibility-Tag tragen

AWS-unterbrechungstolerante Workloads müssen ein spot-eligibility-Tag tragen

Scope: resource — aws_autoscaling_group, aws_spot_instance_request, aws_ec2_fleet

Assertions: * tags key_exists spot-eligibility — Interruptible workload must be tagged with spot-eligibility.

Remediation: AWS-unterbrechungstolerante Workloads müssen ein spot-eligibility-Tag tragen

Compliant
# Beispiel konform zu waf-cost-110.tf.aws.spot-tagged
Non-Compliant
# Beispiel nicht konform zu waf-cost-110.tf.aws.spot-tagged

waf-cost-110.tf.azurerm.spot-eviction-policy

Engine: terraform | Provider: azurerm | Automated: Ja

Azure Spot-VMs müssen eine Eviction-Policy definieren

Azure Spot-VMs müssen eine Eviction-Policy definieren

Scope: resource — azurerm_linux_virtual_machine, azurerm_windows_virtual_machine

Assertions: * priority in ['Spot', 'spot'] — Spot VM must have priority Spot with eviction policy.

Remediation: Azure Spot-VMs müssen eine Eviction-Policy definieren

Compliant
# Beispiel konform zu waf-cost-110.tf.azurerm.spot-eviction-policy
Non-Compliant
# Beispiel nicht konform zu waf-cost-110.tf.azurerm.spot-eviction-policy

waf-cost-110.config.spot-policy-documented

Engine: config | Provider: any | Automated: Nein

Spot-Instance-Policy muss dokumentiert sein

Spot-Instance-Policy muss dokumentiert sein

Scope: file — docs/finops/spot-policy.md

Assertions: * exists attribute_exists — Spot/preemptible policy must document eligible workload classes.

Remediation: Spot-Instance-Policy muss dokumentiert sein

Compliant
# Beispiel konform zu waf-cost-110.config.spot-policy-documented
Non-Compliant
# Beispiel nicht konform zu waf-cost-110.config.spot-policy-documented

Evidenz

  • Terraform-Konfiguration, die die Anforderung umsetzt.

  • Policy, ADR oder Standard, der die Anforderung dokumentiert.

  • Optionale Cloud-Konsolen- oder API-Ausgaben, die den Laufzeit-Zustand bestätigen.

Verwandte Controls

  • WAF-COST-010

  • WAF-COST-030

  • WAF-COST-120

  • WAF-COST-080

  • WAF-OPS-020

  • WAF-REL-120 == Regulatorisches Mapping

  • FinOps Foundation: Optimize Phase – Workload Optimization, Variable Workload Spot/Preemptible Strategy

  • ISO 14001: 6.1.2 – Environmental aspects of operational decisions

  • GHG Protocol: Scope 3 – Category 11: purchased services cost-efficiency