If you plan to move from interactive experimentation toward production code (refactoring notebooks into scripts, CI/CD, automated pipelines), the Code Editor (VS Code) provides a more developer-centric environment than JupyterLab.
- Running instances — lists your currently running Studio app instances (each started app is a separate instance you can start/stop).
- HyperPod — for large, resilient clusters typically used for LLM training.
- Data tools — Data Wrangler (graphical data preparation), Feature Store (shareable engineered features), and EMR integration for PySpark/distributed jobs.
- Deployments — manage hosted endpoints for inference.
- Projects — templates for CI/CD pipelines and reproducible ML workflows.
Creating a JupyterLab space
A “space” is a managed EC2 instance running a hosted application (for example JupyterLab) inside a container. To create one, open the Applications panel, choose JupyterLab, and follow the create-space dialog. You provide a name and a sharing mode: Private or Share with my domain. Private spaces are visible only to the creating user profile; shared spaces are visible to all user profiles in the same SageMaker Domain (access may still be controlled via IAM).
Private vs. shared spaces
Private spaces provide each user a dedicated managed VM and a dedicated EBS volume that only that user can access. Shared spaces run a single managed VM that multiple users access and therefore share the same attached EBS volume. Key differences
Historically, SageMaker used Amazon EFS for user home directories. Many current Studio configurations use EBS by default, but if you need EFS behavior you must explicitly mount EFS from within the instance. Expect different performance characteristics and potential configuration effort when using EFS.
EFS is considered legacy in some setups. In many current Studio configurations, shared and private spaces use EBS volumes by default. Be cautious when following older documentation that references EFS; it may apply to SageMaker Classic or previous Studio designs.

Storage and visibility model
Conceptually, a SageMaker Domain contains user profiles and spaces:- User A creates a private JupyterLab space: only User A sees it.
- User B cannot see User A’s private space.
- A shared space marked as “shared with the domain” is visible to all user profiles in that Domain.
ml.t3.medium). The selected EC2 instance will have an attached EBS volume that stores the space’s files. If you require the older EFS behavior, mount EFS manually from within the instance; plan for different performance and permission considerations.

Instance lifecycle and container images
A JupyterLab space runs as a managed EC2 instance that executes a containerized JupyterLab server. Studio pulls the chosen container image from Amazon ECR in your account and runs it on the instance. When creating a space you select the image (for example “SageMaker Distribution 2.1”). Images typically include common ML libraries; verify the image contains the frameworks you need (TensorFlow, PyTorch, MXNet, etc.) or choose a framework-specific image. Stopping vs. deleting- Stopping a space shuts down the EC2 instance so you no longer pay for instance runtime charges, but attached EBS volumes continue to incur storage charges.
- Any cloud resources you created from inside the space (SageMaker endpoints, EMR clusters, S3 buckets, etc.) remain active and continue to incur costs until you delete them.


Using the JupyterLab interface
When a JupyterLab space is running, an “Open JupyterLab” action launches the JupyterLab interface. From the Launcher you can create notebooks using available kernels (Python 3 is common). The left sidebar includes file browser, terminals, a Git extension for cloning/pushing repositories, and other typical JupyterLab panels. Shared spaces enable real-time collaboration (RTC). Visual indicators include an RTC marker on the Launcher and colored circular user avatars in the top-right of the JupyterLab window showing collaborators’ presence.
Creating a shared space
To provision a shared space, select the “Share with my domain” option during creation. Shared spaces let multiple domain users work in the same runtime and access files on the shared EBS volume. Consider IAM policies and data governance when enabling shared spaces so users see only the resources they are expected to access.
Managing spaces from the Console and Studio
You can manage spaces either from the SageMaker Studio UI (Applications > JupyterLab > list of spaces) or from the AWS Management Console on your SageMaker Domain’s Space management tab. The domain page lists all spaces, their owners, type, status, and provides create/delete actions.


Summary
- SageMaker Studio hosts multiple managed applications (JupyterLab, RStudio, Code Editor, Canvas, MLflow) that suit different workflow stages from exploration to productionization.
- A space is a managed EC2 instance running the chosen application inside a container image pulled from ECR.
- Studio spaces typically use attached EBS volumes; EFS was used historically and may still appear in legacy or explicitly configured setups.
- Choose Private spaces for isolated single-user work and customization; choose Shared spaces for real-time collaboration and shared data.
- Container images usually include the SageMaker Python SDK and
boto3, so most notebooks can import these libraries out of the box.
If you plan to use RStudio, verify licensing and that the required image and instance sizes are available in your AWS Region before provisioning a space.
- SageMaker Studio overview: https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html
- JupyterLab: https://jupyter.org/
- SageMaker Python SDK: https://sagemaker.readthedocs.io/
- AWS SDK for Python (boto3): https://boto3.amazonaws.com/v1/documentation/api/latest/index.html