Amazon SageMaker VPC Only模式支持使用自动关闭生命周期配置的SageMaker Studio和使用Terraform的SageMaker Canvas
Amazon SageMaker VPC Only模式支持SageMaker Studio和SageMaker Canvas
Amazon SageMaker领域支持SageMaker机器学习(ML)环境,包括SageMaker Studio和SageMaker Canvas。SageMaker Studio是一个完全集成的开发环境(IDE),提供一个单一的基于Web的可视界面,您可以通过该界面访问特定的工具,执行所有的ML开发步骤,从准备数据到构建、训练和部署您的ML模型,将数据科学团队的生产力提高了10倍。SageMaker Canvas通过提供一个可视界面,将机器学习的使用扩展给业务分析师,他们可以自己生成准确的ML预测,而无需任何ML经验或编写一行代码。
HashiCorp Terraform是一种基础设施即代码(IaC)工具,可以让您以可重用的代码模块组织基础设施。AWS客户依赖IaC来设计、开发和管理他们的云基础设施,比如SageMaker领域。IaC确保客户基础设施和服务的一致性、可扩展性和可重复性,同时遵循开发运维(DevOps)领域的最佳实践。使用Terraform,您可以以一致和可重复的方式开发和管理SageMaker领域及其支持基础设施。
在本文中,我们演示了使用Terraform实现部署SageMaker领域和与之关联的Amazon Virtual Private Cloud(Amazon VPC)的方法。该解决方案将使用Terraform创建以下内容:
- 一个带有子网、安全组以及支持SageMaker领域仅限VPC模式的VPC端点的VPC。
- 一个仅限VPC模式的SageMaker领域,并带有用户配置文件。
- 一个用于加密SageMaker Studio的Amazon Elastic File System(Amazon EFS)卷的AWS Key Management Service(AWS KMS)密钥。
- 附加到SageMaker领域的生命周期配置,以自动关闭闲置的Studio笔记本实例。
- 用于启用SageMaker Studio和Canvas功能的SageMaker领域执行角色和IAM策略。
本文中描述的解决方案在此GitHub存储库中可用。
- TII的Falcon 180B基础模型现在可以通过Amazon SageMaker JumpStart获得
- “NVIDIA Grace Hopper超级芯片在MLPerf推理基准测试中占据主导地位”
- 数学家们为三体问题找到了12,000个解决方案
解决方案概述
以下图像显示了SageMaker领域的仅限VPC模式。
通过在您的VPC中启动SageMaker领域,您可以控制从SageMaker Studio和Canvas环境流出的数据。这使您可以限制Internet访问,使用标准的AWS网络和安全功能监控和检查流量,并通过VPC端点连接到其他AWS资源。
使用仅限VPC模式的VPC要求
创建一个仅限VPC模式的SageMaker领域需要具备以下配置的VPC:
- 至少两个私有子网,每个子网位于不同的可用区,以确保高可用性。
- 确保您的子网具有所需数量的IP地址。我们建议每个用户使用2到4个IP地址。Studio领域的总IP地址容量是创建领域时每个子网提供的可用IP地址之和。
- 设置一个或多个安全组,其中包含入站和出站规则,这些规则一起允许以下流量:
- 领域与Amazon EFS卷之间的TCP上的NFS流量。
- 安全组内的TCP流量。这对于JupyterServer应用程序与KernelGateway应用程序之间的连接是必需的。您必须允许对范围在8192到65535之间的至少一个端口的访问。
- 为Amazon Simple Storage Service(Amazon S3)创建网关端点。SageMaker Studio需要使用网关VPC端点从您的VPC访问Amazon S3。创建网关端点后,您需要将其添加为路由表中从您的VPC到Amazon S3的流量的目标。
- 创建接口VPC端点(AWS PrivateLink),以允许Studio使用相应的服务名称访问以下服务。您还必须将一个安全组与这些端点关联,以允许来自端口443的所有入站流量:
- SageMaker API:
com.amazonaws.region.sagemaker.api
。这是与SageMaker API通信所必需的。 - SageMaker runtime:
com.amazonaws.region.sagemaker.runtime
。这是运行Studio笔记本和训练和托管模型所必需的。 - SageMaker Feature Store:
com.amazonaws.region.sagemaker.featurestore-runtime
。这是使用SageMaker特征存储所必需的。 - SageMaker Projects:
com.amazonaws.region.servicecatalog
。这是使用SageMaker项目所必需的。
- SageMaker API:
使用SageMaker Canvas的其他VPC终端节点
除了之前提到的VPC终端节点外,要使用SageMaker Canvas,您还需要创建以下接口VPC终端节点:
- Amazon Forecast和Amazon Forecast Query:
com.amazonaws.region.forecast
和com.amazonaws.region.forecastquery
。这些是使用Amazon Forecast所必需的。 - Amazon Rekognition:
com.amazonaws.region.rekognition
。这是使用Amazon Rekognition所必需的。 - Amazon Textract:
com.amazonaws.region.textract
。这是使用Amazon Textract所必需的。 - Amazon Comprehend:
com.amazonaws.region.comprehend
。这是使用Amazon Comprehend所必需的。 - AWS安全令牌服务(AWS STS):
com.amazonaws.region.sts
。这是因为SageMaker Canvas使用AWS STS连接到数据源所必需的。 - Amazon Athena和AWS Glue:
com.amazonaws.region.athena
和com.amazonaws.region.glue
。这是通过Amazon Athena连接到AWS Glue数据目录所必需的。 - Amazon Redshift:
com.amazonaws.region.redshift-data
。这是连接到Amazon Redshift数据源所必需的。
要查看在SageMaker Canvas中可与每个服务一起使用的所有VPC终端节点,请转到在没有互联网访问的情况下配置Amazon SageMaker Canvas。
SageMaker Studio的EFS卷的AWS KMS加密
当您的团队中的用户首次启动SageMaker Studio时,SageMaker会为团队创建一个EFS卷。在您的团队中加入Studio的每个用户都会在该卷中创建一个个人目录。笔记本文件和数据文件存储在这些目录中。
您可以使用KMS密钥对SageMaker Studio的EFS卷进行加密,以便在休息时加密主目录的数据。此Terraform解决方案将创建一个KMS密钥,并使用该密钥对SageMaker Studio的EFS卷进行加密。
SageMaker域生命周期配置以自动关闭空闲的Studio笔记本
生命周期配置是由Amazon SageMaker Studio生命周期事件触发的shell脚本,比如启动新的Studio笔记本。您可以使用生命周期配置自动化定制您的Studio环境。
此Terraform解决方案将创建一个SageMaker生命周期配置,以使用自动关闭Jupyter扩展检测和停止在Studio中产生费用的空闲资源。在底层,将创建或配置以下资源以实现所需的结果:
- 创建一个S3存储桶,并上传最新版本的自动关闭扩展
sagemaker_studio_autoshutdown-0.1.5.tar.gz
。稍后,自动关闭脚本将在Jupyter服务器启动时运行s3 cp
命令从S3存储桶下载扩展文件。有关自动关闭扩展和自动关闭脚本的更多信息,请参阅以下GitHub存储库。 - 创建一个aws_sagemaker_studio_lifecycle_config资源“
auto_shutdown
”。此资源将使用Base64编码autoshutdown-script.sh
并为SageMaker域创建一个生命周期配置。 - 对于SageMaker域的默认用户设置,指定生命周期配置ARN并将其设置为默认值。
SageMaker执行角色IAM权限
作为托管服务,SageMaker代表用户在由SageMaker管理的AWS硬件上执行操作。SageMaker只能执行用户允许的操作。
SageMaker用户可以使用IAM角色(称为执行角色)授予这些权限。创建SageMaker Studio域时,默认情况下,SageMaker允许您创建执行角色。您可以通过更改SageMaker用户配置文件角色来限制对用户配置文件的访问。此Terraform解决方案将以下IAM策略附加到SageMaker执行角色:
- SageMaker管理的
AmazonSageMakerFullAccess
策略。该策略授予执行角色对SageMaker Studio的完全访问权限。 - 用于访问加密SageMaker Studio的EFS卷的客户管理的IAM策略。
- SageMaker管理的
AmazonSageMakerCanvasFullAccess
和AmazonSageMakerCanvasAIServicesAccess
策略。这些策略授予执行角色对SageMaker Canvas的完全访问权限。 - 为了在SageMaker Canvas中启用时间序列分析,您还需要添加Amazon Forecast的IAM信任策略。
解决方案演练
在这篇博文中,我们演示了如何部署Terraform解决方案。在进行部署之前,请确保满足以下先决条件:
先决条件
- 一个AWS账号
- 具有管理员访问权限的IAM用户
部署步骤
为了给按照本指南操作的用户提供统一的部署体验,我们使用AWS CloudShell演示部署过程。使用CloudShell,一个基于浏览器的Shell,您可以快速运行带有AWS命令行界面(AWS CLI)的脚本,使用AWS CLI尝试服务API,并使用其他工具提高您的生产力。
完成以下步骤以部署Terraform解决方案:
CloudShell启动设置
- 登录AWS管理控制台并选择CloudShell服务。
- 在导航栏中,在区域选择器中选择US East (N. Virginia)。
您的浏览器将打开CloudShell终端。
安装Terraform
接下来的步骤应在CloudShell终端中执行。
查看Hashicorp指南以获取安装Amazon Linux上Terraform的最新说明:
- 安装
yum-config-manager
以管理您的存储库。
sudo yum install -y yum-utils
- 使用
yum-config-manager
添加官方的HashiCorp Linux存储库。
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
- 从新的存储库安装Terraform。
sudo yum -y install terraform
- 通过列出Terraform的可用子命令来验证安装是否成功。
terraform -help
预期输出:
Usage: terraform [-version] [-help] <command> [args]
The available commands for execution are listed below.
The most common, useful commands are shown first, followed by
less common or more advanced commands. If you’re just getting
started with Terraform, stick with the common commands. For the
other commands, please read the help and docs before usage.
…
克隆代码仓库
在CloudShell终端中执行以下步骤。
- 克隆仓库并导航到sagemaker-domain-vpconly-canvas-with-terraform文件夹:
git clone https://github.com/aws-samples/sagemaker-domain-vpconly-canvas-with-terraform.git
cd sagemaker-domain-vpconly-canvas-with-terraform
- 下载自动关闭扩展并将其放置在
assets/auto_shutdown_template
文件夹中:
wget https://github.com/aws-samples/sagemaker-studio-auto-shutdown-extension/raw/main/sagemaker_studio_autoshutdown-0.1.5.tar.gz -P assets/auto_shutdown_template
部署Terraform解决方案
在CloudShell终端中运行以下Terraform命令:
terraform init
您应该会看到一个成功消息,如:
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work...
现在您可以运行:
terraform计划
当您对计划中要创建的资源满意时,可以运行以下命令:
terraform应用
在提示确认部署时输入“yes”。
如果部署成功,您应该能看到以下输出:
应用完成!资源:X个添加,0个更改,0个销毁。
访问SageMaker Studio和Canvas
我们现在有一个与VPC相关联的Studio域和该域中的用户配置文件。
要使用SageMaker Studio控制台,请在Studio控制面板上找到您的用户名(应为defaultuser
),然后选择打开Studio。
成功后,您可以使用浏览器连接到SageMaker Studio环境。几分钟后,Studio完成创建您的环境,并显示启动器屏幕。
要使用SageMaker Canvas控制台,请在Canvas控制面板上找到您的用户名(应为defaultuser
),然后选择打开Canvas。
现在可以使用浏览器连接到SageMaker Canvas环境。几分钟后,Canvas完成创建您的环境,并显示启动器屏幕。
请随意探索SageMaker Studio和Canvas提供的全部功能!有关更多关于SageMaker的工作坊和教程,请参阅结论部分。
清理
运行以下命令清理您的资源:
terraform销毁
提示:如果将Amazon EFS保留策略设置为“Retain
”(默认值),在“terraform销毁
”期间会遇到问题,因为Terraform尝试删除子网和VPC时,EFS卷及其关联的安全组(由SageMaker创建)仍然存在。要解决此问题,请先手动删除EFS卷,然后在AWS控制台中手动删除子网和VPC。
结论
本文提供了使用Terraform创建SageMaker域以支持ML环境(包括SageMaker Studio和SageMaker Canvas)的解决方案。SageMaker Studio提供了一个完全托管的IDE,减轻了ML过程中的繁重工作。通过SageMaker Canvas,业务用户可以轻松探索和构建ML模型,无需编写任何代码。通过在VPC内启动Studio和Canvas,并使用KMS密钥加密EFS卷,客户可以在增强的安全性下使用SageMaker ML环境。自动关闭生命周期配置可帮助客户节省闲置Studio笔记本实例的成本。
测试一下这个解决方案,告诉我们您的想法。有关如何使用SageMaker Studio和Sagemaker Canvas的更多信息,请参阅以下内容:
- Amazon SageMaker沉浸日
- SageMaker Canvas沉浸日