LoginSignup
0
0

SageMaker Studioでカスタムイメージを使用する

Last updated at Posted at 2024-04-02

はじめに

Amazon SageMaker Studioにカスタムイメージを適用する際に苦労したので備忘録です。

Cloud9のセットアップ

今回はCloud9を使用します。ローカルにAWS CLI環境が構築されている場合はそちらでも構いません。

環境を作成

  1. コンソールから [Create environment] をクリック
  2. [Additional instance types]からinstance typeをt2-mediumに変更
    ※後のイメージ作成の際にt2-microだとエラーになるため
  3. その他の設定は任意で[Create]をクリック

ストレージサイズを変更

デフォルトの5GBだとイメージ作成に足りないため、拡張します。

  1. Cloud9が動いているEC2を停止
  2. アタッチされているEBSのSizeを増やします。とりあえず30GiBくらい。
    ※増やすことはできるが、後から減らすことができない。
    EBSVolume.PNG
  3. 再度Cloud9を起動

カスタムイメージの作成

イメージの作成は以下を参考にしてます。
AWS 公式ドキュメント - カスタムイメージへのアクセス権をユーザーに提供する -

手順をまとめて自動化した リポジトリを作成しました。一通りのデプロイを試すにはこちらを使用すると良いです。

リポジトリをクローン

git clone https://github.com/ka70/sagemaker-custom-image-template.git
cd sagemaker-custom-image-template

カスタムイメージはECRにイメージを保存してSageMakerで使用します。
image_push.shでリポジトリの作成、イメージの作成、プッシュを行います。

各種設定

image_push.shを開いて、変数を設定します。

REPOSITORY_NAME="smstudio-custom"
ACCOUNT_ID=<ACCOUNT ID>
REGION="ap-northeast-1"
TAG_NAME="latest"

requirements.txtを開いて必要なライブラリを追加します。

実行

chmod +x push_image.sh
./push_image.sh 

ECRにイメージが登録されているか確認してください。

イメージをSageMakerに登録

コンソールからカスタムイメージをSageMakerに登録します。
基本的に公式ドキュメントのやり方に沿って行います。

  1. SageMaker コンソールを開きます。
  2. 管理者設定 で、ドメイン を選択します。
  3. ドメイン のリストから、ドメインを選択します。
  4. 環境 タブを開きます。
  5. 個人用 Studio アプリのカスタムイメージ で、イメージのアタッチ を選択します。
  6. イメージソースを指定します。
  7. [次へ] を選択します。
  8. [送信] を選択します。

注意点は以下です。

  • 6でアタッチするイメージは作成したURIを使用
    attach_image.PNG

  • IAMロールはAmazonSageMakerFullAccessがついているものを使用

  • "8. [送信] を選択します。"の前にimage typeで使用するapplication typeをクリックしておく
    image_type.PNG

Spaceでカスタムイメージを使用する

SageMaker Studioを起動します。spaceを起動する際に作成したカスタムイメージを選択します。無事起動できれば完了です。Congratulation !!

※カスタムイメージが起動できない事象がありました。
SageMaker Studioでカスタムイメージが起動しない

もっと頑張りたい方へ

Dockerfile

私が作成したDockerfileでは雑にpipでインストールしています。
厳密にパッケージ管理をしたい方は、必要に応じてcondaやその他のパッケージ管理システムに書き換えてください。

また、Dockerfileの仕様例としてはAmazon Linux 2 イメージとAmazon SageMaker ディストリビューションイメージの2つがあります。(AWS 公式ドキュメント - カスタムイメージへのアクセス権をユーザーに提供する - )SageMaker ディストリビューションイメージは機械学習やデータサイエンスに使用するパッケージがあらかじめインストールされているため、追加の手間が少ないです。今回もSageMaker ディストリビューションイメージを使用しています。

一方で、一からカスタムしたいという場合はAmazon Linux 2 イメージを使用するといいでしょう。

Linuxディストリビューションについても以下の違いがあるそうです。
・Amazon Linux 2 テンプレート: Amazon Linux
・SageMaker ディストリビューションイメージテンプレート: Ubuntu

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0