APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

S3 StandardとGlacierの料金比較

目次

はじめに

こんにちは、株式会社エーピーコミュニケーションズ、クラウド事業部の松尾です。
本記事ではAmazon S3のクラスの違いによる料金を比較してみます。
S3 Standardは取り出しが速いが(S3の中では)コストが高い、S3 Glacierは取り出しが遅いがコストが低い、がざっくりな特徴ですが、では10年間保存するとして、1年後にStandardクラスからGlacierクラスに移動した場合はどうでしょうか。
クラスの移動には料金がかかるので、条件によってはGlacierに移動した方が高くなるのでは?と疑問に思い比較してみました。
クラスはS3 StandardとS3 Glacier Flexible Retrievalで比較していきます。


ゴール

本記事でお伝えすることは次の内容です。

  • S3 StandardとS3 Glacier Flexible Retrieval (旧 S3 Glacier)の料金の違い
  • 疑似シナリオでの具体的な差額


いきなり結果

忙しい方向けに結果から。

  • S3 Glacier Flexible Retrieval に10年保存が最も低コスト。
  • S3 Standardに1年、その後S3 Glacier Flexible Retrievalに9年保存が2番目。
  • S3 Standardに10年保存が3番目。
  • Glacierのみを1とすると、StandardとGlacier混在が1.1倍、Standardのみが1.7倍の料金。
  • 順番は予想通りだがGlacier:Standardで2倍も差が無かったのが意外。


想定シナリオと条件

シナリオはバックアップ用途を想定して次の条件にしました。

  • 1ファイルサイズは1MB
  • ファイル数は1000万個
  • データ量は10TB(ファイルサイズ*ファイル数)
  • リージョンは東京
  • 年に1回、全データを取り出す
  • Glacier の場合、取り出しは「標準」取り出しで取り出す


計算してみる

次の3パターンでそれぞれ計算してみます。

  1. S3 Standardに10年間保存
  2. S3 Glacier Flexible Retrieval に10年間保存
  3. S3 Standardに1年間保存、その後S3 Glacier Flexible Retrieval に移動し9年間保存

Amazon S3の料金をみてみると中々複雑だったので、図にしないと理解出来ない自分向けに各パターンで発生する料金のポイントを図解しました。


【パターン1】S3 Standardに10年間保存

まずは発生する料金の項目を整理するために図解します。
東京本社から東京リージョンのS3へデータのアップロードと保管料金、取り出しではGETリクエストと転送料金が発生する、という内容です。S3 Standardが一番シンプルです。

S3 Standardはまだシンプル...

PUTリクエストとGETリクエストの料金はこちら。

S3 標準の項目

  • PUTリクエスト
    初回のデータ配置
    100万ファイル÷0.0047USD/1000リクエスト=47USD

  • GETリクエスト
    年に1回、全データを取り出す
    100万ファイル÷0.00037USD/1000リクエスト=3.7USD

    10年で10回取り出す
    3.7USD*10年=37 USD

  • データ転送料金
    データ転送料金はこちら。

    今回は「最初の10TB/月」の料金

    取り出したデータの転送料金
    10TB×0.114USD(GB)=1140USD

    10年の料金
    1140USD×10年=11400USD

  • 保管料金
    保管料金はこちら。

    今回は「最初の50TB/月」の料金

    1か月の料金
    10TB×0.025USD(GB)=250USD

    1年の料金
    250USD×12か月=3,000USD

    10年の料金
    3,000USD×10年=30,000USD

  • 10年間の総額
    47USD+37USD+11400USD+30,000USD=41,484USD


【パターン2】S3 Glacier Flexible Retrieval に10年間保存

Glacierになると課金対象(赤文字)が一気に増えます

  • PUTリクエスト
    初回のデータ配置
    100万ファイル÷0.03426USD/1000リクエスト=342.6USD

  • GETリクエスト
    年に1回、全データを取り出す
    100万ファイル÷0.00037USD/1000リクエスト=3.7USD

    10年で10回取り出す
    3.7USD*10年=37 USD

  • データ転送料金
    取り出したデータの転送料金
    10TB×0.114USD(GB)=1140USD

    10年で10回取り出す
    1140USD*10年=11400USD

  • 保管料金
    保管料金はこちら。

    今回は「最初の50TB/月」の料金

    1か月の料金
    10TB×0.0045USD(GB)=45USD

    1年の料金
    45USD×12か月=540USD

    10年の料金
    540USD×10年=5,400USD

  • データ取り出しリクエスト
    一部のクラスではデータ取り出し時に「データ取り出しリクエスト」と「データ取り出し」の料金がかかってきます。詳細はS3料金ページを参照下さい。

    S3 Standardでは「該当なし」だが

