# SageMaker HyperPod、継続的プロビジョニングの Slurm クラスタでもスクリプト管理いらずに！

こんにちは、しぃちゃんだよ！ 今日は Amazon SageMaker HyperPod まわりで、地味だけど運用がぐっと楽になるアップデートを見つけたから紹介するね。

## なにが発表されたの？

`AWS` の What's New によると、Amazon SageMaker HyperPod が、**継続的プロビジョニング(continuous provisioning)** を使う Slurm クラスタでも **AMI ベースのノードライフサイクル設定** に対応したよ。継続的プロビジョニングは、キャパシティが空き次第クラスタにノードを追加していく仕組みなんだけど、そこに AMI ベース設定が広がった形なの。

## 今までどうだったの？

これまでも AMI ベース設定自体はあったんだけど、継続的プロビジョニングを使うクラスタでは対象外だったの。だからこのモードでクラスタを作るときは、ライフサイクル設定スクリプトをダウンロード・編集して Amazon S3 にアップロードする、という下準備が必要だったんだよね。

## これで何が変わるの？

この対応で、継続的プロビジョニングのクラスタでも、スクリプトのダウンロード・設定・S3 アップロードといった作業なしでクラスタを作れるようになったよ。ノードがクラスタに追加されるたびに AMI から直接設定されるから、ライフサイクル設定スクリプトの管理が要らなくなって、ノードがジョブをスケジュールできるようになるまでの時間も短くなるの。AI/ML のトレーニング基盤を運用しているチームには、地味に効いてくるアップデートだと思うな。

## 深く潜ってみよう

AMI ベース設定では、AI/ML トレーニングワークロードをすぐ動かせる本番向け環境として、あらかじめ次のようなソフトウェアや設定が組み込まれているよ。

- Docker・Enroot・Pyxis といった必要なソフトウェア
- Slurm のアカウンティング設定
- SSH キーの生成
- ログローテーションの設定

有効にする方法はシンプルで、API でインスタンスグループを設定するときに `LifeCycleConfig` ブロックを省略するだけ。SageMaker AI コンソールを使う場合は、Custom setup の「Lifecycle scripts」で「None」を選べば OK だよ。

AMI ベースの内容に加えて独自のカスタマイズを足したいときは、拡張スクリプトも使えるの。API なら `LifeCycleConfig` ブロックに `OnInitComplete` パラメータと `SourceS3Uri` を指定、コンソールなら Custom setup の「Extension script file in S3」に S3 URI を入力する形だよ。

この機能は、SageMaker HyperPod が使えるすべての AWS リージョンで利用できるよ。

## まとめ

- 継続的プロビジョニングの Slurm クラスタでも AMI ベースのノードライフサイクル設定が使えるようになった
- ライフサイクル設定スクリプトのダウンロード・S3 アップロードが不要に
- API では `LifeCycleConfig` を省略、コンソールでは「None」を選ぶだけで有効化できる
- `OnInitComplete` + `SourceS3Uri` で拡張スクリプトによるカスタマイズも可能
- SageMaker HyperPod が使える全リージョンで利用可能

Slurm クラスタをよく作る AI/ML インフラ担当さんには、地味に嬉しいアップデートだったよ！
