こんにちは。村上です。
見ましたか?見ましたよね、NBAオールスター。
スラムダンクコンテストが最高に盛り上がりましたね。
【もはや芸術の域?】米スラムダンクコンテストで優勝、マクラングの「技」に観客も興奮pic.twitter.com/vHqJEA65iv
— ライブドアニュース (@livedoornews) 2023年2月23日
ということで、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は独立している
SageMakerの各種機能へのアクセス
比較表ではGUI・CUIと表記しました。
SageMaker StudioはSageMakerの各種機能を呼び出せる統合開発環境であり、ユーザーインターフェースから操作可能な機能が豊富です。
もちろんノートブックからAmazon SageMaker Python SDKなどを利用して、コマンドベースでアクセスすることも可能です。
ドメインについて
SageMaker Studioを利用するには、まずドメインを作成する必要があります。
このドメインごとに、VPC設定やEFSが定義されます。
ドメインにタグ付けすることで、ドメインごとのコスト把握やアクセス権限を設定することができるので、チームごとでドメインを分けるような運用が想定されます。詳細は以下の記事をご参照ください。
AWS IAM Identity Center(旧 AWS SSO)と連携可能
ドメインのセットアップ時に認証方法をAWS IAM Identity Centerにすることができます。
このとき、AWS IAM Identity Centerを利用しているリージョンと同一のリージョンでドメインを作成する必要があるので注意です。
SSOユーザーをドメインに割り当てると、以下のようにアクセスポータル画面からSageMaker Studioにアクセスできます。
ストレージはEFS
ストレージにはEFSが利用されており、各ユーザーがマウント可能です。
そのため容易にファイルの共有が可能であることもSageMaker Studioの利点です。
ローカルモードの使用には工夫が必要
SageMakerでトレーニングジョブを実行する際、基本的に学習用のインスタンスが作成されます。
ただし、開発時などはローカル環境で学習したい場面もあり、そんなときに使えるのがこのローカルモードです。
SageMaker Studioでローカルモードを使用するには、以下のドキュメントに記載されている設定が必要です。
ドキュメントに記載の設定を行うと、以下のように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 |
ローカルモード | △ | ○ |