SRE部 佐竹です。
本日は「Amazon CloudFront Security Savings Bundle」についてご案内します。
はじめに
Amazon CloudFront Security Savings Bundle が2021年2月5日にリリースされました。
まずはざっくりと本機能をご説明しますと「CloudFront の Savings Plan」と言える機能です。Savings Plan や Reserved Instance と同様に「前もって利用料を支払う」代わりに AWS の利用料が割引きされるというものです。
現時点で日本語のページはありませんが、以下が公式ドキュメントになっています。
CloudFront Security Savings Bundle
本機能の仕様を公式ドキュメントの英文を和訳しながらご説明します。
- Savings Bundle を購⼊するには、CloudFront に⼀定の⽉額(1か⽉あたりの利用ドル額)を1年間⽀払うことを約束します。Savings Bundle を購⼊したその月から12か⽉間、毎⽉コミットした⾦額が請求されます。請求期間の最終⽇(つまり月末)にSavings Bundleを購⼊した場合、料⾦とクレジットは次の請求期間から始まります。
- CloudFront は、コミットメントと引き換えに、1年間にわたり12回(12カ月の1カ月毎)の請求期間それぞれで、AWS利用料にクレジットを⾃動的に適⽤します。これらのクレジットの価値は、コミットされた⽀払い額を超えているため、CloudFrontのコミットされた⾦額の標準価格が最⼤30%割引になります。これらのクレジットは、AWS請求書の CloudFront 料⾦を⾃動的に相殺します。
- CloudFront クレジットに加え AWS WAF を使⽤するためのリクエストごとの料⾦を相殺するためのクレジットを取得します。AWS WAFクレジットの⾦額は、毎⽉の CloudFront コミットメントの⾦額の最⼤10%です。
ポイント
- コミット期間は月単位で12カ月(1年間)
- CloudFront の割引きは最大30%
- AWS WAF の利用料の割引きはコミット額の最大10%
なお記載がありませんが、CloudFront Security Savings Bundle には Region の概念はないため、全 Region の CloudFront で効果を発揮します。
補足: クレジットとは
AWS でいう Credit/クレジット というのは、割引券のようなイメージです。例えば EC2 を月5万円使うと2万円キャッシュバックしますよ、というような場合、クレジットとして -20,000円 がAWS利用料に追加されます。これにより、AWS利用料は5万円から3万円に減額されます。このような割引のための権利がクレジットという言葉で記載されています。
今回の CloudFront Security Savings Bundle では、月額7万円の Savings Bundle をコミットする場合は、月額10万円のクレジットがもらえるということになります。いわば、7万円/月の先支払いで10万円分/月の商品券を貰ったようなものです。この10万円分の商品券が CloudFront の利用料と相殺されるため CloudFront の利用料は先払いの7万円に落ち着くことになり、結果として「ディスカウントがされた」ことになります。
既存の Savings Plan との比較
Savings Plan も類似のディスカウントサービスとなっているため「似ている機能」ではあるのですが、CloudFront の場合は「月額」でのクレジットとなっています。Savings Plan は「1時間単位」となっています。そのため、Savings Plan では「使い切れなかったクレジット」は毎時間失効して消えますが、CloudFront Security Savings Bundle は毎月での処理のため「その月内に使い切るクレジット」になります。
また本サービスでは現状「1年間のコミット期間(Term)」しか存在しておらず、これは3年契約がある Savings Plan や Reserved Instance とは異なっています。代わりに「Auto renew(後述)」が実装されています。
マネジメントコンソールを確認する
① Monthly commitment payment
毎月支払うコミット金額です。これは「ディスカウントされた後」の金額をコミットします。
例として $700 /month を記載しています。これは $1,000 /month の利用を想定しています。
② Purchase summary
Monthly payment は Monthly commitment payment と同額になります。
Total cost over term は年間の支払い額のため $700 * 12 = $8,400 /year
となります。
③ Monthly CloudFront charges covered
この額が先ほど記載した「クレジット」になります。計算式としては「Monthly commitment payment ÷ 0.3」 がその値になります。これにより $1,000 の3割引きである $700 が支払うコストになります。
④ Monthly WAF charges covered
ここが少しややこしいのですが、WAFのディスカウントについては「コミット額の10%」なるため、$70 /month になっています。この権利は AWS WAF を利用していない場合は利用されず毎月失効します。
早見表
紹介した $1,000 を想定月額とした場合の Savings Bundle コミット例とディスカウント額を以下にまとめました。
サービス | 想定月額 | コミット月額 | ディスカウント | 保有クレジット | 割引き額 |
---|---|---|---|---|---|
CloudFront | $1,000 | $700 | 通常の月額から30%割引 (コミット月額÷0.7)のクレジット付与 |
$1,000 | 最大$300 |
AWS WAF | - | - | コミット月額の10%クレジット付与 | $70 | 最大$70 |
⑤ Total estimated savings over term
1年間で削減される最大割引き額が表示されます。 $4,440 /year となっていますがこれは $300 + $70 = $370
を12カ月分で計算した額 $370 * 12 = $4,440
となっています。
Auto renew
Security Savings Bundle には購入時に Auto renew という設定があります。これを有効にしている場合、毎年自動的にクレジット購入のオペレーションが実行されます。
IAM の権限を適切に付与する
ドキュメントによると以下の権限が必要になります。
- cloudfront:CreateSavingsPlan
- cloudfront:ListSavingsPlans
- cloudfront:UpdateSavingsPlan
しかし、これらを付与しても権限が適切ではなく、以下のエラーが発生する可能性があります。
User: arn:aws:sts::123456789123:assumed-role/iam-role/satake@serverworks.co.jp is not authorized to perform: cloudfront:ListRateCards on resource: arn:aws:cloudfront:us-east-1:123456789123:/v1/rate-cards
というエラーが発生する場合は cloudfront:ListRateCards を付与ください。
- cloudfront:CreateSavingsPlan
- cloudfront:ListSavingsPlans
- cloudfront:UpdateSavingsPlan
- cloudfront:ListRateCards
この4つが現状必要と考えられる IAM ポリシーになります。
この名称からも、Security Savings Bundle は CloudFront 版 Savings Plan だと言えるでしょう。
2021年2月18日追記 IAM ポリシー追加
さらに2つ必要となることがわかりました。最下部に2つ追加して計6つのポリシーとなっております。
- cloudfront:CreateSavingsPlan
- cloudfront:ListSavingsPlans
- cloudfront:UpdateSavingsPlan
- cloudfront:ListRateCards
- cloudfront:ListUsages
- cloudfront:GetSavingsPlan
FAQ
Q. クレジットはすべての CloudFront 利用料に適⽤されますか︖
はい。クレジットは、データ転送料⾦、リクエスト料⾦、Lambda@Edge 料⾦を含むすべての CloudFront 料⾦に適⽤されます。
Q. Consolidated billing で CloudFront Security Savings Bundle を使⽤できますか︖
はい、クレジット共有が有効になっている限り Savings Bundle は、管理アカウントで購⼊します。クレジットは最初に Payer アカウントで発⽣した CloudFront 料⾦に適⽤され、次にメンバーアカウントで発⽣した CloudFront 料⾦に適⽤されます。
Q. 特定の請求期間にすべてのクレジットを使⽤しない場合はどうなりますか︖
クレジットは請求期間(月単位)ごとにAWSの請求に適⽤され、その請求期間中に全てを使⽤しきる必要があります。請求期間の終了時にクレジットが未使⽤のままになっている場合、クレジットは期限切れになります。クレジットは次の請求期間には繰り越されません。
Q. CloudFront または AWS WAF の使⽤量がクレジット量を超えた場合はどうなりますか︖
CloudFront の使⽤量がその請求期間に利⽤可能なクレジットを超える場合、CloudFront 標準料⾦で差額が請求されます。
今回の例であれば、$1,200 /month を利用した場合は $200 がその月に追加請求されます。
Q. Credit は Organization (組織)で共有は可能ですか?
はい、可能です。購入したアカウントで使い切られなかった CloudFront Security Savings Bundle は、組織内の別のアカウントで消費されます。
ただし、注意点として「クレジット共有の無効化」がされていないこと、即ち「Disable credit sharing」が「設定画面」でチェックされていないことが条件となります。
Savings Bundle は Credit によるディスカウントオプションであるため、RI/SP の共有無効化設定 (RI and Savings Plans discount sharing) の設定とは別の設定となります。詳細は以下の公式ドキュメントをご確認ください。
まとめ
今回の記事では Amazon CloudFront を3割引きで利用可能となる Security Savings Bundle がリリースされたことをお知らせしました。
記事の中では具体的に $1,000 /month の利用料がある場合にどの程度のディスカウントが期待されるのか表を用いて説明させて頂きました。
また Savings Bundle を実際に購入したブログを以下にご紹介します。合わせてご参考ください。
ではまたお会いしましょう。
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。