0
0

【AWS SageMaker】Notebookインスタンスにライフサイクル設定を行って、起動時に自動でpip installするようにしてみた

Posted at

背景

SageMakerのNotebookインスタンスを起動する度に、pip installコマンドを実行する事が面倒に感じてきましたので、起動時に自動でpip installコマンドを実行するようにしてみたいと思いました。

行った事(概要)

Notebookインスタンスに、インスタンス開始時にpip installコマンドを実行するライフサイクル設定を行いました。

行った事(詳細)

1. 事前確認

Notebookインスタンスにライフサイクル設定を行う前の挙動を確認します。
Notebookインスタンスを起動して、ライブラリーのインポートを試してみたら、ライブラリーがインストールされていない旨を怒られました。

hogehoge.ipynb
import janome
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 1
----> 1 import janome

ModuleNotFoundError: No module named 'janome'

2. 設定

では、ライフサイクル設定を行ってみます。
まずは、SageMakerのマネジメントコンソールにて、ライフサイクル設定を新規作成します。

スクショ1.PNG

名前を入力します。
その後、「ノートブックの開始」タブをクリックします。

スクショ2.PNG

Notebookインスタンスを起動する時に実行するスクリプトを記載します。
pip installで所定のライブラリーをインストールするスクリプトは、こちらにあります。

こちらのスクリプトの、
 PACKAGE=scipy
 pip install --upgrade "$PACKAGE"
の部分だけを編集します。
今回はjanomeライブラリーをインストールしようと思いますので、
 PACKAGE=janome
 pip install "$PACKAGE"
へ編集しました。

スクショ4.PNG

ここでポイントなのですが、使用している端末がwindows端末の場合、スクリプトを普通にコピペすると、改行コードがCRLFになってしまい、そのまま後続の作業を行うと、エラーになります。

よって、改行コードはLFの形でスクリプトを記載する必要があります。
今回はスクリプトの量が少ないので、コピペせずに、スクリプト画面に手打ちで入力しました。
(スクリプト画面にそのまま手打ちすると、改行コードはLFになるみたいです。)

これで、ライフサイクル設定の作成が完了しました。

スクショ5.PNG


続いて、作成したライフサイクル設定をNotebookインスタンスに適用します。
ライフサイクル設定を適用したいNotebookインスタンスを選択して、編集を行います。

スクショ6.PNG

「追加設定」を展開すると、ライフサイクル設定を設定出来る箇所が表示されますので、先程作成したライフサイクル設定を設定します。

スクショ7.PNG

スクショ8.PNG

更新を行うと、Notebookインスタンスにライフサイクル設定が設定されている事を確認出来ます。

スクショ10.PNG

3. 設定後確認

Notebookインスタンスを起動して、ライフサイクル設定で記載したスクリプトが行われているかを確認します。
改めてNotebookインスタンスを起動して、janomeライブラリーのインポートを行ってみると、

hogehoge.ipynb
import janome
print(janome.__version__)
0.5.0

キチンとインポート出来ました。
Notebookインスタンスの起動時に、ライフサイクル設定のスクリプトによって、janomeライブラリーがインストールされました。


今回は以上になります。

まとめ

実際に設定を行ってみると、改行コードのトラップにかなりはまってしまいました。そして、windows端末で改行コードをLFの形でコピペする事がうまく出来ず、結局は手打ちする事に(笑)
スクリプトのサンプルは他にもありましたので、ライブラリーのインストール以外にも色々と行えそうです。

参考

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