学習のためにAWS Sagemakerを利用していたのですが、課金の仕組みを理解しきれずに300$程度課金されたのでここに対処方法を書いておきます。
AWS SageMakerとは
機械学習モデルの開発からデプロイまでを容易にするマネージドサービス。データサイエンスのプロセスを統合し、スケーラブルで柔軟な機械学習ワークフローを提供。
何をしていたか
AWS SageMakerを使い、テストデータを作成し、それをトレーニングさせモデルを作成し分析を行っていた。
原因
共有スペースの削除が出来ておらず、スペックの高いインスタンス(ml.g5.4xlarge)が90h程度立ち上がりっぱなしだった。
料金がかからないように注意していたつもりだったが・・
コンソール上からSageMaker Canvasはログアウトしていたし、SageMaker Studio上からも起動しているインスタンスはすべて停止していたが、共有スペースの削除に気づけなかった。
対処方法
対処方法を探している間にも課金され続けるので焦りながら調査。
コンソール上からの対応方法がすぐに見つからなかったため、AWS CloudShellを利用。
AWS CloudShellを起動し、ドメイン内の共有スペースのリストを取得
aws sagemaker list-spaces
すると共有スペースのリストが表示され、"Status": "InService"
となっている共有スペースが料金がかかっているものと分かる。
これを削除するため、AWS CloudShellで以下のコマンドを実行。
aws --region Region sagemaker delete-space \
--domain-id DomainId \
--space-name SpaceName
これで共有スペースでかかっていた料金を止めることができる。
一番安全な方法
学習や調査目的の場合は終わり次第、AWS SageMakerのドメイン自体を削除してしまった方が確実と思われる。
あとはコスト異常検出を設定しておくべきと改めて感じた。