SageMaker StudioとSageMaker Notebooksの違い

記事タイトルとURLをコピーする

こんにちは。村上です。

見ましたか?見ましたよね、NBAオールスター。

スラムダンクコンテストが最高に盛り上がりましたね。

ということで、SageMakerでも盛り上がっていきましょう。

SageMaker StudioとSageMaker Notebooksという選択肢

SageMakerで機械学習環境を利用する際、主にSageMaker StudioまたはSageMaker Notebooksを利用するかと思います。

このブログでは2つのちがいをまとめてみます。

どちらを利用するか、選択の指針になれば幸いです。

比較表

まずは比較した表を記載します。各項目の詳細は後述します。

SageMaker Studio SageMaker Notebooks
SageMakerの各種機能へのアクセス GUI・CUI CUI
シングルサインオン ×
ストレージ EFS EBS
ローカルモード

SageMaker Studio

SageMaker Studioのアーキテクチャを掲載します。私が注目するポイントは以下です。

  • 認証にAWS IAM Identity Center(図中のAWS SSO)が利用可能
  • ストレージにはAmazon Elastic File System (EFS)が利用されている
  • UI 処理環境であるJupyter Serverと計算処理環境であるKernelGatewayは独立している

Domain management - SageMaker Studio Administration Best Practices

SageMakerの各種機能へのアクセス

比較表ではGUI・CUIと表記しました。

SageMaker StudioはSageMakerの各種機能を呼び出せる統合開発環境であり、ユーザーインターフェースから操作可能な機能が豊富です。

Amazon SageMaker Studio の UI の概要 - アマゾン SageMaker

もちろんノートブックからAmazon SageMaker Python SDKなどを利用して、コマンドベースでアクセスすることも可能です。

ドメインについて

SageMaker Studioを利用するには、まずドメインを作成する必要があります。

このドメインごとに、VPC設定やEFSが定義されます。

ドメインにタグ付けすることで、ドメインごとのコスト把握やアクセス権限を設定することができるので、チームごとでドメインを分けるような運用が想定されます。詳細は以下の記事をご参照ください。

aws.amazon.com

AWS IAM Identity Center(旧 AWS SSO)と連携可能

ドメインのセットアップ時に認証方法をAWS IAM Identity Centerにすることができます。

このとき、AWS IAM Identity Centerを利用しているリージョンと同一のリージョンでドメインを作成する必要があるので注意です。

SSOユーザーをドメインに割り当てると、以下のようにアクセスポータル画面からSageMaker Studioにアクセスできます。

ストレージはEFS

ストレージにはEFSが利用されており、各ユーザーがマウント可能です。

そのため容易にファイルの共有が可能であることもSageMaker Studioの利点です。

ローカルモードの使用には工夫が必要

SageMakerでトレーニングジョブを実行する際、基本的に学習用のインスタンスが作成されます。

ただし、開発時などはローカル環境で学習したい場面もあり、そんなときに使えるのがこのローカルモードです。

SageMaker Studioでローカルモードを使用するには、以下のドキュメントに記載されている設定が必要です。

aws.amazon.com

ドキュメントに記載の設定を行うと、以下のようにSageMaker Studioでローカルモードを使用することができます(Job Completeと出力されています)。

リソースの消し忘れに注意

SageMaker Studioはブラウザベースの環境です。

よくあるのが、タブは閉じたけどリソースはそのままで課金され続ける、というものです。

前述のとおり、SageMaker StudioにはJupyter ServerとKernelGatewayというタイプのアプリがあります。

SageMaker Studioを開くとJupyter Serverが起動し、ノートブックを開くなどするとKernelGatewayが起動します。

このKernelGatewayというタイプのアプリが起動していると、料金が発生します。

以下はSageMaker Studio上でノートブックを開いた後、カーネルの実行状況を確認してみた画面です。t3.mediumのインスタンスが起動していることが分かります。リソースを削除するには画面上の×をクリックします。

マネジメントコンソール上では以下のようにKernelGatewayが起動中であることが分かります。ここからリソースを削除することも可能です。

SageMaker Notebooks

アーキテクチャが複雑だったSageMaker Studioに比べて、SageMaker Notebooksはシンプルです。

単一のEC2とEBSで構成されています。

SageMakerの各種機能へのアクセス

SageMaker NotebooksはSageMaker Studioとは違い、ユーザーインターフェース上からSageMakerの機能を呼び出すことはできません。

Amazon SageMaker Python SDKなどを利用して、コマンドベースでアクセスすることは可能です。

SSOは非対応。その代わりローカルモードがデフォルトで利用可能

見出しのとおりですが、SageMaker Studioとは違い、シングルサインオンには対応していません。

ただし、SageMaker Studioのように追加設定をすることなく、ローカルモードが使用可能です。

ストレージはEBS

SageMaker NotebooksのストレージはEBSとなっています。

よって複数のホストからマウントすることができませんので、SageMaker Notebooksを利用するユーザーだけがEBS内のファイルを利用できます。

また、注意すべき点として、永続的な領域として使えるのは/home/ec2-user/SageMakerディレクトリのみという点が挙げられます。

上記以外のディレクトリに保存していると、ノートブックインスタンス停止後に消えてしまいます。

/home/ec2-user/SageMaker ディレクトリは、ノートブックインスタンスのセッション間で保持される唯一のパスです。
Amazon SageMaker ノートブックインスタンスの Conda 環境に Python パッケージをインストールする

まとめ

最後に比較表を再掲します。利用方針決定のお役に立てれば幸いです。

SageMaker Studio SageMaker Notebooks
SageMakerの各種機能へのアクセス GUI・CUI CUI
シングルサインオン ×
ストレージ EFS EBS
ローカルモード

村上博哉 (執筆記事の一覧)

2020年4月入社。機械学習が好きです。記事へのご意見など:hiroya.murakami@serverworks.co.jp