
- Data processing (batch transforms, custom containers)
- Custom code (your own containerized logic)
- Lambda integrations
- Training jobs
- Model registration (Model Registry)
- Deployment (real-time endpoints or batch inferencing)
- Conditional branching (if/else flows based on evaluation metrics)
- When you add a processing step, configure the instance type, instance count, local storage size, and stopping conditions (maximum runtime).
- Select the smallest instance that fulfills resource needs to control costs.
- Always review pricing for instance families you choose.


- Under the app specification for a step, provide a container image (for example, from Amazon ECR) that packages your code and dependencies.
- For inputs and outputs, specify S3 locations (buckets and prefixes). Common examples:
s3://your-bucket/processed-data/s3://your-bucket/model-artifacts/
- Use consistent prefixes to make outputs discoverable and to simplify downstream steps.

- Choose between SageMaker-managed execution or integrating external compute (for example, EMR). Each option has different runtime characteristics and cost profiles.
- SageMaker-managed jobs simplify orchestration and monitoring; external platforms may be better for specialized distributed workloads or existing EMR pipelines.
- Training image or algorithm container
- Input data location (S3 path for transformed/processed data)
- Output S3 location for model artifacts
- Hyperparameters for the training job
- Checkpointing location in S3 to resume interrupted training
- Stopping conditions and instance configuration (type and count)

- Register the trained model in the SageMaker Model Registry for versioning and governance.
- Deploy the model as an endpoint (real-time) or create batch transform jobs for offline inference.

Best practices summary
- Use S3 prefixes consistently for processed data, checkpoints, and model artifacts.
- Set stopping conditions to cap runtime costs.
- Use checkpointing to resume interrupted training jobs.
- Start with smaller instance types during development and scale up for production.
- Use the Model Registry to manage model versions and approvals.
Tip: Always configure sensible stopping conditions and use S3 checkpointing for long-running or costly jobs. Start with smaller instance types like
m5.large for development and monitor costs as you scale.Warning: Instance pricing varies by region and changes over time. Review current pricing before launching large or long-running jobs and include budgeting/alerting in your monitoring strategy.
- SageMaker Pipelines documentation
- SageMaker Studio
- Amazon ECR
- Amazon S3
- Amazon EMR
- SageMaker JumpStart