3つ目の Savings Plan となる SageMaker Savings Plans がリリースされました

記事タイトルとURLをコピーする

CI部 佐竹です。 本日は 3つ目の Savings Plan こと Machine Learning Savings Plans for Amazon SageMaker をご紹介します。

はじめに

SageMaker Savings Plan は日本時間で 4月21日(水) にリリースがされました。以下が AWS 公式のリリースページとなります。

aws.amazon.com

また、SageMaker Savings Plan のリリースと合わせて Amazon SageMaker 自体の値下げも発表されています。これはオンデマンドの利用料が最大14%値引きされるもので、4月19日から有効となっています。

今回は、SageMaker Savings Plan について詳しく見ていきます。

SageMaker Savings Plan

本リリースに合わせて、Savings Plan のページに以下が追加されました。

aws.amazon.com

ページ名は「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 では対象となっています。

ml.p3 も対象となっている

値引きとなるコンポーネントは以下の通りで、コンピュートリソースを利用する処理に適用されます。

  • 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 を含めた比較表は以下をご参照ください。

blog.serverworks.co.jp

サービス名 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 の権限については以下のブログをご参考ください。

blog.serverworks.co.jp

また CLI については以下のリファレンスをご参考ください。

awscli.amazonaws.com

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 はキャンセル(削除)が可能です。

blog.serverworks.co.jp

オーダー済の 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 となっている点には念のためご留意ください。

blog.serverworks.co.jp

サービス別のコスト削減オプション

最後にサービス別のコスト削減オプションをまとめてみました。

サービス 削減オプション コメント
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 Japan AWS Top Engineers/2020-2023 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。