今回のGlacierでは該当する

タイプが「迅速」「標準」「大容量」とあります。
これは取り出しにかかる時間が短いほど料金が高くなる仕組みで、要件に応じて選択するのが良いかと思います。
詳しくはこちら。
docs.aws.amazon.com

年に1回、全データを取り出す
100万ファイル÷0.0571USD/1000リクエスト=571USD

10年で10回取り出す
571USD*10年=5710USD

  • データ取り出し(GB)
    こちらは取り出したデータに応じて料金がかかってくるものです。
    年に1回、全データを取り出す
    10TB÷0.011USD(GB)=110USD

    10年で10回取り出す
    110USD*10年=1100USD

  • オブジェクトのユーザー定義名とメタデータ
    料金ページにGlacier Flexible Retrievalでは追加でメタデータが付与されるとあります。

*** S3 Glacier Flexible Retrieval と S3 Glacier Deep Archive ストレージクラスでは、適切なストレージクラス料金が課される S3 Glacier のインデックスとメタデータに対して、オブジェクトあたり 32 KB のデータがさらに必要となります。Amazon S3 では、S3 Glacier Flexible Retrieval と S3 Glacier Deep Archive にアーカイブされるオブジェクトのユーザー定義名とメタデータを保存して維持するために、オブジェクトごとに 8 KB が必要です。 ・・・中略・・・ S3 Glacier Flexible Retrieval または S3 Glacier Deep Archive に保存されている各オブジェクトの場合、Amazon S3 はメタデータに対する課金可能な 40 KB のオーバーヘッドを追加し、それは、S3 標準レートで請求される 8 KB と S3 Glacier Flexible Retrieval または S3 Deep Archive レートで請求される 32 KB から構成されます。

整理すると、S3標準のレートで1オブジェクトあたり8KBが追加、さらにS3 Glacier Flexible Retrieval のレートで1オブジェクトあたり32KBが追加されるということになります。

ユーザーデータとメタデータを付与
(8KB/1000000バイト)GB×100万ファイル×0.025USD(GB)=2USD

1年の料金
2USD×12か月=24USD

10年の料金
24USD×10年=240USD

  • オブジェクトのインデックスとメタデータ

インデックスとメタデータを付与
(32KB/1000000バイト)GB×100万ファイル×0.0045USD(GB)=1.44USD

1年の料金
1.44USD×12か月=17.28USD

10年の料金
17.28USD×10年=172.8USD

  • 10年間の総額
    342.6USD+37USD+11400USD+5,400USD+5710USD+1100USD+240USD+172.8USD=24402.4USD


【パターン3】S3 Standardに1年間保存、その後S3 Glacier Flexible Retrieval に移動し9年間保存

クラスの移行をすると「移行リクエスト」料金が発生します。

課金対象の項目は多い

S3 Standard1年分の料金

  • PUTリクエスト
    初回のデータ配置
    100万ファイル÷0.0047USD/1000リクエスト=47USD

  • GETリクエスト
    年に1回、全データを取り出す
    100万ファイル÷0.00037USD/1000リクエスト=3.7USD

  • データ転送料金
    取り出したデータの転送料金
    10TB×0.114USD(GB)=1140USD

  • 保管料金
    1か月の料金
    10TB×0.025USD(GB)=250USD

    1年の料金
    250USD×12か月=3,000USD

