Amazon SageMaker 上的 RStudio 是业界第一个在云中完全托管的 RStudio Workbench。 您可以快速启动熟悉的 RStudio 集成开发环境 (IDE),并在不中断工作的情况下调用和调用底层计算资源,从而轻松在 R 中大规模构建机器学习 (ML) 和分析解决方案。 SageMaker 上的 RStudio 已经带有 内置图像 预配置了 R 编程和数据科学工具; 但是,您通常需要自定义 IDE 环境。 从今天开始,您可以使用您选择的包和工具带来自己的自定义映像,只需单击几下,即可将其提供给 SageMaker 上的所有 RStudio 用户。
带上您自己的自定义图像有几个好处。 您可以通过提供入门映像、预配置连接到数据存储所需的驱动程序或为您的业务领域预安装专门的数据科学软件来标准化和简化数据科学家和开发人员的入门体验。 此外,以前托管了自己的 RStudio Workbench 的组织可能拥有他们希望继续在 SageMaker 上的 RStudio 中使用的现有容器化环境。
在这篇文章中,我们分享了创建自定义图像并将其带到 SageMaker 上的 RStudio 的分步说明,使用 AWS管理控制台 or AWS命令行界面 (AWS CLI)。 您可以通过几个简单的步骤启动并运行您的第一个自定义 IDE 环境。 有关本文中讨论的内容的更多信息,请参阅 自带 RStudio 镜像.
解决方案概述
当数据科学家在 SageMaker 上的 RStudio 中启动新会话时,会预置一个新的按需 ML 计算实例,并在 ML 上运行定义运行时环境(操作系统、库、R 版本等)的容器映像实例。 您可以通过创建自定义容器映像并使它们在 RStudio Workbench 启动器上可用,为您的数据科学家提供运行时环境的多种选择,如以下屏幕截图所示。
下图描述了引入自定义图像的过程。 首先,您从 Dockerfile 构建自定义容器映像并将其推送到存储库 Amazon Elastic Container注册 (亚马逊 ECR)。 接下来,您创建一个指向 Amazon ECR 中的容器映像的 SageMaker 映像,并将该映像附加到您的 SageMaker 域. 这使得自定义图像可用于在 RStudio 中启动新会话。
先决条件
要实施此解决方案,您必须具有以下先决条件:
- SageMaker 域上的 RStudio
- AWS身份和访问管理 (IAM) 与 Amazon ECR 交互的策略
- 适当的 AWS CLI 版本
我们在本节中提供了有关每个内容的更多详细信息。
SageMaker 域上的 RStudio
如果您的现有 SageMaker 域在 7 年 2022 月 XNUMX 日之前启用了 RStudio,则必须删除并重新创建 RStudioServerPro
用户个人资料名称下的应用程序 domain-shared
获取最新更新以带来您自己的自定义图像功能。 AWS CLI 命令如下。 请注意,此操作会中断 SageMaker 上的 RStudio 用户。
如果这是您第一次在 SageMaker 上使用 RStudio,请按照中所述的分步设置过程进行操作 在 Amazon SageMaker 上开始使用 RStudio,或运行以下命令 AWS CloudFormation 用于在 SageMaker 域上设置您的第一个 RStudio 的模板。 如果您在 SageMaker 域上已经有一个可用的 RStudio,则可以跳过此步骤。
以下 RStudio on SageMaker CloudFormation 模板需要通过 AWS License Manager 批准的 RStudio 许可证。 有关许可的更多信息,请参阅 RStudio 许可证. 另请注意,每个 AWS 区域只允许一个 SageMaker 域,因此您需要使用没有现有域的 AWS 账户和区域。
- 启动堆栈.
该链接会将您带到 us-east-1 区域,但您可以更改为您的首选区域。 - 在 指定模板 部分中,选择 下一页.
- 在 指定堆栈详细信息 部分,用于 堆栈名称,输入名称。
- 针对 参数,输入 SageMaker 用户配置文件名称。
- 下一页.
- 在 配置堆栈选项 部分中,选择 下一页.
- 在 评论 部分,选择 我承认AWS CloudFormation可能会创建IAM资源 并选择 下一页.
- 当堆栈状态更改为
CREATE_COMPLETE
,转到 控制面板 在 SageMaker 控制台上查找域和新用户。
与 Amazon ECR 交互的 IAM 策略
要与您的私有 Amazon ECR 存储库交互,您需要在用于构建和推送 Docker 映像的 IAM 用户或角色中具有以下 IAM 权限:
如本文所示,要最初从公共 Amazon ECR 映像构建,您需要附加 AWS 托管的 AmazonElasticContainerRegistryPublicReadOnly IAM 用户或角色的策略。
要构建 Docker 容器映像,您可以使用本地 Docker 客户端或 SageMaker Docker 构建 SageMaker 上 RStudio 中终端的 CLI 工具。 对于后者,请遵循中的先决条件 使用Amazon SageMaker Studio图像构建CLI从Studio笔记本构建容器图像 设置 IAM 权限和 CLI 工具。
AWS CLI 版本
AWS CLI 工具有最低版本要求才能运行本文中提到的命令。 确保在您选择的终端上升级 AWS CLI:
- AWS CLI v1 >= 1.23.6
- AWS CLI v2 >= 2.6.2
准备一个 Dockerfile
您可以在 Dockerfile 中自定义 RStudio 中的运行时环境。 由于自定义取决于您的用例和要求,因此我们在此示例中向您展示了基本要素和最常见的自定义。 你可以下载完整的 示例 Dockerfile.
安装 RStudio Workbench 会话组件
要在自定义容器映像中安装的最重要的软件是 RStudio Workbench。 我们从 由 RStudio PBC 托管的公共 S3 存储桶. 有许多版本发布和操作系统发行版可供使用。 安装版本需要与 SageMaker 上的 RStudio 中使用的 RStudio Workbench 版本兼容,在撰写本文时为 1.4.1717-3。 操作系统(以下代码段中的参数操作系统)需要匹配基础 OS
在容器镜像中使用。 在我们的样本中 Dockerfile,我们使用的基本映像是来自 AWS 管理的公共 Amazon ECR 存储库的 Amazon Linux 2。 兼容的 RStudio Workbench 操作系统是 centos7。
您可以使用以下命令找到所有操作系统版本选项:
安装 R(和 R 版本)
您的自定义 RStudio 容器映像的运行时需要至少一个 R 版本。我们可以先安装一个 R 版本,并通过创建软链接使其成为默认 R /usr/local/bin/
:
数据科学家通常需要多个版本的 R,以便他们可以轻松地在项目和代码库之间切换。 SageMaker 上的 RStudio 支持在 R 版本之间轻松切换,如下面的屏幕截图所示。
SageMaker 上的 RStudio 自动扫描并发现以下目录中的 R 版本:
我们可以在容器镜像中安装更多版本,如以下代码片段所示。 它们将安装在 /opt/R/
.
安装 RStudio Professional 驱动程序
数据科学家经常需要从诸如 亚马逊雅典娜 和 亚马逊Redshift 在 SageMaker 上的 RStudio 中。 你可以这样做使用 RStudio 专业版驱动程序 和 RStudio 连接. 确保安装相关的库和驱动程序,如以下代码段所示:
安装自定义库
您还可以安装额外的 R 和 Python 库,这样数据科学家就不需要即时安装它们:
在 Dockerfile 中完成自定义后,就可以构建容器映像并将其推送到 Amazon ECR。
构建并推送到 Amazon ECR
您可以从安装了 Docker 引擎的终端(例如本地终端或 AWS 云9. 如果您是从 SageMaker 上的 RStudio 中的终端构建它,您可以使用 SageMaker Studio 映像构建. 我们演示了这两种方法的步骤。
在存在 Docker 引擎的本地终端中,您可以从 Dockerfile 所在的位置运行以下命令。 您可以使用示例脚本 创建和更新image.sh.
在 SageMaker 上 RStudio 的终端中,运行以下命令:
在执行这些命令之后,您在 Amazon ECR 中拥有一个存储库和一个 Docker 容器映像,用于我们的下一步,我们在其中附加容器映像以在 SageMaker 上的 RStudio 中使用。 记下 Amazon ECR 中的图像 URI <ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>:<TAG>
供以后使用。
通过控制台更新 SageMaker 上的 RStudio
SageMaker 上的 RStudio 允许通过使用自定义 SageMaker 映像进行运行时自定义。 SageMaker 映像是一组 SageMaker 映像版本的持有者。 每个映像版本代表一个与 SageMaker 上的 RStudio 兼容并存储在 Amazon ECR 存储库中的容器映像。 要使域中的所有 RStudio 用户都可以使用自定义 SageMaker 图像,您可以按照本节中的步骤将图像附加到域。
- 在 SageMaker 控制台上,导航到 附加到域的自定义 SageMaker Studio 图像 页面,然后选择 附上图像.
- 选择 新图片,然后输入您的 Amazon ECR 图像 URI。
- 下一页.
- 在 图像属性 部分,提供一个 图像名称 (必需的), 图片显示名称 (可选的), 产品描述 (可选)、IAM 角色和标签。
图像显示名称(如果提供)显示在 SageMaker 上 RStudio 的会话启动器中。 如果 图片显示名称 字段为空,则 图片名称 而是显示在 SageMaker 上的 RStudio 中。 - 离开 EFS 挂载路径 和 高级配置 (用户ID 和 组号) 作为默认设置,因为 SageMaker 上的 RStudio 为我们管理配置。
- 在 图像类型 部分,选择 RStudio 图像.
- 提交.
您现在可以在列表中看到一个新条目。 值得注意的是,随着自定义 RStudio 图像支持的引入,您可以看到一个新的 使用类型 表中的列来表示图像是 RStudio 图像还是 亚马逊SageMaker Studio 图片。
自定义图像最多可能需要 5-10 分钟才能在会话启动器 UI 中可用。 然后,您可以在 SageMaker 上的 RStudio 中使用您的自定义图像启动一个新的 R 会话。
随着时间的推移,您可能希望淘汰旧的和过时的图像。 要从 RStudio 中的自定义图像列表中删除自定义图像,请选择列表中的图像并选择 分离.
分离 再次确认。
通过 AWS CLI 在 SageMaker 上更新 RStudio
以下部分介绍了创建 SageMaker 映像并将其附加到 SageMaker 控制台上的 SageMaker 上的 RStudio 并使用 AWS CLI 的步骤。 您可以使用示例脚本 创建和更新image.sh.
创建 SageMaker 映像和映像版本
第一步是通过运行以下两个命令从 Amazon ECR 中的自定义容器映像创建 SageMaker 映像:
请注意,在 SageMaker 上 RStudio 的会话启动器中显示的自定义图像由 --display-name
. 如果未提供可选的显示名称,则输入 --image-name
改为使用。 另请注意,IAM 角色允许 SageMaker 将 Amazon ECR 图像附加到 SageMaker 上的 RStudio。
创建 AppImageConfig
除了从 Amazon ECR 捕获图像 URI 的 SageMaker 图像之外,还有一个应用程序图像配置 (应用图像配置) 是在 SageMaker 域中使用所必需的。 我们简化了配置 RSessionApp
图像,所以我们可以使用以下命令创建一个占位符配置:
附加到 SageMaker 域
创建 SageMaker 映像和应用程序映像配置后,我们已准备好将自定义容器映像附加到 SageMaker 域。 要使域中的所有 RStudio 用户都可以使用自定义 SageMaker 图像,请将图像作为默认用户设置附加到域。 所有现有用户和任何新用户都将能够使用自定义图像。
为了更好的可读性,我们将以下配置放入 JSON 文件中 默认用户设置.json:
在这个文件中,我们可以指定图像和 AppImageConfig
列表中的名称对 DefaultUserSettings.RSessionAppSettings.CustomImages
. 前面的代码片段假设正在创建两个自定义图像。
然后运行以下命令来更新 SageMaker 域:
更新域后,自定义图像最多可能需要 5-10 分钟才能在会话启动器 UI 中可用。 然后,您可以在 SageMaker 上的 RStudio 中使用您的自定义图像启动一个新的 R 会话。
从 SageMaker 域中分离图像
您只需删除 ImageName
和 AppImageConfigName
对来自 default-user-settings.json
并更新域。
例如,使用以下内容更新域 default-user-settings.json
移除了 r-4.1.3-rstudio-2022
从 R 会话启动 UI 并离开 r-4.1.3-rstudio-1.4.1717-3
作为域中所有用户可用的唯一自定义图像:
清理
要安全删除 SageMaker 域中的图像和资源,请完成以下步骤 清理图片资源.
要安全删除 SageMaker 上的 RStudio 和 SageMaker 域,请完成以下步骤 删除 Amazon SageMaker 域 删除任何 RSessionGateway 应用程序、用户配置文件和域。
要安全地删除 Amazon ECR 中的映像和存储库,请完成以下步骤 删除图像.
最后,删除 CloudFormation 模板:
- 在 AWS CloudFormation 控制台上,选择堆栈。
- 选择您为此解决方案部署的堆栈。
- 选择删除。
结论
SageMaker 上的 RStudio 使数据科学家可以轻松地在 R 中大规模构建 ML 和分析解决方案,并使管理员能够为他们的开发人员管理强大的数据科学环境。 数据科学家希望自定义环境,以便他们可以将正确的库用于正确的工作,并为每个 ML 项目实现所需的可重复性。 出于监管和安全原因,管理员需要标准化数据科学环境。 您现在可以创建满足组织要求的自定义容器映像,并允许数据科学家在 SageMaker 上的 RStudio 中使用它们。
我们鼓励您尝试一下。 开发愉快!
作者简介
迈克尔·谢 是高级 AI/ML 专家解决方案架构师。 他与客户合作,结合 AWS ML 产品和他的 ML 领域知识来推进他们的 ML 之旅。 作为西雅图的移植者,他喜欢探索这座城市所提供的伟大大自然,例如远足小径、SLU 中的风景皮划艇以及 Shilshole 湾的日落。
德兰·凯利(Declan Kelly) 是 Amazon SageMaker Studio 团队的一名软件工程师。 自从在 AWS re:Invent 2019 上推出 Amazon SageMaker Studio 以来,他一直在工作。工作之余,他喜欢徒步旅行和登山。
肖恩·摩根(Sean Morgan) 是 AWS 的 AI/ML 解决方案架构师。 他在半导体和学术研究领域拥有丰富的经验,并利用自己的经验帮助客户在 AWS 上实现目标。 在空闲时间,Sean 是一名活跃的开源贡献者和维护者,并且是 TensorFlow Add-ons 的特殊兴趣小组负责人。
- "
- &
- 1.3
- 10
- 100
- 2019
- 2022
- 7
- a
- 关于
- ACCESS
- 账号管理
- 操作
- 要积极。
- 增加
- 额外
- 管理员
- 推进
- 所有类型
- 允许
- 已经
- Amazon
- 分析
- 应用
- 方法
- 适当
- 四月
- 可使用
- AWS
- 海湾
- 因为
- 作为
- 好处
- 更好
- 之间
- 边界
- 带来
- 建立
- 建筑物
- 商业
- 可以得到
- 捕获
- 案件
- 更改
- 选择
- 选择
- 城市
- 云端技术
- 码
- 柱
- 组合
- 相当常见
- 兼容
- 完成
- 计算
- 配置
- 连接
- 安慰
- 容器
- 内容
- 继续
- 贡献者
- 创建信息图
- 创建
- 创造
- 习俗
- 合作伙伴
- 定制
- data
- 数据科学
- 数据科学家
- 演示
- 依靠
- 部署
- 描述
- 描述
- 详情
- 开发
- 研发支持
- 屏 显:
- 分布
- 码头工人
- 不会
- 域
- 向下
- 下载
- 每
- 容易
- 效果
- 鼓励
- 发动机
- 工程师
- 输入
- 环境
- 要领
- 例子
- 现有
- 体验
- 熟悉
- 字段
- 姓氏:
- 第一次
- 遵循
- 以下
- 如下
- Free
- 止
- ,
- 此外
- 越来越
- 理想中
- 大
- 团队
- 快乐
- 帮助
- 持有人
- 托管
- 但是
- HTTPS
- 身分
- 图片
- 图片
- 实施
- 重要
- 行业的
- 信息
- 输入
- 安装
- 例
- 集成
- 兴趣
- IT
- 工作
- 旅程
- 知识
- 最新
- 发射
- 发射
- 铅
- 学习
- 执照
- 许可证
- Line
- 友情链接
- 链接
- Linux的
- 清单
- 本地
- 机
- 机器学习
- 使
- 制作
- 制作
- 管理
- 管理
- 颠覆性技术
- 经理
- 匹配
- 提到
- 可能
- 最低限度
- ML
- 更多
- 摩根
- 最先进的
- 母亲
- 多
- 自然
- 导航
- 需要
- 下页
- 提供
- 供品
- 操作
- 操作系统
- 附加选项
- 组织
- 组织
- 己
- 点
- 政策
- 政策
- 首选
- 当下
- 私立
- 过程
- 所以专业
- 本人简介
- 代码编程
- 项目
- 项目
- 提供
- 提供
- 优
- 国家
- 很快
- RE
- 达到
- 原因
- 地区
- 监管
- 释放
- 发布
- 相应
- 删除
- 知识库
- 代表
- 必须
- 岗位要求
- 需要
- 研究
- 资源
- 资源
- 角色
- 运行
- 运行
- 安然
- 鳞片
- 科学
- 科学家
- 科学家
- 肖恩
- 保安
- 半导体
- 集
- 设置
- 格局
- 几个
- Share
- 显示
- 如图
- 简易
- 自
- So
- 软
- 软件
- 软件工程师
- 固体
- 方案,
- 解决方案
- 特别
- 专家
- 专门
- 堆
- 开始
- 启动
- 个人陈述
- Status
- 商店
- 工作室
- 日落
- SUPPORT
- 支持
- Switch 开关
- 系统
- 团队
- 终端
- 通过
- 次
- 今晚
- 工具
- 工具
- ui
- 下
- 更新
- 最新动态
- 更新
- us
- 使用
- 用户
- 版本
- 是否
- 中
- 也完全不需要
- 工作
- 加工
- 合作
- 价值
- 写作
- 您一站式解决方案