Skip to main content
discount · aws

SageMaker Training Job, Enable Managed Spot Training

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

Completed SageMaker training jobs that ran without managed spot get a forward-looking recommendation worth 70% of the run's actual billed cost, the exact complement of the 0.3 multiplier the aggregator bills managed-spot runs at. AWS publishes no ml.* spot SKU, so the constant pair stays in lockstep by design.

Signal and threshold

How ZopNight evaluates SageMaker Training Job, Enable Managed Spot Training.
Field Value
Rule IDsRC-1621
Categorydiscount
Severitylow
Metricnone — pure configuration read
Sourcesagemaker_managed_spot.go

Completed training runs that skipped spot

  • resource.Type: sagemaker-training-job, Status completed (only a successfully-finished run is a representative savings basis; failed/stopped/in-progress runs reflect a non-representative partial run and are skipped, #1701)
  • metadata spotUsed == false (via metadataBool; absent or unparseable fails safe, and only a confirmed false fires)

Where the managed-spot discount comes from

Concrete, from the system’s own authoritative managed-spot discount (concrete-or-abstain). savings = cost × managedSpotDiscountFraction where managedSpotDiscountFraction = 0.70 is the exact complement of the aggregator’s billing multiplier sageMakerManagedSpotRateMultiplier = 0.3 (calc_training_job re-bills a managed-spot run at 0.3 of on-demand → 1 − 0.3 = 0.70 saving); the two must stay in lockstep so the projection equals the realized post-change bill. Why a shared constant rather than a derived SKU rate: managed spot is a runtime billing discount, not a published spot SKU. AWS publishes no SageMaker spot price list and deriveSpotEntries is intentionally EC2-only, so no producer ever writes a Spot-tier rate for ml.* instances; deriving from TierRates (the prior DeriveSpotFraction path) therefore always abstained (Spot==0 sentinel) and the rule was dead. The cost arrives via EvaluationContext.Pricing (the aggregator’s actual billable-duration run cost, not a 730h projection). The rule abstains (returns nil) when the run cost is absent or non-positive, rather than fabricating a $0 under a cost-driven category. It is advisory, and applies to future runs.

Turning on managed spot training

  1. Set EnableManagedSpotTraining=true in the training job / estimator configuration
  2. Set MaxWaitTimeInSeconds >= MaxRuntimeInSeconds to allow time for spot capacity
  3. Configure a checkpoint S3 location (CheckpointConfig) so interrupted runs resume instead of restarting
  4. Re-run the job; SageMaker reports the realized spot savings in the training job summary

Why this rule reads metadata, not metrics

None (metadata-driven)

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·