VPC 内の Amazon SageMaker Studio ノートブックを外部リソースに接続する
重要
2023 年 11 月 30 日以降、従来の Amazon SageMaker Studio のエクスペリエンスは Amazon SageMaker Studio Classic と名前が変更されました。以下のセクションは、更新後の Studio のエクスペリエンスに沿った内容になっています。Studio Classic アプリケーションを使用する場合は、「Amazon SageMaker Studio Classic」を参照してください。
次のトピックでは、VPC 内の Amazon SageMaker Studio ノートブックを外部リソースに接続する方法について説明します。
インターネットとのデフォルトの通信
Amazon SageMaker Studio はデフォルトで、SageMaker が管理する VPC を介してインターネットと通信するネットワークインターフェイスをデフォルトで提供しています。Amazon S3 や CloudWatch などの AWS のサービスへのトラフィックは、SageMaker API と SageMaker ランタイムにアクセスするトラフィックと同様に、インターネットゲートウェイを経由します。ドメインと Amazon EFS ボリューム間のトラフィックは、ドメインにオンボーディングした際に指定した VPC 、または CreateDomain API を呼び出した際に指定した VPC を経由します。
インターネットとの VPC only
通信
SageMaker の Studio ノートブックへのインターネットアクセスの提供を回避するには、Studio にオンボードする際、または CreateDomain API を呼び出す際に VPC only
ネットワークアクセスタイプを指定して、インターネットアクセスを無効にできます。その結果、VPC に SageMaker とランタイムへのインターフェイス エンドポイント、またはインターネットにアクセスできる NAT ゲートウェイが配置され、セキュリティグループでアウトバウンド接続が許可されていない限り、Studio を実行できなくなります。
注記
ドメイン作成後に、update-domain--app-network-access-type
パラメータを使用して、ネットワークアクセスタイプを変更できます。
VPC only
モードを使用するための要件
VpcOnly
を選択した場合は、次の手順に従います。
-
プライベートサブネットのみを使用する必要があります。パブリックサブネットは、
VpcOnly
モードでは使用できません。 -
サブネットに必要な IP アドレス数があることを確認してください。ユーザー 1 人あたりに必要な IP アドレスの数は、ユースケースによって異なる場合があります。ユーザー 1 人につき 2~4 個の IP アドレスを推奨します。ドメインの IP アドレス数の合計は、ドメインの作成時に提供された各サブネットで使用可能な IP アドレスの合計です。予想される IP アドレスの使用数が、指定するサブネットの数でサポートされる数を超えないようにしてください。また、多数のアベイラビリティーゾーンに分散されたサブネットを使用すると、IP アドレスの可用性を高めることができます。詳細については、「IPv4 用の VPC とサブネットのサイズ設定」を参照してください。
注記
デフォルトのテナンシー VPC でのみサブネットを設定できます。このデフォルトでは、インスタンスが共有ハードウェアで実行されます。VPC のテナンシー属性の詳細については、「ハードウェア専有インスタンス」を参照してください。
-
警告
VpcOnly
モードを使用すると、ドメインのネットワーク設定の一部を所有することになります。セキュリティのベストプラクティスとして、セキュリティグループのルールが提供するインバウンドアクセスとアウトバウンドアクセスに最小特権のアクセス許可を適用することをお勧めします。過度に許可されるインバウンドルール設定では、VPC にアクセスできるユーザーが認証なしで他のユーザープロファイルのアプリケーションとやり取りできる可能性があります。以下のトラフィックを許可するインバウンドルールとアウトバウンドルールを使用して、1 つ以上のセキュリティグループを設定します。
-
ポート 2049 での TCP 経由の NFS トラフィック。ドメインと Amazon EFS ボリューム間のトラフィックです。
-
セキュリティグループ内の TCP トラフィック。これは Jupyter Server アプリケーションと Kernel Gateway アプリケーションの間の接続に必要です。範囲
8192-65535
内の最小数のポートへのアクセスを許可する必要があります。
ユーザープロファイルごとに個別のセキュリティグループを作成し、同じセキュリティグループからのインバウンドアクセスを追加します。ドメインレベルのセキュリティグループをユーザープロファイルに再利用することはお勧めしません。ドメインレベルのセキュリティグループがそれ自体へのインバウンドアクセスを許可すると、ドメイン内のすべてのアプリケーションがドメイン内の他のすべてのアプリケーションにアクセスできるようになります。
-
-
インターネットアクセスを許可する場合は、インターネットゲートウェイなどを経由してインターネットにアクセスできる NAT ゲートウェイを使用する必要があります。
-
インターネットアクセスを許可しない場合は、インターフェイス VPC エンドポイントを作成し (AWS PrivateLink)、対応するサービス名を持つ以下のサービスへのアクセスを Studio に許可します。また、VPC のセキュリティグループをこれらのエンドポイントに関連付ける必要があります。
-
SageMaker API:
com.amazonaws.
region
.sagemaker.api -
SageMaker ランタイム:
com.amazonaws.
。Studio ノートブックを実行し、モデルをトレーニングおよびホストするために必要です。region
.sagemaker.runtime -
Amazon S3:
com.amazonaws.
。region
.s3 -
SageMaker プロジェクト:
com.amazonaws.
region
.servicecatalog -
SageMaker Studio:
aws.sagemaker.region.studio
-
必要なその他の AWS のサービス。
SageMaker Python SDK
を使用してリモートトレーニングジョブを実行する場合は、次の Amazon VPC エンドポイントも作成する必要があります。 -
AWS Security Token Service:
com.amazonaws.
region
.sts -
Amazon CloudWatch:
com.amazonaws.
。これは、SageMaker Python SDK が Amazon CloudWatch からリモートトレーニングジョブのステータスを取得できるようにするために必要です。region
.logs
-
-
オンプレミスネットワークからドメインを
VpcOnly
モードで使用する場合は、ブラウザで Studio を実行しているホストのネットワークとターゲット Amazon VPC からプライベート接続を確立します。Studio UI は一時的な AWS 認証情報を使用して API コールを行い、AWS エンドポイントを呼び出すため、これが必要になります。これらの一時的な認証情報は、ログインしたユーザープロファイルの実行ロールに関連付けられています。オンプレミスネットワークでドメインがVpcOnly
モードで設定されている場合、実行ロールは、設定された Amazon VPC エンドポイントを通じてのみ AWS サービス API コールの実行を強制する IAM ポリシー条件を定義する場合があります。これにより、Studio UI から実行された API コールが失敗します。これを解決するには、AWS Site-to-Site VPN または AWS Direct Connect 接続を使用することをお勧めします。
注記
VPC モードで作業している場合、会社のファイアウォールによって Studio またはアプリケーションとの接続に問題が発生する場合があります。ファイアウォールの背後から Studio を使用している際にこれらの問題のいずれかが発生した場合は、次の点を確認してください。
-
Studio URL とすべてのアプリケーションの URL がネットワークの許可リストに含まれていることを確認します。例えば、以下のとおり入力します。
*.studio.
region
.sagemaker.aws *.console.aws.a2z.com -
Websocket 接続がブロックされていないことを確認します。Jupyter は Websocket を使用します。