今天我们 在 Amazon SageMaker 上发布 RStudio,第一个云中的机器学习 (ML) 集成开发环境 (IDE),供使用 R 工作的数据科学家使用。开源语言 R 及其丰富的生态系统 18,000包 一直是统计学家、定量分析师、数据科学家和机器学习工程师的首选。 SageMaker 上的 RStudio 使数据科学家可以轻松地在团队的集中环境中运行统计分析、构建 ML 模型并创建数据科学内容,而无需担心计算基础设施。
除了 RStudio Workbench 之外,RStudio Connect 和 RStudio Package Manager 也是 R 开发人员 RStudio 套件的一部分。 RStudio 连接 可以轻松地将机器学习和数据科学见解从数据科学家的复杂工作中展现出来,并将其交给决策者。 RStudio Connect 旨在允许数据科学家发布见解、仪表板和 Web 应用程序。 RStudio Connect 还使托管和管理内容变得简单且可扩展,以供广泛使用。
RStudio 包管理器 帮助跨 ML 团队和组织组织和集中 R 包。当数据科学家开发他们的 ML 模型时,他们需要各种具有不同功能的包来满足 RStudio 中的 ML 用例。为企业用户手动管理这些软件包的来源和版本以及众多公共存储库很容易出错,而且也很耗时。 RStudio Package Manager 通过集中管理组织的包存储库来缓解这些问题,以便数据科学家可以快速、安全地安装包,并确保项目的可重复性和可重复性。安全性和可重复性是医疗保健和金融等受监管行业中最重要的方面。
在这篇文章中,我们首先向您展示如何使用 AWS 中架构良好的解决方案来构建和部署 RStudio Connect 和 RStudio Package Manager。然后,我们向您展示如何在 SageMaker 上的 RStudio 中使用 RStudio Connect 和 RStudio Package Manager。我们使用一个 UCI 乳腺癌数据集 在 SageMaker 上的 RStudio 中使用 R 语言构建多种类型的 ML 内容。我们在帖子中演示的 ML 内容包括 R Markdown 和 R Shiny 应用程序
解决方案概述
该解决方案架构基于 RStudio Connect 和 RStudio Package Manager Docker 容器的专业版本。 RStudio Connect 和 RStudio Package Manager 跨两个配置 可用区 以实现高可用性。 RStudio Connect 和 RStudio Package Manager 容器都支持自动扩展,以根据容器内的传入请求数、内存和 CPU 使用情况来处理传入流量。
容器镜像的存储和获取来自 Amazon Elastic Container注册 (Amazon ECR) 启用了漏洞扫描。应在部署映像之前解决漏洞问题。
以下是解决方案工作流程中的步骤:
- R 用户通过以下方式访问 RStudio Connect 和 RStudio Package Manager 亚马逊路线53。 Route 53 是针对传入请求的 DNS 服务。
- Route 53 解析传入请求并将这些请求转发到 AWS 网络应用防火墙 用于安全检查。
- 有效请求达到 应用程序负载均衡器 (ALB),将这些转发到 亚马逊弹性容器服务 (Amazon ECS) 集群。 ALB 检查传入的 HTTPS 证书请求,该证书由以下机构颁发和验证 AWS证书管理器.
- Amazon ECS 控制集群中的容器 亚马逊弹性计算云 (Amazon EC2) 实例(EC2 启动类型) 自动缩放组 并负责根据需要使用 Amazon ECS 容量提供商.
- 传入请求由任何可用 RStudio Connect 容器上的 RStudio Connect 服务器处理;用户经过身份验证,应用程序在 Web 浏览器上呈现。 RStudio 包管理器请求将路由到包管理器容器。
- Amazon Aurora 无服务器 PostgreSQL 数据库用于利用 RStudio Connect 和 RStudio Package Manager 的多个容器来提供高可用性。 Aurora 自动备份无服务器集群数据库。 Aurora 上的数据使用静态加密 AWS密钥管理服务 (AWS KMS)。
- 亚马逊弹性文件系统 (Amazon EFS) 提供 RStudio Connect 和 RStudio Package Manager 所需的持久文件系统。 Amazon EFS 上的数据使用 AWS KMS 进行静态加密。 Amazon EFS 是一种 NFS 文件系统,它将数据存储在同一个网络中的多个可用区中。 AWS地区 以实现数据持久性和高可用性。在 RStudio Connect 和 RStudio Package Manager 容器 Amazon EFS 装载上创建的文件由 Amazon EFS 自动备份。
- 如果用户会话与公共互联网通信,出站请求将发送到 NAT网关 来自私有容器子网。
- NAT 网关发送出站请求,通过 互联网网关。还可以通过以下方式配置到互联网的路由 AWS 传输网关。
我们使用 AWS云开发套件 (AWS CDK),用于 Python 开发基础设施代码并将代码存储在 AWS 代码提交 存储库,以便 AWS 代码管道 可以集成 AWS CDK 堆栈以进行自动化构建。
部署代码利用 Route 53 公共托管区 在可公开访问的 URL 上为 RStudio Connect 和 RStudio Package Manager 提供服务。您可以使用 Route 53 私人托管区域 适用于具有内部 ALB 的 RStudio Connect 和 RStudio Package Manager 容器,该容器以仅 VPC 连接模式为来自 SageMaker 上 RStudio 的用户提供私有端点。这意味着您的 AWS 账户中不需要预先存在的公共域。但是,您需要获取公共 Docker 镜像(RStudio 连接, RStudio 包管理器)并将它们存储在私有 Amazon ECR 存储库中,并将部署代码指向这些映像以进行基础设施构建。
如果 AWS 服务之间的所有通信都必须保留在 AWS 内,您可以使用 AWS私有链接 为 AWS 服务配置 VPC 终端节点。 AWS PrivateLink 确保服务间流量不会暴露于 AWS 服务终端节点的互联网。
你也可以参考 RStudio 的 RStudio 团队解决方案 了解如何在 AWS 中的 Amazon EC2 上部署 RStudio 技术堆栈,作为本文讨论的解决方案的替代方案。
先决条件
要从源代码部署 AWS CDK 堆栈,您需要查看并执行随附的文档中描述的先决条件 GitHub存储库 确保您拥有继续进行所需的资源。
启动解决方案
- 克隆 GitHub存储库,检查出来 rsc-rspm 分支,然后移至 aws-fargate-with-rstudio-open-source 文件夹。
- 创建 CodeCommit 存储库 使用以下命令保存用于安装 RStudio Connect/RStudio Package Manager 的源代码:
- 将需要的参数传入 cdk.json文件 遵循步骤 3 中的 安装步骤 条的规定, 自述 文件中。
- 安装 包装要求 对于 AWS CDK 应用程序:
- 在将代码提交到 CodeCommit 存储库之前,请综合 AWS CDK 堆栈。这确保了所有必要的上下文值都填充到
cdk.context.json
文件并避免映射虚拟值。 - 将更改提交到您创建的 CodeCommit 存储库中。按照步骤 5 进行操作 安装步骤 如果您需要有关 Git 命令的帮助,请参阅自述文件。
- 部署 AWS CDK 堆栈以使用 CodePipeline 安装 RStudio Connect/RStudio Package Manager。此步骤大约需要 30 分钟。
- 导航到 代码管道控制台 (该链接会将您带到
us-west-2
地区)。监控管道并确认服务已成功构建。
管道名称是 RSC-RSPM-App-Pipeline-<instance>
。从此时起,管道将在提交到您创建的 CodeCommit 存储库时触发。无需运行 cdk deploy
(第7步)不再。
- 管道安装完成后,您可以使用以下 URL 访问 RStudio Connect 和 RStudio Package Manager,其中
r53_base_domain
及instance
是你传入的参数 cdk.json文件:https://connect.<instance>.<r53_base_domain>
https://package.<instance>.<r53_base_domain>
- 您可以使用 亚马逊 ECS 执行 登录到 RStudio Connect 和 RStudio Package Manager 容器。跟着 自述 作为指示。
使用 RStudio 包管理器管理包
RStudio Package Manager 有助于在整个组织中实现 R 包的一致性和标准化。在 RStudio 包管理器中,IT 管理员可以将批准的包包含在存储库中。可以创建多个组来访问不同的包或包版本。 RStudio 包管理器还处理包的所有更新和版本控制。管理员可以启用对软件包的自动更新,也可以将 RStudio Package Manager 配置为只能手动更新软件包,从而在 RStudio Package Manager 和 CRAN 服务之间提供更多隔离。
配置 RStudio 包管理器
我们可以创建一个存储库,使用以下命令从 RStudio CRAN 中提取软件包: 以下命令。我们需要使用 Amazon ECS Exec 通过 SSH 连接到 RStudio Package Manager 来运行这些命令。
这些命令创建一个存储库并将其订阅到名为的内置源 cran
。完成此操作后, dev-cran
存储库可在 RStudio 包管理器的 Web 界面中找到,如以下屏幕截图所示。管理员以及拥有该 Web 界面 URL 的用户都可以访问该 Web 界面。
除了提供 CRAN 包之外,还可以创建存储库来分发本地包、Git 包、本地包和 CRAN 包、已批准的 CRAN 和本地包的子集以及来自 GitHub 的前沿包。有关如何创建存储库的更多详细信息,请参阅 提供 CRAN 包。此外,RStudio 包管理器支持 生物导体。 Bioconductor 是生命科学领域常用的 R 软件包生态系统。我们可以将 Bioconductor 包与 CRAN 以及 RStudio 包管理器中的本地包结合起来。
RStudio 包管理器包版本
在 RStudio 包管理器的 Web 界面中, 设置 选项卡中,您可以在日历视图中按日期选择存储库。您还可以选择是否使用最新版本的包,或将包冻结到特定快照,如以下屏幕截图所示。
点击 设置 选项卡中,我们还可以查看存储库的软件包可能需要哪些系统先决条件,以及安装它们的命令。
在 SageMaker 域上配置 RStudio 以使用 RStudio Connect 和 RStudio Package Manager
使用 RStudio 创建 SageMaker 域时,您可以选择为 SageMaker 域中的所有用户设置默认 RStudio Connect 服务器和 RStudio Package Manager 存储库。在 SageMaker 域创建过程中,如 使用 RStudio 创建 SageMaker 域 部分 Amazon SageMaker 上的 RStudio 入门,您可以为所有用户配置文件配置默认的 RStudio Connect 和 RStudio Package Manager URL 第3步:RStudio设置。 对于 RStudio 连接,输入 RStudio Connect 服务器 URL。为了 RStudio 包管理器,输入 CRAN 或 Bioconductor 存储库。
默认 URL 已配置并保存在 /etc/rstudio/rsession.conf
适用于 SageMaker 上 RStudio 的所有用户。您可以使用 R 控制台验证默认存储库 options('repos')
。您应该看到一个指向 RStudio 包管理器的存储库。至于默认的 RStudio Connect URL,当您一键发布 R 内容时,它会自动填充。
在 R 会话中从 RStudio Package Manager 更新存储库
如果您在 SageMaker 上已经有一个可用的 RStudio 并且想要使用不同的存储库,您可以通过以下步骤在 SageMaker 上的 RStudio 中配置 R 会话,以使用 RStudio 包管理器中的存储库:
- 在 R 会话中, 工具 菜单中选择 全局选项.
- 然后选择 更改.
- 在 定制版 字段中,输入所选存储库的 URL(可在 设置 RStudio 包管理器 Web 界面的选项卡),然后选择 OK.
- OK 再次,我们就完成了!
现在,我们在 RStudio 中安装的软件包来自 RStudio 软件包管理器服务器中选定的存储库。您可以通过以下方式验证它 options('repos')
或者通过安装一个包并查看它是从哪里拉取的。有关更多详细信息,请参阅 检查是否成功.
在 R 会话中更新 RStudio Connect 帐户
如果您已在 SageMaker 上安装了可用的 RStudio,并且想要使用默认的 RStudio Connect 服务器,请完成以下步骤:
如果这是第一次,则会出现一个新页面,要求您使用帐户登录。
- 分享链接 继续。
- 连接账户 在 RStudio 的对话框中。
您应该在列表中看到 RStudio Connect 用户配置文件和服务器 URL。
欲了解更多信息,请参阅 连接您的 RStudio 帐户及 连接:RStudio IDE.
现在,RStudio Connect 服务器已成功连接到 Amazon SageMaker 上的 RStudio。我们已准备好构建一些精彩的内容并发布。
在 Amazon SageMaker 上的 RStudio 中构建 ML 内容
您可以在 Amazon SageMaker 上的 RStudio 中轻松创建分析,然后通过按钮将其发布到 RStudio Connect,以便您的协作者可以使用您的分析。对于这篇文章,我们使用 UCI 乳腺癌数据集 止 mlbench
演练一些常见的出版物用例:R Markdown 和 Shiny 应用程序。
R 降价
R Markdown 是一个很棒的工具,可以将您的分析作为 Markdown 文件的一部分在 R 中运行,并在 RStudio Connect 中共享。在 rsconnect_rmarkdown/breast_cancer_eda.Rmd
,我们对数据集以及 Markdown 中的文本进行两个简单的分析和绘图:
我们可以通过选择预览文件 针织 并通过选择将其发布到 RStudio Connect 发布.
除了 R Markdown 之外,您通常还使用 Shiny 构建交互式应用程序或仪表板。让我们看看如何将 Shiny 应用程序从 Amazon SageMaker 上的 RStudio 发布到 RStudio Connect。
闪亮的应用程序
闪亮 是一个 R 包,可以轻松地以编程方式创建交互式 Web 应用程序。通过 Shiny 应用程序向利益相关者分享他们的分析和模型在数据科学家中很流行。在 rsconnect_shiny/breast-cancer-app/
,我们开发了一个 ML 模型 breast_cancer_modeling.r
并创建一个 Web 应用程序以允许用户与数据和 ML 模型进行交互。
要发布,请打开 app.R
并选择 发布。 同时选择 app.R
和 breast_cancer_modeling.r
发布。
在应用程序中,您可以更改两个特征以在图中可视化,并选择图中的数据点以查看实际数据和模型预测它们是良性还是恶性癌症病例。通过滑动概率阈值,您可以与模型交互并获得不同的分类计数。您可以在下面的屏幕截图中看到正在运行的仪表板。
结论
在本文中,我们向您展示了如何使用 AWS CDK,通过基于 AWS Fargate 和 Amazon ECS 的架构在 AWS 中部署 RStudio Connect 和 RStudio Package Manager 服务器。通过在云中运行的 RStudio Connect 和 RStudio Package Manager,我们向您展示了如何从 Amazon SageMaker 上的 RStudio 使用它们。然后,我们演示了如何根据乳腺癌预测用例将基于 R 的材料(例如 R Markdown 和 Shiny 应用程序)部署到 RStudio Connect 实例。
在云中拥有 RStudio Connect 实例不仅可以使您的 ML 和数据科学团队更有效地协作,还可以更轻松地在利益相关者和业务部门之间共享 ML 见解。这反过来又会促进 ML 在您的组织中的使用,以获得更好的业务成果。借助 RStudio 包管理器,您可以快速、安全地管理、服务和安装来自可信来源的 R 包,以确保项目的可重复性。
您可以在帖子中从数据科学家的角度了解有关 SageMaker 上的 RStudio 的更多信息 宣布在 Amazon SageMaker 上为数据科学家提供完全托管的 RStudio。您还可以在帖子中了解有关如何在 SageMaker 上设置和管理 RStudio 的更多信息 Amazon SageMaker 上的 RStudio 入门。要了解有关 Amazon SageMaker Studio(云中第一个 ML IDE)的更多信息,请参阅 亚马逊SageMaker Studio.
作者简介
迈克尔·谢 是一位高级 AI/ML 专家解决方案架构师。他与客户合作,结合 Amazon 机器学习产品和他的 ML 领域知识来推进他们的 ML 之旅。作为西雅图移民,他喜欢探索该地区的伟大自然风光,例如远足小径、SLU 中的皮划艇风景以及 Shilshole 湾的日落。
茶颜熊猫 是一名云基础设施架构师。他为 AWS 客户提供关于云迁移、云基础设施(安全、网络、DevOps)、Greenfield 平台实施、大数据/AI/ML 以及无服务器和数据库解决方案的稳健解决方案设计的咨询服务和思想领导。当他不关心顾客时,他喜欢短跑、音乐、读书或与家人一起旅行。
- '
- 000
- 100
- 7
- 9
- ACCESS
- 账号管理
- 操作
- advisory
- 所有类型
- Amazon
- Amazon EC2
- 亚马逊机器学习
- 亚马逊SageMaker
- 其中
- 分析
- 应用
- 应用领域
- 应用领域
- 应用
- 架构
- 围绕
- 人工智能
- Aurora
- 自动化
- 可用性
- AWS
- 海湾
- 黑色
- 出血边缘
- 乳腺癌
- 浏览器
- 建立
- 建筑物
- 商业
- 日历
- 癌症预防
- 容量
- 例
- 证书
- 更改
- 支票
- 分类
- 云端技术
- 云基础设施
- 码
- 未来
- 相当常见
- 通信
- 计算
- 连接方式
- 消耗
- 消费
- 容器
- 集装箱
- 内容
- 创造
- 合作伙伴
- XNUMX月XNUMX日
- data
- 数据科学
- 数据库
- 数据库
- 设计
- 开发
- 开发
- 研发支持
- DevOps的
- DNS
- 码头工人
- 生态系统
- 边缘
- 工程师
- 企业
- 环境
- 家庭
- 特征
- 金融
- (名字)
- 第一次
- 遵循
- 冻结
- GIF
- 混帐
- GitHub上
- 大
- 医疗保健
- 高
- 徒步旅行
- 举行
- 托管
- 创新中心
- How To
- HTTPS
- ICS
- 行业
- 信息
- 基础设施
- 可行的洞见
- 房源搜索
- 互动
- 网络
- 隔离
- 问题
- IT
- 键
- 知识
- 语言
- 最新
- 发射
- 领导团队
- 学习用品
- 学习
- 生命科学
- 友情链接
- 清单
- 加载
- 本地
- 机器学习
- 颠覆性技术
- 物料
- ML
- 模型
- 母亲
- 移动
- 音乐
- 网络
- 提供
- 供品
- 打开
- 附加选项
- 组织
- 组织
- 透视
- 平台
- 热门
- 预测
- 预测
- 预览
- 私立
- 本人简介
- 简介
- 项目
- 国家
- 发布
- 拉
- 蟒蛇
- 如
- 岗位要求
- 资源
- REST的
- 检讨
- 路线
- 运行
- 运行
- sagemaker
- 缩放
- 浏览
- 科学
- 科学
- 科学家
- 西雅图
- 保安
- 选
- 无服务器
- 特色服务
- 服务
- 集
- Share
- 短
- 简易
- 快照
- So
- 解决方案
- 解决
- 开始
- 留
- 商店
- 商店
- 日落
- SUPPORT
- 支持
- 磁化面
- 系统
- 专业技术
- 精神领袖
- 次
- 最佳
- 交通
- 过境
- 旅行
- 最新动态
- 用户
- 查看
- 漏洞
- 卷筒纸
- 网络应用
- 网页浏览器
- WHO
- 中
- 工作
- 工作流程
- 合作