TL;DR
こんにちは。弥生R&D室の飯田です。R&D室ではSageMakerを使用して機械学習 (ML) のプロジェクトを進めていますが、SageMakerにはProcessingJobというサービスがあり、モデル訓練のような重い処理に適しているため大変便利です。
しかし計算用インスタンス上で実行しているプロセスの管理には直接 ps
や kill
を使うことができず、独自のコマンドが必要となるため、よく使うものをこの記事で紹介したいと思います。
実行環境
AWS CLI が動作する環境、および利用するSageMakerのドメインに対応したアクセスキーの設定が必要です。
コマンド集
現在動いているジョブを確認する
ローカルにおける ps
に相当するコマンドです。非常によく使います。
aws sagemaker list-processing-jobs --status-equals InProgress
ジョブを作成する
ジョブを作成するためのコマンドです。
実は list-processing-jobs
と違い、こちらを使うことは少ないです。
オプションの変数が多すぎるためコマンドラインやシェルスクリプトで管理するのが割と大変で、Pythonラッパーを使って書く方が便利であり、個人としてはそちらをよく使います。
一応、この記事だけでジョブの監視・作成・削除を一通りこなせるようにするために記載します。
aws create-processing-job \ --processing-job-name $JOB_NAME \ --processing-resources $RESOURCES \ --app-specification $APP_SPEC \ --role-arn $ROLE_ARN
不要なジョブを削除する
ローカルにおける kill
に相当するコマンドです。こちらも list-processing-jobs
との組み合わせでよく使います。
aws sagemaker stop-processing-job --processing-job-name $JOB_NAME
まとめ
- ジョブの確認には
list-processing-jobs
が便利です - ジョブを作るには Pythonラッパー がおすすめです
- 不要なジョブが生きてたら
stop-processing-job
でお掃除しましょう
本記事は下記の記事と同じ内容です。 アクセス解析を目的としてマルチポストしています。
また弥生では一緒に働く仲間を募集しています。 ぜひエントリーお待ちしております。