跳至內容

當我在僅限 VPC 模式下使用 SageMaker Studio 時,該如何對 JupyterLab 和程式碼編輯器的連線問題進行疑難排解?

3 分的閱讀內容
0

當我在僅限 VPC 模式下使用 Amazon SageMaker Studio 環境時,我遇到了 JupyterLab 和程式碼編輯器空間的連線問題。

簡短描述

如果您未正確設定虛擬私有雲端 (VPC),則 SageMaker Studio 中可能會出現下列問題:

  • 空間的載入畫面沒有回應,您會在 Amazon CloudWatch Logs 中收到類似「端點網址上的連線逾時:『https://api.sagemaker.us-east-1.amazonaws.com/』」的錯誤訊息。
  • JUPyterLab 或程式碼編輯器應用程式無法載入。
  • 沒有網際網路連線,然後命令逾時。
  • JupyterLab 或程式碼編輯器擴充功能無法如預期運作。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (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) console (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 runtime: com.amazonaws.your-aws-region.sagemaker.runtime

**注意:**將 your-aws-region 替換為您的 AWS 區域。

若要存取 Amazon Simple Storage Service (Amazon S3) 和 Amazon SageMaker Projects 範本,請建立下列端點:

  • 對於 Amazon S3:com.amazonaws.your-aws-region.s3
  • 對於 SageMaker Project 範本:com.amazonaws.your-aws-region.servicecatalog

**注意:**將 your-aws-region 替換為您的區域。

若要將安全群組與 VPC 端點關聯,請完成下列步驟:

  1. 開啟 Amazon VPC console (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 個月前