HDE BLOG

コードもサーバも、雲の上

Amazon Glacierでクラウド破産しないために

おはこんばんちは!! 尾藤 a.k.a. BTO です。

HDEのメールアーカイブシステムでは、月間1億6000万通ものメールを処理しています。 それだけのメールを処理するので、メールのデータ量も大変なものになります。

一方で、過去のメールに関しては、それほど頻繁にアクセスするものでもありませんので、できるだけコストを抑えたい。 そこでAmazon Glacierを使ってみてはどうかと考えたのですが、詳しく調査してみると、気をつけないと破産をしかねない危険なものでもあるのが分かりましたので、今回はそれを書きたいと思います。

Amazon Glacier とは

まずは Amazon Glacier についてご紹介しましょう。 Amazon Galcier は平たく言うと、安価なストレージサービスです。安価である代わりに、取り出すのに3〜5時間かかります。

Glacier と S3 の料金は次のようになります。

ストレージ 価格
S3 $0.0330 /GB
Glacier $0.0114 /GB

Glacier の方が S3 と比較して、大体 1/3 ぐらいの金額になっています。 これは安い!!

Glacierの復元料金は無料!!

しかも、なんと、Glacierの復元料金は無料なんです!!

料金
UPLOAD/RETRIEVAL リクエスト $0.0571 : 1,000 リクエストあたり
LISTVAULTS、GETJOBOUTPUT、DELETE†、およびその他すべてのリクエスト 無料
データ取り出し 無料

ん?

Glacier は、データ取り出しがあまり行われず、データが長期間保存されることを想定して設計されています。無料で取り出せるのは、1 か月あたり、お客様の月平均保管量の 5% まで(1 日ごとに案分)です。1 か月間に取り出すデータの量がこれを上回る場合は、取り出し料金(0.0114 USD/GB から)をいただきます。詳細情報を見る さらに、90 日経過前に削除されたアイテムについては、0.0342 USD/GB の案分料金をいただきます。詳細情報を見る

要は5%までなら無料のようですが、実はこれが大きな落とし穴なんです!!

復元料金はピーク復元レートに基づいて計算する

Clacier ではピーク時の復元レートで料金を計算します。 たった1時間でも大量にデータを取り出すと、それを1ヶ月使ったものとみなして課金されます。

これだけだとよく分からないと思うので、具体的な例をあげます。

例: 100GBのファイルを1個復元した

5%部分は面倒なので、無視できるぐらい小さいものと仮定する。

  • 4時間で復元
    • 100GB / 4時間 = 25GB/時
  • 復元料金は毎月のピーク復元レートに基づいて計算
    • 25GB/時 * 24時間 * 30日 * ¥1.14 = ¥20,520/月

えっ? 20,520円? そう、Glacierでは、5%を超過した分にだけ課金されるのではなくて、ピーク時のレートを元に1ヶ月使用したと仮定して料金が決まります。 これを表したのが、次の図です。

f:id:masatobito:20150130145051p:plain

ピーク時のレートが25GB/時の場合は、その月にダウンロードしたデータ量が100GBだろうが、18,000GBだろうが料金は同じ20,520円です。 なぜならピーク時の復元レートで、その月の料金が決まるからです。

身に覚えのない請求書

実際に弊社が受け取った請求書がこちらです。

f:id:masatobito:20150130150236p:plain

ここに書いているのは、「$181で最大15TB復元できる」ということであって、「あなたは15TB復元しました」ということではありません。 実際に復元したのは90GBぐらいです。

もし(間違って)120TBを復元したら

  • 122880GB / 4時間 = 30720GB/時
  • 30720GB/時 * 24時間 * 30日 * ¥1.14 = 2521万円

2521万円!!!! 破産ですよ。破産!!

無料で復元できるのは1ヶ月あたり月平均保管量の5%まで(1日ごとに案分)

なので、ちゃんと平均的に復元していけばお金はかかりませんが、それを知らずに一気に復元してしまうと大変な金額がかかってしまいます。

例えば、120TBのデータを Glacier に保存していたとすると、5% は 6144GB になります。 これを1日ごとに案分すると 205GB になり、これが無料枠で復元できる1日での最大容量になります。 さらに24時間で割ると、8.5GB が1時間に無料で復元可能な最大容量になります。

  • 120TB * 5% = 6144GB
  • 6144GB / 30日 = 205GB/日
  • 205GB / 24時間 = 8.5GB/時

f:id:masatobito:20150130151653p:plain

ファイルサイズに注意

Glacier に保存する場合は、ファイルサイズに注意しないといけません。1つ1つのファイルサイズが大きくなり過ぎると、ピーク復元レートが大きくなって、身に覚えのない請求がきます。

  • 例: 5TBのファイル1個 (1.25TB/時): 105万円

一方で、ファイルサイズを小さくしすぎると、リクエスト料金が高額になってしまいます。

  • 例) 1億個のファイルをPUT
    • Standard Storage: 47,000円
    • Glacier Storage: 571,000円

どれくらいのファイルサイズが適切かは、全体の容量によって決まってきます。

ご利用は計画的に

とはいえ、こういった計算方法をしっかり把握しておけば、Glacier は大変魅力的なサービスです。 しっかりと計画を持って利用しましょう。

結論

HDEでは勉強会スペースの貸し出しをしております。 ぜひご利用ください。

追記: 多い日も安心

中の人に教えてもらいましたが、ポリシーを設定すると、多い日も安心です!!

Amazon Web Services ブログ: Amazon Glacierでのデータリトリーブポリシーと監査ログ

追記: 元となった資料

本記事は、以前HDEの勉強会で発表した内容をブログの記事としておこしたものです。