Amazon SageMakerとAmazon FSx for NetApp ONTAPで実現する機械学習基盤 第4回

# はじめに
こんにちは。ネットアップ合同会社 Specialist SEの月岡です。
「Amazon SageMakerとAmazon FSx for NetApp ONTAPで実現する機械学習基盤」を全4回でお届けします。
本稿が最終回です。
第1回から第3回の投稿はご覧になられましたでしょうか。
ご覧になられていない方は、是非ご覧ください。

第1回：https://qiita.com/Yoshinori_Tsukioka/items/e02537feb8008db46a99
第2回：https://qiita.com/Yoshinori_Tsukioka/items/0bdb5162f2ee25c82f32
第3回：https://qiita.com/Yoshinori_Tsukioka/items/2b6070a235b67634a2db


# やってみた
今回は、**④ ライフサイクル設定により、再起動後もNFS Volumeの自動マウント / NetApp DataOps Toolkitの自動インストール**をやってみたいと思います。

　① Amazon FSx for NetApp ONTAPを作成し、Notebookインスタンス用のNFS Volumeを作成
　② Notebookインスタンスを作成し、NFS Volumeをマウント
　③ NetApp DataOps Toolkitをインストールし、NFS VolumeのSnapshot取得 / FlexCloneを作成
　④ ライフサイクル設定により、再起動後もNFS Volumeの自動マウント / NetApp DataOps Toolkitの自動インストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/cedf2d7b-4bd3-cae7-d302-957e2bcfc9ff.png)

# Amazon SageMakerのライフサイクル設定

## ライフサイクル設定を行わないとどうなるか
- ライフサイクル設定を行わず、Jupyter Notebookインスタンスを再起動してみる。
  マウント情報やNetApp DataOps Toolkitがクリーンアップされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/c106b40f-3d0e-cee7-ee6a-0cf34621e4c3.png)

## ライフサイクル設定を投入してみる。
- ライフサイクル設定を作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/6b6769d2-2d35-5267-ef8e-80118b8bf14f.png)

- スクリプト内でNFS Volumeのマウント、NetApp DataOps Toolkitのインストールを処理させる。
 スクリプト記述内容は、ネットアップのGitHub Repositoryを参照
https://github.com/NetApp/netapp-dataops-toolkit/blob/main/netapp_dataops_traditional/Examples/notebookInstance-FSXVolume-stack.yaml
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/bf21b905-cade-981d-df51-1a135a400d2c.png)
  
- ライフサイクル設定が登録されたことを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/6d4a0090-6ddb-d624-1d1d-5a44a9c30737.png)

- ライフサイクル設定をJupyter Notebookインスタンスに紐づけ、更新を行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/2a06379d-aac3-890d-70b7-73473ae97751.png)

- Jupyter Notebookインスタンスの更新が開始されたことを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/d1f88565-3f87-89fc-c939-d81d08510421.png)

## ライフサイクル設定後、Jupyter Notebookインスタンスを起動する。
- Jupyter Notebookインスタンスを開始する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/42b80d36-a772-6116-5170-4d86fd9abae0.png)

- Jupyter Notebookインスタンスが開始されたことを確認し、JupyterLabを開く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/2c482320-5774-343b-0e99-70a3c406d26c.png)

- Amazon FSx for NetApp ONTAPのNFS Volumeが自動マウントされていることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/e48587bc-8a55-8ee4-1c5e-666012adffd8.png)

- NetApp DataOps Toolkitも自動インストールされ、ボリューム情報の取得も可能となる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2806894/4ca0c080-fb3d-fd8c-8365-3a7bcd19b8df.png)


以上でAmazon SageMakerのJupyter Notebookインスタンスを再起動しても
Amazon FSx for NetApp ONTAPのNFS Volumeを自動的にマウントし、NetApp DataOps Toolkitも自動的にインストールすることができました。

# まとめ
「Amazon SageMakerとAmazon FSx for NetApp ONTAPで実現する機械学習基盤」を全4回にわたりお届けしました。
Amazon SageMakerにAmazon FSx for NetApp ONTAPとNetApp DataOps Toolkitを組み合わせることで、より便利でより効率的なML/DL基盤を入手できると考えます。
この記事が少しでも参考になれば、幸いです。



# 主な参照元
- https://aws.amazon.com/jp/sagemaker/
- https://aws.amazon.com/jp/fsx/netapp-ontap/
- https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/what-is-fsx-ontap.html
- https://aws.amazon.com/jp/blogs/news/customize-your-notebook-volume-size-up-to-16-tb-with-amazon-sagemaker/
- https://github.com/NetApp/netapp-dataops-toolkit
- https://github.com/NetApp/netapp-dataops-toolkit/tree/main/netapp_dataops_traditional/Examples