設定 Studio 以在 VPC 內無網際網路存取的子網路上執行 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Studio 以在 VPC 內無網際網路存取的子網路上執行

本指南說明如何在 Amazon SageMaker AI 網域在沒有網際網路存取的情況下在私有子網路中執行時,從 Visual Studio Code 連線至 Amazon SageMaker Studio 空間。您將了解連線需求和設定選項,以在隔離的網路環境中建立安全的遠端連線。

您可以將 Amazon SageMaker Studio 設定為僅以 VPC 模式執行,子網路不具備網際網路存取。此設定可在所有流量流經 VPC 的隔離網路環境中操作,以增強機器學習工作負載的安全性。若要在維護安全性的同時啟用外部通訊,請針對 AWS 服務使用 VPC 端點,並針對必要的 AWS 相依性設定 VPC PrivateLink。

Studio 遠端存取網路需求

VPC 模式限制 VPC 模式中的 Studio 僅支援私有子網路。Studio 無法使用與網際網路閘道 (IGW) 直接連接的子網路。遠端 VS 程式碼連線與 SageMaker AI 有相同的限制。如需詳細資訊,請參閱將 VPC 中的 Studio 筆記本連線至外部資源

VPC PrivateLink 需求 當 SageMaker AI 在私有子網路中執行時,除了 SageMaker 所需的標準 VPC 端點之外,還要設定這些 SSM VPC 端點。如需詳細資訊,請參閱透過 VPC 端點連接 Studio

  • com.amazonaws.REGION.ssm

  • com.amazonaws.REGION.ssmmessages

VS Code 特定網路需求

遠端 VS Code 連線需要 VS Code 遠端開發,這需要特定的網路存取權才能安裝遠端伺服器和延伸模組。如需完整的網路需求,請參閱 Visual Studio Code 文件中的遠端開發常見問答集。以下是需求摘要:

  • 需要存取 Microsoft 的 VS Code 伺服器端點,才能安裝和更新 VS Code 遠端伺服器。

  • 需要存取 Visual Studio Marketplace 和相關的 CDN 端點,才能透過延伸面板安裝 VS Code 延伸模組 (或者,可以使用沒有網際網路連線的 VSIX 檔案手動安裝延伸模組)。

  • 有些擴充功能可能需要存取其他端點,才能下載其特定相依性。請參閱延伸模組的 文件,了解其特定連線需求。

設定 Studio 遠端存取網路

您的 有兩個選項可將本機 Visual Studio 程式碼連線至私有子網路中的 Studio 空間:

  • HTTP Proxy

  • 預先封裝的 VS Code 遠端伺服器和延伸模組

使用受控制的允許清單設定 HTTP Proxy

當您的 Studio 空間位於防火牆或代理之後時,允許存取 VS Code 伺服器和延伸模組相關的 CDNs和端點。

  1. 設定公有子網路以執行 HTTP 代理 (例如 Squid),您可以在其中設定要允許哪些網站。確保 SageMaker 空間可存取 HTTP 代理。

  2. 公有子網路可以位於 Studio 使用的相同 VPC 中,也可以位於與 Amazon SageMaker AI 網域使用的所有 VPCs 對等的個別 VPC 中

設定預先封裝的 Visual Studio Code 遠端伺服器和延伸模組

當您的 Studio 空間無法存取外部端點來下載 VS Code 遠端伺服器和延伸時,您可以預先封裝它們。使用此方法,您可以匯出包含特定版本 VS 程式碼.VS Code-server目錄的 tarball。然後,您可以使用 SageMaker AI 生命週期組態 (LCC) 指令碼,將 tarball 複製並擷取至 Studio 空間的主目錄 (/home/sagemaker-user)。此 LCC 型解決方案適用於 AWS提供的映像和自訂映像。即使您未使用私有子網路,此方法也會加速 VS Code 遠端伺服器和預先安裝延伸模組的設定。

預先封裝 VS Code 遠端伺服器和延伸模組的指示

  1. 在本機電腦上安裝 VS 程式碼。

  2. 在本機或透過具有網際網路存取的 Studio 空間啟動啟用 SSH 的 Linux 型 (x64) Docker 容器。為了簡單起見,我們建議您使用啟用遠端存取和網際網路的臨時 Studio 空間。

  3. 透過遠端 SSH 將已安裝的 VS 程式碼連接到本機 Docker 容器,或透過 Studio 遠端 VS 程式碼功能連接到 Studio 空間。VS Code 會在連線期間將遠端伺服器安裝到遠端容器.VS Code-server的主目錄中。如需詳細資訊,請參閱預先封裝 VS Code 遠端伺服器和延伸模組的範例 Dockerfile 用量

  4. 遠端連線後,請確定您使用 VS 程式碼預設設定檔。

  5. 安裝所需的 VS 程式碼延伸模組並驗證其功能。例如,建立並執行筆記本,以在 VS Code 遠端伺服器中安裝 Jupyter 筆記本相關延伸模組。

    請務必在連線至遠端容器後安裝 AWS Toolkit for Visual Studio Code 擴充功能。

  6. 在本機 Docker 容器或遠端連線 Studio 空間的終端機中封存$HOME/.VS Code-server目錄 (例如 VS Code-server-with-extensions-for-1.100.2.tar.gz)。

  7. 將 tarball 上傳至 Amazon S3。

  8. 建立 LCC 指令碼 (範例 LCC 指令碼 (LCC-install-VS Code-server-v1.100.2)):

    • 從 Amazon S3 下載特定封存。

    • 當私有子網路中的 Studio 空間啟動時,將它擷取到主目錄。

  9. (選用) 擴展 LCC 指令碼以支援儲存在使用者特定 Amazon S3 資料夾中的每個使用者 VS Code 伺服器 tarball。

  10. (選用) 維護您可以連接到空間的版本特定 LCC 指令碼 (範例 LCC 指令碼 (LCC-install-VS Code-server-v1.100.2)),確保本機 VS Code 用戶端和遠端伺服器之間的相容性。