CI部 佐竹です。 本日は 3つ目の Savings Plan こと Machine Learning Savings Plans for Amazon SageMaker をご紹介します。
はじめに
SageMaker Savings Plan は日本時間で 4月21日(水) にリリースがされました。以下が AWS 公式のリリースページとなります。
また、SageMaker Savings Plan のリリースと合わせて Amazon SageMaker 自体の値下げも発表されています。これはオンデマンドの利用料が最大14%値引きされるもので、4月19日から有効となっています。
今回は、SageMaker Savings Plan について詳しく見ていきます。
SageMaker Savings Plan
本リリースに合わせて、Savings Plan のページに以下が追加されました。
ページ名は「Machine Learning Savings Plans」となっており、 SageMaker Savings Plan という名称は正式に記載すると「Machine Learning Savings Plans for Amazon SageMaker」となるようです。
本名称から推測するにですが、Machine Learning Savings Plans for ??? と、別の ML サービスにも今後 Savings Plan が追加されるかもしれないですね。
Savings Plan のディスカウント対象となるファミリーは「全て」です。先にご紹介したリリースでは ml.t2, ml.t3, ml.m4, ml.m5, ml.m5d, ml.c4, ml.c5, ml.c5d, ml.c5n, ml.r5, ml.r5d, ml.inf1 and ml.g4dn
と記載があり、ここに「ml.p3」が含まれていませんが、以下の通り Pricing Page では対象となっています。
値引きとなるコンポーネントは以下の通りで、コンピュートリソースを利用する処理に適用されます。
- SageMaker Studio notebooks
- SageMaker On-Demand Notebooks
- SageMaker Processing
- SageMaker Training
- SageMaker Real-Time Inference
- SageMaker Data Wrangler
- SageMaker Batch Transform
値引率
東京リージョンにおいて、値引率は最大効果となる「3年×全前払い」の場合で43%から55%程度でした。効果が最低になる「1年×前払いなし」の場合は、17%から28%程度でした。
ml.m5.large の Training を例にとって全6パターンの組み合わせでご紹介します。
ml.m5.large における Training 値引率の比較
リージョンは全て東京リージョンとなります。
期間 | 支払い | 値引率 | 値引き後の額/h |
---|---|---|---|
オンデマンド | オンデマンド | 0% | $0.1490 |
1年 | 前払いなし | 20% | $0.1188 |
1年 | 一部前払い | 23% | $0.1140 |
1年 | 全前払い | 25% | $0.1116 |
3年 | 前払いなし | 42% | $0.0864 |
3年 | 一部前払い | 46% | $0.0804 |
3年 | 全前払い | 48% | $0.0780 |
期間が 1年 か 3年 かで効果が大きく異なっており(およそ倍の値引率)、支払いオプションの差は 2% から 4% 程度の差となります。
Savings Plan 比較表
以下に、以前公開しましたブログの比較表を改変し、Savings Plan のみの比較表としました。Reserved Instance を含めた比較表は以下をご参照ください。
サービス名 | Savings Plan | ||
種類(type or class) | Compute | EC2 Instance | SageMaker |
割引率 | 最大 66% | 最大 72% | 最大 64% |
コミット期間の種類 | 1 年間(24h×365d) もしくは 3年間(24h×365d×3y) の期間指定 | ||
支払いオプション | 「全額前払い、一部前払い、前払いなし」 から1つを選択 | ||
Fargate への適用(ECS, EKS) | 〇 | × | |
Lambda への適用 | 〇 | × | |
SageMaker への適用 | × | 〇 | |
全Regionに自動適用 | 〇 | × 指定したRegionのみの割引 | 〇 |
全Instance Familyに自動適用 | 〇 | × 指定したInstance Familyのみの割引 | 〇 |
全Instance Typeに自動適用 | 〇 | ||
全Tenancyに自動適用 | 〇 | - Tenancy の概念なし | |
全OS(platform)に自動適用 | 〇 | - OS(platform) の概念なし | |
キャパシティ予約の機能提供 | × 「オンデマンドキャパシティ予約」で対応可能 | × キャパシティ予約は提供されない | |
AWS アカウント間の共有無効化 | 〇 可能(SPとRIで共通の設定項目) | ||
購入後の交換機能の提供 | × |
今回の SageMaker Savings Plan は SageMaker 専用の Savings Plan です。つまり Compute Savings Plan の対象範囲が増えたわけではありません。SageMaker の Savings Plan が出たので自動的に Compute Savings Plan で割引される対象範囲に含まれるようになったのだろうか、と思ったのですがそんなことはありませんでした。ここは少し残念ですね。
なお、SageMaker Savings Plan は Compute Savings Plan のように、対象範囲は全リージョン&全インスタンスファミリーとなっています。
購入権限について
本リリースは既存の Savings Plan の延長線上となるリリースです。そのため、既に Savings Plan を購入する権限をお持ちの方であれば購入が可能となります。IAM の権限については以下のブログをご参考ください。
また CLI については以下のリファレンスをご参考ください。
Savings Plan を CLI で購入する方法
Savings Plan を CLI で購入する方法が少々ややこしいので補足します。
create-savings-plan
が購入を行うコマンドです。ですが、このオプションには --savings-plan-offering-id <value>
が必須になっています。果たして savings-plan-offering-id とはなんでしょうか?
この ID は describe-savings-plans-offerings
を用いて検索が可能です。実際にやってみますと、非常に多くの結果が返ってきます。これは Savings Plan が購入オプションやリージョン等で組み合わせができる「全てのパターン」において、それぞれに AWS 側が予め ID を割り振っており「その組み合わせ1つにつき1つの Offering ID」が設定されています。これを参照する CLI であるため、引数なく実行すると全ての組み合わせが表示され、多くの結果が出力されることになります。
参考として、以下のコマンドを実行します。--plan-types
を SageMaker 、--durations
を 31536000 秒(つまり1年)として結果を絞りこんでいます。
aws savingsplans describe-savings-plans-offerings --plan-types SageMaker --durations 31536000
この結果、以下の通り3つの結果が返却されます。
{ "searchResults": [ { "offeringId": "2b6416b4-2c2a-4a91-95f9-16b50a8f7922", "productTypes": [ "SageMaker" ], "planType": "SageMaker", "description": "1 year Partial Upfront SageMaker Savings Plan", "paymentOption": "Partial Upfront", "durationSeconds": 31536000, "currency": "USD", "serviceCode": "MachineLearningSavingsPlans", "usageType": "SageMakerSP:1yrPartialUpfront", "operation": "", "properties": [] }, { "offeringId": "173d28f3-4908-4e45-9818-0738cafc0d87", "productTypes": [ "SageMaker" ], "planType": "SageMaker", "description": "1 year All Upfront SageMaker Savings Plan", "paymentOption": "All Upfront", "durationSeconds": 31536000, "currency": "USD", "serviceCode": "MachineLearningSavingsPlans", "usageType": "SageMakerSP:1yrAllUpfront", "operation": "", "properties": [] }, { "offeringId": "398c54e8-1092-4af4-b1e1-e1b26cf436e0", "productTypes": [ "SageMaker" ], "planType": "SageMaker", "description": "1 year No Upfront SageMaker Savings Plan", "paymentOption": "No Upfront", "durationSeconds": 31536000, "currency": "USD", "serviceCode": "MachineLearningSavingsPlans", "usageType": "SageMakerSP:1yrNoUpfront", "operation": "", "properties": [] } ], "nextToken": "11111114011AKzQytAtFaov5PsvKzCJGLUvEkNQov4zLXgtXcjmjc1iDC8aRAj2K5dPg7LnVV" }
これは paymentOption
を指定していないためで、支払いオプション3つそれぞれが返却されたためです。この結果に記載がある offeringId
を購入時には利用する必要があります。
購入例
では実際にマネジメントコンソールにて購入オペレーションを行ってみます。
推奨(Recommendations)を確認する
SageMaker Savings Plan にも推奨が存在します。
残念ながら、SWX社内検証アカウントでは SageMaker が実行されておらず推奨は「なし」となっていました。つまり SageMaker Savings Plan を購入することによるメリットはありません。
今回は購入例ご紹介のためこのまま進めます。
SageMaker Savings Plan をカートに入れる
Purchase Savings Plans から指定した Savings Plan をカートに入れます。
メニューとして、画面右端に3つ目の Savings Plan として SageMaker Savings Plans
が表示されていため、これを選択します。
Term、Hourly commitment、Payment option の3つに任意の値を指定します。Region や Family を選択する必要はなく Compute Savings Plan と同じ項目となっています。
オプションとして開始日時を設定します。今回は未来日付を設定しました。
設定が完了しましたら、「Add to cart」して次に進みます。
SageMaker Savings Plan を購入する
カートに入った Savings Plan を確認し、「Submit order」で購入を行います。カートの時点でも「Set start date」で開始日時を指定することが可能です。
今回はこのまま「Submit order」としました。「Order submitted successfully」と出れば完了です。
SageMaker Savings Plan をキャンセル(削除)する
以下のブログでもご紹介した通り、開始が未来日付となっている Queued Savings Plan
はキャンセル(削除)が可能です。
オーダー済の SageMaker Savings Plan を削除します。
上図の Savings Plan が予約されている SageMaker Savings Plan で、まだ Active となっていません。これを選択して Action から「Delete queued Savings Plans」を押下します。
無事に予約した SageMaker Savings Plan が削除されました。
まとめ
今回のブログでは 3つ目の Savings Plan である Machine Learning Savings Plans for Amazon SageMaker をご紹介させて頂きました。
SageMaker Savings Plan を活用頂くことで、SageMaker の利用料を大きく引き下げることができそうです。SageMaker を活用されているお客様は是非ご検討ください。
なお、Compute Savings Plan の対象に SageMaker が追加されたわけではなく、CloudFront Security Savings Bundle のように個別の Savings Plan となっている点には念のためご留意ください。
サービス別のコスト削減オプション
最後にサービス別のコスト削減オプションをまとめてみました。
サービス | 削減オプション | コメント |
---|---|---|
EC2 | Reserved Instance (RI) Compute Savings Plan EC2 Instance Savings Plan |
最も種類が多い |
RDS | Reserved DB Instance | RI に相当 |
Redshift | Reserved Node | RI に相当 |
ElastiCache | Reserved Cache Node | RI に相当 |
Elasticsearch Service | Reserved Instance | |
DynamoDB | Reserved Capacity | Provisioned throughput に対する割引 |
Fargate | Compute Savings Plan | |
Lambda | Compute Savings Plan | |
CloudFront | CloudFront Security Savings Bundle | 時間単位ではなく月額単位でコミット |
AWS WAF | CloudFront Security Savings Bundle | AWS WAF with CloudFront に限る |
SageMaker | SageMaker Savings Plan | SageMaker 専用の Savings Plan |
それでは、またお会いしましょう。
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。