🎃

SageMaker の Endpoint を削除しようとしたら MonitoringSchedules が残っていると怒られた場合の対処法

2023/06/15に公開

SageMaker の課金をとめたい!エンドポイントを削除するぞ!
InService ステータスになっている起動中のエンドポイントを一覧にして、それぞれ削除する

endpoints=$(aws sagemaker list-endpoints --status-equals InService | jq -r '.Endpoints[].EndpointName')

for endpoint in $endpoints; do
    echo "Deleting endpoint: $endpoint"
    aws sagemaker delete-endpoint --endpoint-name $endpoint
done

なぜか以下のエラーが出てしまった
これは、対象のエンドポイントに Monitoring Schedule が残っているのが原因。

An error occurred (ResourceNotFound) when calling the DeleteMonitoringSchedule operation: Monitoring Schedule arn:aws:sagemaker:ap-northeast-1:xxxxxx:monitoring-schedule/monitoringschedulename not found

そういえば SageMaker ModelMonitor の設定をしたままだった

以下のコマンドで Monitoring Schedule を一覧にする

aws sagemaker list-monitoring-schedules

表示された MonitoringScheduleName の値を参考に、以下のコマンドを実行して削除

aws sagemaker delete-monitoring-schedule --monitoring-schedule-name "確認したMonitoringScheduleName"

再度エンドポイントの削除を実行する

aws sagemaker delete-endpoint --endpoint-name 削除できなかったエンドポイント名

これで削除できたはず
最後にもう一度 InService のエンドポイントを表示させ、何も出力されなければ OK

endpoints=$(aws sagemaker list-endpoints --status-equals InService | jq -r '.Endpoints[].EndpointName')

Discussion