複数のドメインと共有スペース - SageMaker Studio 管理のベストプラクティス

複数のドメインと共有スペース

Amazon SageMaker AI では、アカウントごとに複数の SageMaker AI ドメインを 1 つの AWS リージョンで作成できるようになりました。ドメインごとに、認証モードなどの独自のドメイン設定と、VPC やサブネットなどのネットワーク設定を構成できます。ユーザープロファイルをドメイン間で共有することはできません。1 人のユーザーがドメインで区切られた複数のチームに属している場合は、ドメインごとにユーザーのユーザープロファイルを作成します。既存のドメインでのタグのバックフィルについては、「複数ドメインの概要」を参照してください。

IAM 認証モードで設定した各ドメインでは、共有スペースを利用してユーザー間のほぼリアルタイムのコラボレーションを行うことができます。共有スペースでは、ユーザーは共有 Amazon EFS ディレクトリとユーザーインターフェイスの共有 JupyterServer アプリにアクセスし、ほぼリアルタイムで共同編集できます。共有スペースで作成されたリソースの自動タグ付けにより、管理者はプロジェクトレベルでコストを追跡できます。また、共有 JupyterServer UI では、実験やモデルレジストリエントリなどのリソースをフィルタリングして、共有 ML の取り組みに関連する項目のみが表示されるようにします。次の図は、各ドメイン内のプライベートアプリと共有スペースの概要を示しています。

単一ドメイン内のプライベートアプリと共有スペースの概要を示す図。

単一ドメイン内のプライベートアプリと共有スペースの概要

ドメインに共有スペースを設定する

共有スペースは通常、特定の ML の取り組みやプロジェクトで、単一ドメインのメンバーが同じ基盤のファイルストレージや IDE にほぼリアルタイムでアクセスする必要がある場合に作成します。ユーザーはノートブックのアクセス、閲覧、編集、共有をほぼリアルタイムで行うことができるため、同僚との反復作業を最も早く開始できます。

共有スペースを作成するには、まずスペースを使用するすべてのユーザーのアクセス許可を管理する、スペースのデフォルトの実行ロールを指定する必要があります。この記事の執筆時点では、ドメイン内のすべてのユーザーがドメイン内のすべての共有スペースにアクセスできます。既存のドメインに対する共有スペースの追加に関する最新のドキュメントについては、「共有スペースの作成」を参照してください。

IAM フェデレーション用にドメインを設定する

SageMaker AI Studio ドメインの AWS Identity and Access Management (IAM) フェデレーションを設定する前に、「ID 管理」セクションで説明しているように、IdP に IAM フェデレーションユーザーロール (プラットフォーム管理者など) を設定する必要があります。

IAM オプションを使用して SageMaker AI Studio を設定する詳細な手順については、「IAM アイデンティティセンターを使用して Amazon SageMaker ドメインにオンボーディングする」を参照してください。

シングルサインオン (SSO) フェデレーション用にドメインを設定する

シングルサインオン (SSO) フェデレーションを使用するには、SageMaker AI Studio を実行する必要があるリージョンと同じリージョンにある AWS Organizations 管理アカウントで AWS IAM Identity Center を有効にする必要があります。ドメインの設定手順は、[認証] セクションで [AWS IAM Identity Center (IdC)] を選択することを除いて、IAM フェデレーションの手順と同じです。

詳細な手順については、「IAM アイデンティティセンターを使用して Amazon SageMaker ドメインにオンボーディングする」を参照してください。

SageMaker AI Studio ユーザープロファイル

ユーザープロファイルは、ドメイン内の単一のユーザーを表し、共有、レポート、その他のユーザー指向機能を実行する際の「個人」を参照する主な方法です。このエンティティは、ユーザーが SageMaker AI Studio にオンボードするときに作成されます。管理者が E メールでユーザーを招待したり、IdC からインポートしたりすると、ユーザープロファイルが自動的に作成されます。ユーザープロファイルは、各ユーザーの設定を主に保持し、ユーザーのプライベートな Amazon Elastic File System (Amazon EFS) ホームディレクトリへの参照を含みます。SageMaker AI Studio アプリケーションの物理ユーザーごとにユーザープロファイルを作成することをお勧めします。ユーザーごとに専用のディレクトリが Amazon EFS にあり、ユーザープロファイルを同じアカウント内のドメイン間で共有することはできません。

SageMaker AI Studio ドメインを共有するユーザープロファイルごとに、ノートブックを実行するための専用のコンピューティングリソース (SageMaker AI の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなど) が割り当てられます。ユーザー 1 に割り当てられたコンピューティングインスタンスは、ユーザー 2 に割り当てられたコンピューティングインスタンスから完全に分離されます。同様に、1 つの AWS アカウント内のユーザーに割り当てられたコンピューティングリソースは、別のアカウント内のユーザーに割り当てられたコンピューティングリソースから完全に分離されます。各ユーザーは、分離された Docker コンテナ内の最大 4 つのアプリケーション (アプリ) を実行できます。または、同じインスタンスタイプのイメージを実行できます。

Jupyter Server アプリ

署名付き URL にアクセスするか、AWS IAM IdC を通じてログインしてユーザーの Amazon SageMaker AI Studio ノートブックを起動すると、Jupyter Server アプリが SageMaker AI サービスマネージドの VPC インスタンスで起動されます。各ユーザーは、プライベートアプリで専用の Jupyter Server アプリを個別に取得します。デフォルトでは、SageMaker AI Studio ノートブック用の Jupyter Server アプリは、専用の ml.t3.medium インスタンス (システムインスタンスタイプとして予約済み) 上で実行されます。このインスタンスのコンピューティング料金は、お客様に請求されません。

Jupyter カーネルゲートウェイアプリ

Kernel Gateway アプリは、API または SageMaker AI Studio インターフェイスを介して作成でき、選択したインスタンスタイプで実行されます。このアプリは、一般的なデータサイエンスや深層学習パッケージ (TensorFlowApache MXNetPyTorch など) で事前に設定された組み込みの SageMaker AI Studio イメージのいずれかを使用して実行できます。

ユーザーは、同じ SageMaker Studio イメージ/カーネルゲートウェイアプリ内で、複数の Jupyter Notebook カーネル、ターミナルセッション、インタラクティブコンソールを起動して実行できます。また、同じ物理インスタンスで最大 4 つのカーネルゲートウェイアプリまたはイメージを実行できます (それぞれがコンテナ/イメージによって分離されます)。

追加のアプリを作成するには、別のインスタンスタイプを使用する必要があります。ユーザープロファイルでは、インスタンスタイプを問わず、1 つのインスタンスのみ実行できます。例えば、同じインスタンスで、SageMaker AI Studio の組み込みデータサイエンスイメージを使用する単純なノートブックと、組み込みの TensorFlow イメージを使用する別のノートブックの両方を実行できます。ユーザーは、インスタンスを実行した時間分の料金を請求されます。ユーザーが SageMaker AI Studio をアクティブに実行していないときのコストを回避するには、インスタンスをシャットダウンする必要があります。詳細については、「Studio アプリのシャットダウンと更新」を参照してください。

SageMaker AI Studio インターフェイスから Kernel Gateway アプリをシャットダウンして再度開くたびに、アプリは新しいインスタンスで起動されます。つまり、同じアプリを再起動しても、パッケージのインストールは保持されません。同様に、ユーザーがノートブックのインスタンスタイプを変更すると、インストール済みのパッケージとセッション変数は失われます。ただし、独自のイメージの導入ライフサイクルスクリプトなどの機能を使用してユーザー独自のパッケージを SageMaker AI Studio に持ち込むと、インスタンスを切り替えたり、新しいインスタンスを起動したりしても、パッケージは保持されます。

Amazon Elastic File System ボリューム

ドメインを作成すると、単一の Amazon Elastic File System (Amazon EFS)ボリュームが作成され、ドメイン内のすべてのユーザーが使用できるようになります。各ユーザープロファイルには、ユーザーのノートブック、GitHub リポジトリ、データファイルを保存するためのプライベートホームディレクトリが、Amazon EFS ボリューム内に割り当てられます。ドメイン内の各スペースには、複数のユーザープロファイルからアクセスできるプライベートディレクトリが、Amazon EFS ボリューム内に割り当てられます。フォルダへのアクセスは、ファイルシステムのアクセス許可を通じて、ユーザーごとに分離されます。SageMaker AI Studio は、ユーザープロファイルやスペースごとにグローバルな一意のユーザー ID を作成し、これを EFS でユーザーのホームディレクトリに対するポータブルオペレーティングシステムインターフェイス (POSIX) のユーザー/グループ ID として適用します。これにより、他のユーザーやスペースはそのデータにアクセスできなくなります。

バックアップとリカバリ

既存の EFS ボリュームを新しい SageMaker AI ドメインにアタッチすることはできません。本番環境の設定で、Amazon EFS ボリュームが別の EFS ボリュームや Amazon Simple Storage Service (Amazon S3) にバックアップされていることを確認します。EFS ボリュームを誤って削除した場合、管理者は SageMaker AI Studio ドメインを削除して再作成する必要があります。手順は次のとおりです。

ユーザープロファイル、スペース、および関連する EFS ユーザー ID (UID) のリストをバックアップするには、ListUserProfilesDescribeUserProfileList SpacesDescribeSpace API コールを使用します。

  1. 新しい SageMaker AI Studio ドメインを作成します。

  2. ユーザープロファイルとスペースを作成します。

  3. ユーザープロファイルごとに、バックアップから EFS/Amazon S3 にファイルをコピーします。

  4. 必要に応じて、古い SageMaker AI Studio ドメインのすべてのアプリとユーザープロファイルを削除します。

詳細な手順については、付録の「SageMaker AI Studio ドメインのバックアップとリカバリ」セクションを参照してください。

注記

