WAF-COST-120 β Reserved capacity and savings plans MUST be reviewed and documented for steady-state workloads
Description
Workloads with predictable baseline utilization MUST be evaluated for Reserved Instances, Reserved VM Instances, Committed Use Discounts, or Savings Plans. The reservation decision and coverage ratio MUST be documented in IaC or a FinOps register. Unused reservations MUST be reviewed quarterly and reallocated or sold where supported. Expiration dates MUST be tracked to avoid lapse into on-demand pricing.
Rationale
| Risk | Description |
|---|---|
Risk |
Persistent on-demand usage for predictable workloads wastes up to 60-70% of compute budget. |
Risk |
Unmonitored reservation expiration silently reverts workloads to expensive on-demand rates. |
Requirements
-
Workloads with predictable baseline utilization MUST be evaluated for Reserved Instances, Reserved VM Instances, Committed Use Discounts, or Savings Plans.
-
The reservation decision and coverage ratio MUST be documented in IaC or a FinOps register.
-
Unused reservations MUST be reviewed quarterly and reallocated or sold where supported.
-
Expiration dates MUST be tracked to avoid lapse into on-demand pricing.
Implementation Guidance
-
Document the requirement in a version-controlled policy, ADR, or standard.
-
Assign ownership and establish a review cadence (e.g., quarterly).
-
Implement the required configuration as code in Terraform or equivalent IaC.
Maturity Levels
| Level | Name | Criteria |
|---|---|---|
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-120.tf.aws.savings-plan
Engine: terraform | Provider: aws | Automated: Yes
AWS savings plans or reserved capacity must exist for steady-state compute
AWS savings plans or reserved capacity must exist for steady-state compute
Scope: resource β aws_savingsplans_plan, aws_ec2_host, aws_ec2_capacity_reservation
Assertions:
* name attribute_exists β Reservation or savings plan must be defined for steady-state workloads.
Remediation: AWS savings plans or reserved capacity must exist for steady-state compute
# Example compliant with waf-cost-120.tf.aws.savings-plan
# Example non-compliant with waf-cost-120.tf.aws.savings-plan
waf-cost-120.config.reservation-register
Engine: config | Provider: any | Automated: No
Reservation decisions must be documented in FinOps register
Reservation decisions must be documented in FinOps register
Scope: file β docs/finops/reservation-register.md
Assertions:
* exists attribute_exists β Reservation register must document coverage ratio, expiration, and owner.
Remediation: Reservation decisions must be documented in FinOps register
# Example compliant with waf-cost-120.config.reservation-register
# Example non-compliant with waf-cost-120.config.reservation-register
Evidence
-
Terraform configuration implementing the requirement.
-
Policy, ADR, or standard documenting the requirement.
-
Optional cloud console or API output confirming runtime state.
Related Controls
-
WAF-REL-130 == Regulatory Mapping
-
FinOps Foundation: Optimize Phase β Rate Optimization, Commitment-Based Discounts
-
ITIL 4: Financial Management β Budgeting and cost optimization