跳至内容

当我在“仅限 VPC”模式下使用 SageMaker Studio 时,如何解决 JupyterLab 和代码编辑器的连接问题?

2 分钟阅读
0

当我在“仅限 VPC”模式下使用我的 Amazon SageMaker Studio 环境时,我的 JupyterLab 和代码编辑器空间会出现连接问题。

简短描述

如果您未正确配置虚拟私有云 (VPC),则 SageMaker Studio 中可能会出现以下问题:

  • 空间的加载屏幕无响应,您会在 Amazon CloudWatch Logs 中收到一条错误消息,类似于“端点 URL 的连接超时:‘https://api.sagemaker.us-east-1.amazonaws.com/’”。
  • JupyterLab 或代码编辑器应用程序无法加载。
  • 没有互联网连接,然后命令超时。
  • JupyterLab 或代码编辑器扩展无法按预期运行。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

为 SageMaker Studio 配置安全组

SageMaker Studio 不需要特定的端口规则即可使用基本功能,但您必须为来自 Amazon SageMaker AI 的出站流量添加规则。默认情况下,SageMaker AI 使用 HTTPS(端口 443)进行 API 通信。

要为从 SageMaker Studio 到 AWS API 的出站流量添加规则,请完成以下步骤:

  1. 打开 Amazon Virtual Private Cloud (Amazon VPC) 控制台
  2. 在导航窗格中,选择 Security groups(安全组)。
  3. 选择附加到您的域的安全组。
  4. 选择 Actions(操作),然后选择 Edit outbound rules(编辑出站规则)。
  5. 选择 Add rule(添加规则)。
    对于类型,选择 HTTPS
    对于 Destination(目标),输入 0.0.0.0
  6. 选择 Save rules(保存规则)。

根据要从 SageMaker Studio 访问的资源,您可能需要额外的端口和规则。例如,您的安全组必须允许端口 2049 上的入站和出站连接,网络文件系统 (NFS) 协议才能使用以下资源:

当您通过 SageMaker Studio 笔记本访问 VPC 中的资源时,服务账户流量会流经您的弹性网络接口。您在域中创建的所有应用程序都存在于您的 SageMaker AI 服务账户 VPC 中。这些应用程序通过您连接到 VPC 的网络接口相互通信。这些应用程序是 SageMaker Studio 域服务账户的一部分,但在不同的 Amazon Elastic Compute Cloud (Amazon EC2) 实例上运行。

要更新您的 SageMaker Studio 域的 DefaultUserSettingsDefaultSpaceSettings 以使用新的安全组,请运行 update-domain AWS CLI 命令:

aws sagemaker update-domain --domain-id d-12345abcde \
--default-user-settings '{
    "SecurityGroups": ["sg-0000"]
  }' \
--default-space-settings '{
    "ExecutionRole": "arn:aws:iam::111111111:role/SageMakerRole",
    "SecurityGroups": ["sg-0000"]
  }'

**注意:**在运行前面的命令之前,必须从用户配置文件中删除所有状态为 InService(正在使用)的应用程序。

然后,重新创建附加到必要安全组的域。针对 SecurityGroups 参数的输出列出了 SageMaker Studio 用于通信的 VPC 的所有安全组。

要确认您的安全组是否已更新,请运行 describe-domain 命令:

aws sagemaker describe-domain --domain-id d-12345abcde

然后,启动 SageMaker Studio 并确认应用程序可以正常运行。要测试互联网连接,请在笔记本单元中运行以下命令:

!curl amazon.com

有关详细信息,请参阅将 VPC 中的 Studio 笔记本连接到外部资源

验证您的子网是否有正确的 VPC 端点

如果您的 SageMaker Studio 资源不需要访问互联网,则无需添加 NAT 网关。但是,Studio 笔记本需要以下端点才能运行和执行基本操作:

  • SageMaker API:com.amazonaws.your-aws-region.sagemaker.api
  • SageMaker 运行时:com.amazonaws.your-aws-region.sagemaker.runtime

**注意:**将 your-aws-region 替换为您的 AWS 区域。

要访问 Amazon Simple Storage Service (Amazon S3) 和 Amazon SageMaker 项目模板,请创建以下端点:

  • 对于 Amazon S3:com.amazonaws.your-aws-region.s3
  • 对于 SageMaker 项目模板:com.amazonaws.your-aws-region.servicecatalog

**注意:**将 your-aws-region 替换为您的区域。

要将安全组与 VPC 端点关联起来,请完成以下步骤:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Endpoints(端点)。
  3. 选择要更新的端点。
  4. 选择 Actions(操作),然后选择 Manage security groups(管理安全组)。
  5. 选择安全组。
  6. 选择 Save(保存)。

有关详细信息,请参阅授予 SageMaker AI 训练作业访问您的 Amazon VPC 中的资源的权限以及仅通过 VPC 与互联网通信

将您的域连接到私有子网和活动的 NAT 网关

当您的 SageMaker Studio 资源需要访问互联网时,请将您的域配置为连接到私有子网。然后,创建 NAT 网关并允许来自 NAT 网关的流量通过您的私有子网的路由表。有关详细信息,请参阅如何在 Amazon VPC 中为私有子网设置 NAT 网关?

**注意:**连接到公有子网的 SageMaker Studio 域不允许连接到互联网。

确认您的 VPC 符合要求

如果您以“仅限 VPC”模式启动 SageMaker Studio,则您的 VPC 必须满足以下要求:

  • 子网必须为该实例提供足够的可用 IP 地址。
  • 如果您使用 VPC 端点运行 SageMaker API,请将您的 VPC 的 Enable DNS hostnames(启用 DNS 主机名)和 Enable DNS Support(启用 DNS 支持)设置为 true。当您使用 SageMaker AI 功能时,您的 VPC 需要这些属性才能连接到 SageMaker AI API 端点。

对配置问题进行故障排除

如果您在更新 VPC 配置后仍然遇到问题,请重新启动应用程序。

如果您将 SageMaker Studio 用户配置不同的执行角色,则可能会出现连接问题。

确保用户的执行角色权限包括允许该角色执行以下操作所需的策略:

  • CreateNetworkInterface
  • CreatePresignedDomainUrl
  • CreateSpace
  • CreateApp
  • DescribeApp
AWS 官方已更新 6 个月前