Store SageMaker Canvas application data in your own SageMaker
space
Your Amazon SageMaker Canvas application data, such as datasets that you import and your model
artifacts, is stored in a Amazon SageMaker Studio private space.
The space consists of a storage volume for your application data with 100 GB of storage per
user profile, the type of the space (in this case, a Canvas application), and the image
for your application's container. When you set up Canvas and launch your application for
the first time, SageMaker creates a default private space that is assigned to your user profile
and stores your Canvas data. You don't have to do any additional configuration to set up
the space because SageMaker automatically creates the space on your behalf. However, if you don't
want to use the default space, you have the option to specify a
space that you created yourself. This can be useful if you want to isolate your data. The
following page shows you how to create and configure your own Studio
space for storing Canvas application data.
You can only configure a custom Studio space for new Canvas
applications. You can't modify the space configuration for existing Canvas
applications.
Before you begin
Your Amazon SageMaker domain or user profile must have at least 100 GB of storage in order to
create and use the SageMaker Canvas application.
If you created your domain through the SageMaker console, enough storage is provisioned
by default and you don't need to take any additional action. If you created your
domain or user profile with the CreateDomain or
CreateUserProfile APIs, then make sure that you set the
MaximumEbsVolumeSizeInGb
value to 100 GB or greater. To set a greater
storage value, you can either create a new domain or user profile, or you can update
an existing domain or user profile using the UpdateDomain or
UpdateUserProfile APIs.
Create a new space
First, create a new Studio space that is configured to
store Canvas application data. This is the space that you specify when creating a new
Canvas application in the next step.
To create a space, you can use the AWS SDK for Python (Boto3) or the
AWS CLI.
- SDK for Python (Boto3)
-
The following example shows you how to use the AWS SDK for Python (Boto3) create_space
method to create a space that you can use
for Canvas applications. Make sure to specify these parameters:
-
DomainId
: Specify the ID for your SageMaker domain. To find
your ID, you can go to the SageMaker console at https://console.aws.amazon.com/sagemaker/ and locate your domain
in the Domains section.
-
SpaceName
: Specify a name for the new space.
-
EbsVolumeSizeinGb
: Specify the storage volume size
for your space (in GB). The minimum value is 5
and the maximum is
16384
.
-
SharingType
: Specify this field as
Private
. For more information, see
Amazon SageMaker Studio spaces.
-
OwnerUserProfileName
: Specify the user profile name.
To find user profile names associated with a domain, you can go to
the SageMaker console at https://console.aws.amazon.com/sagemaker/ and locate your domain in the Domains section.
In the domain's settings, you can view the user profiles.
-
AppType
: Specify this field as
Canvas
.
response = client.create_space(
DomainId='<your-domain-id>',
SpaceName='<your-new-space-name>',
SpaceSettings={
'AppType': 'Canvas',
'SpaceStorageSettings': {
'EbsStorageSettings': {
'EbsVolumeSizeInGb': <storage-volume-size>
}
},
},
OwnershipSettings={
'OwnerUserProfileName': '<your-user-profile>'
},
SpaceSharingSettings={
'SharingType': 'Private'
}
)
- AWS CLI
-
The following example shows you how to use the AWS CLI create-space
method to create a space that you can use for Canvas
applications. Make sure to specify these parameters:
-
domain-id
: Specify the ID for your domain. To find
your ID, you can go to the SageMaker console at https://console.aws.amazon.com/sagemaker/ and locate your domain
in the Domains section.
-
space-name
: Specify a name for the new space.
-
EbsVolumeSizeinGb
: Specify the storage volume size
for your space (in GB). The minimum value is 5
and the maximum is
16384
.
-
SharingType
: Specify this field as
Private
. For more information, see
Amazon SageMaker Studio spaces.
-
OwnerUserProfileName
: Specify the user profile name.
To find user profile names associated with a domain, you can go
to the SageMaker console at https://console.aws.amazon.com/sagemaker/ and locate your domain
in the Domains section. In the domain's
settings, you can view the user profiles.
-
AppType
: Specify this field as
Canvas
.
create-space
--domain-id <your-domain-id>
--space-name <your-new-space-name>
--space-settings '{
"AppType": "Canvas",
"SpaceStorageSettings": {
"EbsStorageSettings": {"EbsVolumeSizeInGb": <storage-volume-size>}
},
}'
--ownership-settings '{"OwnerUserProfileName": "<your-user-profile>"}'
--space-sharing-settings '{"SharingType": "Private"}'
You should now have a space. Keep track of your space's name for the next step.
Create a new Canvas application
After creating a space, create a new Canvas application that specifies the space as
its storage location.
To create a new Canvas application, you can use the AWS SDK for Python (Boto3) or the AWS CLI.
You must use the AWS SDK for Python (Boto3) or the AWS CLI to create your Canvas application.
Specifying a custom space when creating Canvas applications through the SageMaker console isn't
supported.
- SDK for Python (Boto3)
-
The following example shows you how to use the AWS SDK for Python (Boto3) create_app
method to create a new Canvas application.
Make sure to specify these parameters:
-
DomainId
: Specify the ID for your SageMaker domain.
-
SpaceName
: Specify the name of the space that you
created in the previous step.
-
AppType
: Specify this field as
Canvas
.
-
AppName
: Specify default
as the app
name.
response = client.create_app(
DomainId='<your-domain-id>',
SpaceName='<your-space-name>',
AppType='Canvas',
AppName='default'
)
- AWS CLI
-
The following example shows you how to use the AWS CLI
create-app
method to create a new Canvas application. Make sure
to specify these parameters:
-
DomainId
: Specify the ID for your SageMaker domain.
-
SpaceName
: Specify the name of the space that you
created in the previous step.
-
AppType
: Specify this field as
Canvas
.
-
AppName
: Specify default
as the app
name.
create-app
--domain-id <your-domain-id>
--space-name <your-space-name>
--app-type Canvas
--app-name default
You should now have a new Canvas application that uses a custom Studio space
as the storage location for application data.
Any time you delete the Canvas application (or log out)
and have to re-create the application, you must provide your space in the SpaceName
field to make sure that Canvas uses your space.
The space is attached to the user profile you specified in the space configuration.
You can delete your Canvas application without deleting the space, and the data stored
in the space remains. The data stored in your space is only deleted if you delete your
user profile, or if you directly delete the space.