4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[やってみた]Sagemaker Studioにautoshutdownを導入してみた

Last updated at Posted at 2022-12-02

Sagemaker Studio のUIが変わったらしいので画面を比較する

はじめに

re:Inventで俺たちのSagemaker Studioが新しくなったと聞いたので中身を見ました。
どうやらUIが変わったようです。

で、社会人初めての夏休み(51日間)でSagemaker Studioに関する手順書を書いたことがあるのですが、「UIが変わって使えなくなっていないよね」と不安に感じました。

ということで今回は
インスタンスの自動シャットダウン機能を導入しながらUIを比較して優勝していくことにするわね。🐍

まずは俺たちのSagemaker Studioにログインします

設定済みであることを前提に話を進めます。(AWS IAM Identity Center!!)

sso.png

(51日間の夏休みに格闘したSalesforceちゃんがいますが気にしないでください。)

ログイン後のUI(変更前)

sagemaker_old.png

ログイン後のUI(変更後)

sagemaker_new.png

なんか少しダークになった???
全体的に文字が太くなっているような。。。。
そして、家のマークがフォルダマークの上に配置されていることにお気づきでしょうか。

スクリーンショット 2022-12-02 4.53.15.png

色々変化に気づいたところでここから先は手順を通してUIを見ていきます。

前提

次のバージョンで動作確認をしています。

  • sagemaker_studio_autoshutdown
    • 0.1.5
  • JupyterLab
    • 3.6.0a1

参考資料

Sagemkaer Studio を起動

ターミナルを起動

File -> New -> Terminal からターミナルを起動します。

new_terminal.png

open_terminal.png

conda を起動

以下のコマンドをコピペして実行します。

conda activate studio

JupyterLabのバージョンを確認

以下のコマンドをコピペして実行します。

jupyter lab --version

バージョンが3.6.0a1であることを確認します。

GitHub からリポジトリを取得

git clone https://github.com/ymd65536/sagemaker-auto-shutdown.git

カレントディレクトリを変更します。

cd sagemaker-auto-shutdown

auto-shutdownのextensionをセットアップ - シェルスクリプトを実行

以下のコマンドをコピペして実行します。

cp ./on-jupyter-server-start.sh ../
cp ./check_idle_timeout_configuration.py ../
cd ..
chmod 755 ./on-jupyter-server-start.sh
./on-jupyter-server-start.sh

実行が終わると現在利用しているターミナルが閉じます。

ターミナルを新しく起動する

File -> New -> Terminal からターミナルを起動します。

new_terminal.png

open_terminal.png

タイムアウト時間を設定 - シェルスクリプトを実行

以下のコマンドをコピペして実行します。

conda activate studio
./.auto-shutdown/set-time-interval.sh

実行すると以下のように実行結果が表示されます。

set-time-interval.png

sagemaker-user@studio$ conda activate studio
(studio) sagemaker-user@studio$ ./.auto-shutdown/set-time-interval.sh
Succeeded, idle timeout set to 180 minutes
(studio) sagemaker-user@studio$

なお、デフォルトのタイムアウト時間は180分に設定していますが、このset-time-interval.shを修正して再度このコマンドを実行することで
タイムアウト時間(秒単位)の再設定が可能です。

set-time-interval.shon-jupyter-server-start.shによって自動で作成されるファイルです。
一時的にタイムアウト時間を変更する場合はset-time-interval.shTIMEOUT変数を修正するようにしてください。

設定されているかどうかの確認

以下のコマンドをコピペして実行します。

python check_idle_timeout_configuration.py

実行すると以下のように実行結果が表示されます。

(studio) sagemaker-user@studio$ python check_idle_timeout_configuration.py
<Response [200]>
{‘idle_time’: 10800, ‘keep_terminals’: False, ‘count’: 10}
(studio) sagemaker-user@studio$

これで設定は以上になります。

切り戻し手順

ここから先はうまくいかなかった時のリセット手順です。

カレントディレクトリの確認

以下のコマンドをコピペして実行します。

pwd

実行すると以下のように実行結果が表示されます。

(studio) sagemaker-user@studio$ pwd
/home/sagemaker-user
(studio) sagemaker-user@studio$

カレントディレクトリが/home/sagemaker-userであることを確認します。

ディレクトリの削除

以下のコマンドをコピペして実行します。

rm -rf .auto-shutdown
rm -rf check_idle_timeout_configuration.py
rm -rf on-jupyter-server-start.sh

これでインストール前の状態に戻りました。

まとめ(所感)

UIが変更されましたが、ほぼ同じ感覚で使うことができました。
ですが、バージョンで見ると私がこの手順書を書いた時(2022年08月頃)はjupyterのバージョンは3.3.4でしたが、2022年12月2日時点ではjupyterのバージョンは3.6.0a1でした。変化が早いので手順書があっという間に廃れそうですね。

余談ですが、個人的にはこういうインフラ作業における手順書の書き方には結構こだわりがあったりします。
リクエストがあったらそういう部分についても語りたいと思います。

今回扱ったSagemaker Studioですが、好きなサービスの一つでシングルサインオンで扱える部分が素敵だなと思っています。ただ、機械学習系の技術スタックにはそんなに強くないので、jupyter環境の利用がメインです。

開発環境を用意しなくても良いことと認証面を全てAWS IAM Identity Centerに統一できるところは個人学習には向いているなと思うので興味のある方はぜひ、今回のAutoShutdownを導入して安全にSagemaker Studioを使ってみてください。

おわり

4
2
2

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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?