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 step | SageMaker service | Course 20 equivalent |
|---|---|---|
| Interactive work | Studio, notebook instances | Local Jupyter |
| Data preparation | Processing Jobs, Feature Store | pandas scripts on a workstation |
| Training | Training Jobs, Automatic Model Tuning | mlflow run, a training script |
| Model artifact | Model Registry | MLflow Registry |
| Real-time inference | Endpoints (real-time or serverless) | FastAPI in a container |
| Batch inference | Batch Transform | A scheduled Python script |
| Automation | Pipelines | Airflow or a Makefile |
| Monitoring | Model Monitor | Prometheus 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:PutObjectons3://your-bucket/sagemaker/*logs:CreateLogStream,logs:PutLogEventson the SageMaker log groupecr:BatchGetImage,ecr:GetDownloadUrlForLayeron the built-in image repositories- The managed policy
AmazonSageMakerFullAccessis 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 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.