これを行う別の方法としては、ユーザーがアプリを起動するたびに S3 とやり取りするデータを LifecycleConfigurations でバックアップします。

Amazon EBS ボリューム

Amazon Elastic Block Store (Amazon EBS) ストレージボリュームも、各 SageMaker AI Studio ノートブックインスタンスにアタッチします。これは、インスタンスで実行しているコンテナまたはイメージのルートボリュームとして使用されます。Amazon EFS ストレージは永続的ですが、コンテナにアタッチした Amazon EBS ボリュームは一時的なものです。Amazon EBS ボリュームにローカルに保存したデータは、お客様がアプリを削除した場合に保持されません。

署名付き URL へのアクセスの保護

SageMaker AI Studio ユーザーがノートブックのリンクを開くと、SageMaker AI Studio はフェデレーションユーザーの IAM ポリシーを検証してアクセスを許可し、ユーザーの署名付き URL を生成して解決します。SageMaker AI コンソールはインターネットドメイン上で動作するため、この生成された署名付き URL はブラウザセッションに表示されます。これは、適切なアクセス制御が適用されていない場合に、データの盗難やお客様のデータへのアクセスという望ましくない脅威ベクトルとなります。

Studio は、署名付き URL のデータ盗難に対してアクセス制御を適用する方法をいくつかサポートしています。

  • IAM ポリシー条件 aws:sourceIp を使用したクライアント IP の検証

  • IAM 条件 aws:sourceVpc を使用したクライアント VPC の検証

  • IAM ポリシー条件 aws:sourceVpce を使用したクライアント VPC エンドポイントの検証

SageMaker AI コンソールから SageMaker AI Studio ノートブックにアクセスする場合、利用できる唯一のオプションは IAM ポリシー条件 aws:sourceIp を使用したクライアント IP の検証となります。ただし、Zscaler などのブラウザトラフィックルーティング製品を使用すると、従業員のインターネットアクセスのスケールとコンプライアンスを確保できます。これらのトラフィックルーティング製品は、独自のソース IP を生成しますが、その IP 範囲は企業のお客様によって制御されません。そのため、このような企業のお客様は aws:sourceIp 条件を使用できなくなります。

IAM ポリシー条件 aws:sourceVpce を使用したクライアント VPC エンドポイントの検証を使用するには、署名付き URL の作成元が SageMaker AI Studio のデプロイ先と同じお客様の VPC である必要があり、署名付き URL の解決はお客様の VPC の SageMaker AI Studio VPC エンドポイント経由で行う必要があります。このような企業ネットワークユーザーのアクセス時間中における署名付き URL の解決は、次のアーキテクチャに示すように、DNS 転送ルールを (Zscaler と企業 DNS の両方で) 使用して実現できます。解決されると、Amazon Route 53 のインバウンドリゾルバーを使用してお客様の VPC エンドポイントに送信されます。

企業ネットワーク経由で VPC エンドポイントを使用した Studio の署名付き URL へのアクセスを示す図。

企業ネットワーク経由で VPC エンドポイントを使用した Studio の署名付き URL へのアクセス

上記のアーキテクチャを設定するステップバイステップのガイダンスについては、「Amazon SageMaker AI Studio の署名付き URL のセキュリティ保護パート 1: 基盤インフラストラクチャ」を参照してください。

SageMaker AI ドメインのクォータと制限

  • SageMaker AI Studio のドメイン SSO フェデレーションは、リージョンに限り、AWS アイデンティティセンターがプロビジョニングされている AWS 組織のメンバーアカウント間でのみサポートされます。

  • 共有スペースは、AWS アイデンティティセンターで設定したドメインでは現在サポートされていません。

  • VPC やサブネットの設定は、ドメインを作成した後では変更できません。ただし、VPC やサブネットの設定が異なる新しいドメインを作成することはできます。

  • ドメインを作成した後は、ドメインアクセスを IAM モードと SSO モードの間で切り替えることはできません。別の認証モードを使用して新しいドメインを作成できます。

  • カーネルゲートウェイアプリの数は、各ユーザーに起動したインスタンスタイプごとに 4 つに制限されます。

  • 各ユーザーは、各インスタンスタイプのインスタンスを 1 つだけ起動できます。

  • ドメイン内で消費されるリソースには、インスタンスタイプごとに起動するインスタンスの数、作成できるユーザープロファイルの数などに関する制限があります。サービス制限の詳細なリストについては、サービスクォータのページを参照してください。

  • お客様は、ビジネス上の正当な理由を付してエンタープライズサポートケースを提出し、アカウントレベルのガードレールに応じたドメイン数やユーザープロファイル数などのデフォルトのリソース制限を引き上げることができます。

  • アカウントごとの同時実行アプリの数に対するハード制限は 2,500 です。ドメインとユーザープロファイルの制限は、このハード制限に応じて異なります。例えば、アカウントは 1,000 のユーザープロファイルを含む 1 つのドメインを持つことも、それぞれ 50 のユーザープロファイルを含む 20 のドメインを持つこともできます。