SageMakerのQuotaの調べ方が分からなくて、ちょっと調べるのに手間取ったのちに「調べられない」というのが結論だったので、繰り返さないで済むようにメモ。現時点では、現在のQuota値はエラーメッセージにしか出てこないようです。
SageMakerのQuotaはエラーメッセージで見る
SageMakerのQuotaを調べるための情報を探していくと「Amazon SageMaker で ResourceLimitExceeded エラーを解決する」が見つかりました。この中では、次のように説明されています。
増加が必要なリソースを決定した後、要求する増加の量を決定します。この情報はエラーメッセージにあります。たとえば、 us-east-1 リージョンに 18 個の ml.m5.2xlarge ノートブックインスタンスを持つエンドポイントを作成するとします。次のエラーが表示されます。
ResourceLimitExceeded: An error occurred (ResourceLimitExceeded) when calling the CreateEndpoint operation:
The account-level service limit 'ml.m5.2xlarge for endpoint usage' is 20 Instances, with current utilization of 4 Instances and a request delta of 18 Instances.
…エラーメッセージ見ろって、普通にQuota値確認する方法ないのかな。たまたまこう書いてるだけかもしれないし、2020年の記事だから状況が変わってるかもしれないしな。そう思って(あとこれ以上すぐには情報が出てくる気がしなくて)後述の通りマネジメントコンソール、AWS CLI、AWS Tools for PowerShellを試してみましたが、その通りのようでした。エラーメッセージを見ろ。
そうTweetしてたら「今のところ確認する術はサポートのみな模様。」とリプライをもらいました。昨年末のre:Inventでローンチされたre:Postにこういう投稿があるとのこと。
SageMakerの現在のService Quotaってどうやって確認すればいい?(How do I check my current SageMaker service quotas?)
(Nathaniel Ng, asked 4 months ago)
残念ながら、AWS SageMakerではService Quotaを直接表示する方法をサポートしていません。(Unfortunately, AWS Sagemaker is not supported for direct visibility into the service quotas.)
(Nirmal_Karia, answered 4 months ago)
いまだにないようです。エラーメッセージを見ろ。
調べてみる
一応、実際に調べてみた結果は以下の通り。いずれの場合でも、調べたいQuotaの項目だけでなく、SageMakerというサービス名が出てきませんでした。re:Postの投稿から更に4か月たっていますが、変わっていないようです。
マネジメントコンソールでの確認
ブラウザベースのGUIであるマネジメントコンソールのAWS Service Quotasで確認すると、次のようになります。SageMakerはService Quotas管理のQuota項目として見つかりませんでした。
AWS CLIでの確認
Quota値を確認できる「list-service-quotas」コマンドはサービスコードが必須の引数なので、まず「list-services」コマンドレットでサービス一覧を確認しました。 sage
を含むものはありませんでした。
c:\> aws service-quotas list-services | find /I "sage"
c:\>
例えば VPC
であれば見つかるので、絞込みの間違い等ではないはずです。
c:\> aws service-quotas list-services | find /I "vpc"
- ServiceCode: vpc
ServiceName: Amazon Virtual Private Cloud (Amazon VPC)
AWS Tools for PowerShellでの確認
Quota値を確認するための「Get-SQServiceQuota」コマンドレットはサービスコードが必須の引数なので、まず「Get-SQServiceList」コマンドレットでサービス一覧を確認しました。ServiceCodeにもServiceNameにも Sage
を含むものはありませんでした。
PS C:\> Get-SQServiceList | ?{ ($_.ServiceName -like "*sage*") -OR ($_.ServiceCode -like "*sage*") }
PS C:\>
例えば VPC
であれば見つかるので、絞込みの間違い等ではないはずです。
PS C:\> Get-SQServiceList | ?{ ($_.ServiceName -like "*vpc*") -OR ($_.ServiceCode -like "*vpc*") }
ServiceCode ServiceName
----------- -----------
vpc Amazon Virtual Private Cloud (Amazon VPC)
終わりに
5月20日の「人を笑わせるAIをつくってみる AWS Summit 直前Special 電笑戦のモデルをつくる」ハンズオンをやっていて、まさしく「Amazon SageMakerでResourceLimitExceededエラー」になって調べて回ったという一幕でした。
いままでCLIやPowerShellでService Quotaを取得したりしてなかったので勉強になりましたが、ハンズオンは途中リタイアで残念でした。みなさんはそんな優先順位間違えたことしないで、マネジメントコンソールなどどれか一つで表示されないことを確認したら、もうサポートリクエスト出しちゃってください。あと、後で一人ハンズオンやろう。
あと今週水~木のAWS Summit JAPAN、初日夜に「ボケて電笑戦」が予定されています。みんなで観戦してTwitterとかで盛り上がりましょう。
参考
- Amazon SageMaker で ResourceLimitExceeded エラーを解決する
- How do I check my current SageMaker service quotas? | AWS re:Post (via Tetsuya Shibao, Tweet on 2022年5月21日 16:10)
- Amazon SageMaker エンドポイントとクォータ - AWS 全般のリファレンス … デフォルト値であればこちら。
- AWS CLI。
- AWS Tools for PowerShell。