VPC 内のインターネットへのアクセスがないサブネットで実行するように Studio を設定する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

VPC 内のインターネットへのアクセスがないサブネットで実行するように Studio を設定する

このガイドでは、Amazon SageMaker AI ドメインがインターネットアクセスのないプライベートサブネットで実行されている場合に、Visual Studio Code から Amazon SageMaker Studio スペースに接続する方法を説明します。分離されたネットワーク環境で安全なリモート接続を確立するための接続要件と設定オプションについて説明します。

Amazon SageMaker Studio は、インターネットアクセスのないサブネットで VPC 専用モードを使って実行するように設定できます。この設定により、すべてのトラフィックが VPC を通過する、隔離されたネットワーク環境で動作するため、機械学習ワークロードのセキュリティを強化できます。セキュリティを維持しながら外部通信を有効にするには、 AWSサービスに VPC エンドポイントを使用し、必要なAWS依存関係に VPC PrivateLink を設定します。

Studio のリモートアクセスネットワークの要件

VPC モードの制限 Studio の VPC モードがサポートするのは、プライベートサブネットのみです。Studio は、インターネットゲートウェイ (IGW) に直接アタッチされたサブネットでは使用できません。リモート VS Code 接続には、SageMaker AI と同じ制限があります。詳細については、「VPC 内の Studio ノートブックを外部リソースに接続する」を参照してください。

VPC PrivateLink の要件 SageMaker AI をプライベートサブネットで実行している場合は、SageMaker に必要な標準 VPC エンドポイントに加えて、以下の SSM VPC エンドポイントを設定します。詳細については、「Studio を VPC エンドポイント経由で接続する」を参照してください。

  • com.amazonaws.REGION.ssm

  • com.amazonaws.REGION.ssmmessages

VS Code 固有のネットワーク要件

リモート VS Code 接続には、リモートサーバーと拡張機能をインストールするための特定のネットワークアクセスを必要とする VS Code リモート開発が必要になります。ネットワーク要件の詳細については、Visual Studio Code ドキュメントの「リモート開発に関するよくある質問」を参照してください。要件の概要は以下のとおりです。

  • VS Code リモートサーバーをインストールおよび更新するには、Microsoft の VS Code サーバーエンドポイントへのアクセスが必要です。

  • 拡張機能パネルから VS Code 拡張機能をインストールするには、Visual Studio Marketplace および関連する CDN エンドポイントへのアクセスが必要です (別の方法として、拡張機能はインターネット接続なしで VSIX ファイルを使用して手動でインストールすることもできます)。

  • 拡張機能によっては、特定の依存関係をダウンロードするために、追加のエンドポイントへのアクセスが必要になる場合があります。具体的な接続要件については、拡張機能のドキュメントを参照してください。

Studio リモートアクセスネットワークを設定する

ローカル Visual Studio Code をプライベートサブネットの Studio スペースに接続するには、次の 2 つのオプションがあります。

  • HTTP プロキシ

  • 事前にパッケージされた VS Code リモートサーバーと拡張機能

制御された許可リストを使用して HTTP プロキシを設定する

Studio スペースがファイアウォールまたはプロキシの内側にある場合は、VS Code サーバーと拡張機能に関連する CDN とエンドポイントへのアクセスを許可します。

  1. パブリックサブネットを設定して HTTP プロキシ (Squid など) を実行し、許可するウェブサイトを設定できます。SageMaker スペースから HTTP プロキシにアクセスできることを確認します。

  2. パブリックサブネットは、Studio で使用するのと同じ VPC 内、または Amazon SageMaker AI ドメインで使用されるすべての VPC とピア接続された個別の VPC 内に配置できます。

事前にパッケージされた Visual Studio Code リモートサーバーと拡張機能を設定する

Studio スペースが外部エンドポイントにアクセスして VS Code リモートサーバーと拡張機能をダウンロードできない場合は、事前にパッケージ化できます。この方法では、特定のバージョンの VS Code の .VS Code-server ディレクトリを含む tarball をエクスポートします。次に、SageMaker AI ライフサイクル設定 (LCC) スクリプトを使用し、tarball をコピーして Studio スペースのホームディレクトリ (/home/sagemaker-user) に解凍します。この LCC ベースのソリューションは、AWS提供されているイメージとカスタムイメージの両方で動作します。プライベートサブネットを使用していない場合でも、このアプローチを採用すると、VS Code リモートサーバーとプリインストール済みの拡張機能の設定を高速化できます。

VS Code リモートサーバーと拡張機能を事前にパッケージ化する手順

  1. ローカルマシンに VS Code をインストールします。

  2. SSH が有効になっている Linux ベース (x64) の Docker コンテナをローカルで起動するか、インターネットアクセスのある Studio スペース経由で起動します。簡素化するために、リモートアクセスとインターネットを有効にした、一時的な Studio スペースを使用することをお勧めします。

  3. インストールした VS Code をリモート SSH 経由でローカル Docker コンテナに接続するか、Studio リモート VS Code 機能経由で Studio スペースに接続します。VS Code は、接続中にリモートコンテナのホームディレクトリの .VS Code-server にリモートサーバーをインストールします。詳細については「VS Code リモートサーバーと拡張機能を事前にパッケージ化するための Dockerfile の使用例」を参照してください。

  4. リモート接続後、VS Code Default プロファイルを使用していることを確認します。

  5. 必要な VS Code 拡張機能をインストールし、その機能を検証します。例えば、ノートブックを作成して実行し、VS Code リモートサーバーに Jupyter ノートブック関連の拡張機能をインストールします。

    リモートコンテナに接続したら、必ず AWS Toolkit for Visual Studio Code拡張機能をインストールしてください。

  6. $HOME/.VS Code-server ディレクトリ (VS Code-server-with-extensions-for-1.100.2.tar.gz など) をローカル Docker コンテナまたはリモート接続された Studio スペースのターミナルにアーカイブします。

  7. Amazon S3 に tarball をアップロードします。

  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 クライアントとリモートサーバー間の互換性を確保します。