Skip to main content

Module 1 — Overview of SageMaker and its components

Course 20 built an MLOps stack from independent bricks: MLflow for tracking, a registry, a scheduler for training, a small FastAPI service for inference, Prometheus for monitoring. AWS SageMaker packages equivalent components as a single managed service, and this module lays out that map. Every module that follows deploys the churn model of course 20 onto one of those components.

What SageMaker actually is

SageMaker is not a model, an algorithm or a framework. It is a collection of managed services that share a Python SDK, an IAM role and an S3 bucket. Each service owns one step of the ML lifecycle, and they are meant to be picked up individually — you can use SageMaker only for training and keep your inference elsewhere, or the other way around.

Lifecycle stepSageMaker serviceCourse 20 equivalent
Interactive workStudio, notebook instancesLocal Jupyter
Data preparationProcessing Jobs, Feature Storepandas scripts on a workstation
TrainingTraining Jobs, Automatic Model Tuningmlflow run, a training script
Model artifactModel RegistryMLflow Registry
Real-time inferenceEndpoints (real-time or serverless)FastAPI in a container
Batch inferenceBatch TransformA scheduled Python script
AutomationPipelinesAirflow or a Makefile
MonitoringModel MonitorPrometheus custom exporter

The pattern is always the same: you describe what you want (an estimator, a model, a pipeline) with the Python SDK, SageMaker launches the corresponding managed containers on EC2 instances it starts and stops for you, and you pay for those instances by the second.

What is managed and what is not

The line matters, because everything on the wrong side is your problem.

SageMaker manages: provisioning of the EC2 instances that run training jobs and endpoints, the container runtime, patching of built-in images, TLS termination on endpoints, logs shipped to CloudWatch, automatic scaling, and the pipeline state machine.

You still own: the code and the data, the IAM policies, the choice of instance type, network settings (VPC, subnets, security groups) if you enable them, the S3 lifecycle of your artifacts, and the cost. Nothing shuts anything down for you unless you configure it.

The IAM role, everyone's least favorite topic

SageMaker uses two distinct identities, and confusing them causes half of the "AccessDenied" tickets. The user identity is what you use in the console or the CLI — a person or a CI role. The execution role is what SageMaker itself assumes to launch training jobs and serve endpoints. When a training job fails to read from S3, it is the execution role's policy that is at fault, not yours.

A minimal execution role for the course:

  • s3:GetObject, s3:PutObject on s3://your-bucket/sagemaker/*
  • logs:CreateLogStream, logs:PutLogEvents on the SageMaker log group
  • ecr:BatchGetImage, ecr:GetDownloadUrlForLayer on the built-in image repositories
  • The managed policy AmazonSageMakerFullAccess is convenient for learning, and too broad for production. Once the pipeline is stable, cut it down to what the training jobs actually call.

The invoice model, in one paragraph

You pay per second, per instance, for the time each managed container is up. A training job on one ml.m5.xlarge for twenty minutes costs about $0.08. A real-time endpoint on the same instance costs about $0.24 per hour, whether it serves one request or one million, and it runs 24/7 until you delete it. Studio itself is free, but the underlying kernel instance on which your notebook runs is billed like any other. S3 and CloudWatch add cents per gigabyte stored and per gigabyte of logs. Every module of this course prints the estimated cost of what it launches, and module 10 gathers those numbers in a single table.

The forgotten notebook

The most common surprise on the SageMaker invoice is not a training job, it is a Studio kernel or a notebook instance left running over the weekend. A ml.m5.large at $0.115 per hour costs three cents an hour and about $85 a month. Module 2 shows the auto-shutdown extension that closes idle kernels.

Summary

  • SageMaker is a collection of managed services glued by a Python SDK, an S3 bucket and an IAM role; components are meant to be picked individually.
  • SageMaker manages instances, containers and logs; you still own code, data, IAM and cost.
  • The execution role is what SageMaker assumes on your behalf; broken S3 reads in a training job come from that role, not yours.
  • Billing is per second, per instance: training is cheap, an endpoint left up is not — and a forgotten kernel is the most common surprise on the invoice.

Next module: Studio, notebooks and how to work interactively without paying for the night.