S3 Glacier Flexible Retrieval 9年分の料金

  • GETリクエスト
    年に1回、全データを取り出す
    100万ファイル÷0.00037USD/1000リクエスト=3.7USD

    9年で9回取り出す
    3.7USD*9年=33.3USD

  • データ転送料金
    取り出したデータの転送料金
    10TB×0.114USD(GB)=1140USD

    9年で9回取り出す
    1140USD*9年=10260USD

  • 保管料金
    1か月の料金
    10TB×0.0045USD(GB)=45USD

    1年の料金
    45USD×12か月=540USD

    9年分の料金
    540USD×9年=4860USD

  • データ取り出しリクエスト
    年に1回、全データを取り出す
    100万ファイル÷0.0571USD/1000リクエスト=571USD

    9年で9回取り出す
    571USD*9年=5139USD

  • データ取り出し(GB)
    年に1回、全データを取り出す
    10TB÷0.011USD(GB)=110USD

    9年で9回取り出す
    110USD*9年=990USD

  • オブジェクトのユーザー定義名とメタデータ
    ユーザーデータとメタデータを付与
    (8KB/1000000バイト)GB×100万ファイル×0.025USD(GB)=2USD

    1年の料金
    2USD×12か月=24USD

    9年の料金
    24USD×9年=216USD

  • オブジェクトのインデックスとメタデータ
    インデックスとメタデータを付与
    (32KB/1000000バイト)GB×100万ファイル×0.0045USD(GB)=1.44USD

    1年の料金
    1.44USD×12か月=17.28USD

    9年の料金
    17.28USD×9年=155.52USD

  • ライフサイクル移行リクエスト 今回のような、「S3 Standardから1年経過後にGlacier Flexible Retrievalへライフサイクルルールで移動する」場合、「ライフサイクル移行リクエスト」料金が発生します。

PUT、COPY、またはライフサイクルルールを使用してデータを S3 ストレージクラスに移動する場合、リクエストごとに取り込み料金が発生します。

ライフサイクル移行リクエスト
100万ファイル×0.03426USD/1000リクエスト=342.6USD

  • 10年間の総額
    S3 Standard料金
    47USD+3.7USD+1140USD+3,000USD=4190.7USD

S3 Glacier Flexible Retrieval
33.3USD+10260USD+4860USD+5139USD+990USD+216USD+155.52USD+342.6USD=21996.42USD

合計
4190.7USD+21996.42USD=26187.12USD


料金面での大きな違い

具体的な料金を比較してきましたが、共通する料金もあり、違いが分かりにくい部分もありました。
そこで2つのクラスの大まかな違いのみを纏めてみました。


赤枠部分、PUTリクエストについては、Glacier Flexible Retrievalの方が約7倍高い料金設定となっています。ただ、ファイルアップロードの時だけなので、全体に対する金額の比率としては小さくなります。
次に青枠部分、保管料金はStandardの方が約6倍高くなっています。
ここはデータがある限り発生する料金で、全体に対する金額の比率は高くなります。

最後に黄枠部分、Glacierだけに発生する料金です。
黄枠のうち、「データ取り出しリクエスト」と「データ取り出し」の比率が高く、取り出すデータ量や頻度が多いと、取り出しに関する料金はStandardよりも高くなる仕組みになっています。

S3 StandardとS3 Glacier Flexible Retrievalの料金を「保管料金」と「それ以外(=主にデータ取り出しにかかる料金)」の比率を比較してみます。

  • S3 Standard
    データ保管料金:3
    それ以外(主にデータ取り出しにかかる料金):1

  • S3 Glacier Flexible Retrieval
    データ保管料金:1
    それ以外(主にデータ取り出しにかかる料金):4

S3 Standardではデータ保管料金の比率が高く、Glacierでは取り出しの料金比率が高くなっていることが分かります。

ちなみに条件は最初にも記載してますが、抜粋すると次の内容です。

  • 保管するデータ量は10TB
  • 保管するのは10年間
  • 1年に1回、全データ10TBを取り出す


まとめ

想定シナリオをGlacier向きの条件にしたので、Glacierが一番効率良いだろうなと見てましたが、実際そうでした。
ただ、思っていたほどコスト削減にはならなかった印象です。 データ保存料金がS3 standardでは0.025USD/GB、S3 Glacier Flexible Retrievalでは0.0045USD/GBと、約5.6倍(0.025/0.0045=5.6)なため、何となく4,5倍は差がある気がしていたのですが、結果としては2倍程度でした。
ストレージの使い方(データの取り出し頻度やオブジェクト1つのサイズ、保管期間、総データ量など)によって変わりますが、データ保存料金以外の料金が思いのほか影響しているのが新たな発見でした。
データ取り出しにかかる料金がGlacierで発生しますが、今回のシナリオではその金額を差し引いてもGlacierに金額面でのメリットはあることが分かりました。(注:何度も書きますが使い方に依ります)


おわりに

私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp