このページの本文へ

コスパ最高の「Amazon Glacier」は本当にお徳か?実際に計算してみた

2016年06月07日 11時00分更新

  • この記事をはてなブックマークに追加
本文印刷

以前「非エンジニアでも分かる!AWSの学び方まとめ」でも取り上げましたが、「クラウドと言えばAWS」、そんな状況になっています。

AWSにはたくさんのサービスがありますが、今回は「Amazon Glacier(グレイシャー)」について紹介します。

Amzon Glacierとは?

Amazon Glacierは、めったに取り出すことのないデータを長期間保存するのに適したストレージサービスです。

データの取出しに3~5時間かかりますが、同じストレージサービスAmazon S3と同じ堅牢性を持ち、利用料金もきわめて安価(1Gあたり1円、S3の1/3程度)なことが特徴です。

Amazonではこうしたデータの取出しに時間のかかるストレージサービスを「コールドストレージ」と呼んでいて、解凍するまで使えないというところがサービス名(グレイシャー:氷河)の由来になっているそうです。

そんなAmazon Glacierについて調査した結果と使い方の一例を紹介します。

S3とGlacierとの比較

同じストレージサービスのS3と機能、料金などの比較をまとめた表は下記の通りです(2016.01時点)。

【Amazon Glacierのメリット】

  • S3と同様に堅牢性を備えており、S3より低価格で利用できる

【Amazon Glacierのデメリット】

  • Glacierからのデータの取出しに時間がかかる
  • ファイルのアップロードなどにはAWS SDKなどのツールを使用したプログラミングの必要がある
  • ファイルアップロード時にアーカイブIDが付与される

ファイルの取出し、削除の際はアーカイブIDを指定する必要があるため、ファイル名とアーカイブIDの紐付を管理しておかなければいけません(紐付を怠るとファイルの削除が非常に面倒くさくなるので注意!!)。

料金が安い分制約も多く、利用用途も限られているため、Glacier単体では利用しづらいことが分かります。そこで、Amazon S3経由でGlacierを有効活用する方法について紹介します。

S3からGlacierへ自動バックアップ機能を使ってみた

S3のライフサイクルルールを設定し、「S3上のファイルをXX日経過後にGlacierへ移動させる」というような自動バックアップ機能を実際に使ってみました。

ライフサイクルについては、ココを参照してくださ(「知ってるよ!」という人はスキップしてください)。

設定

テスト用S3バケット名:tech-aws-test
テスト用ファイル名:dummy.file

  1. テスト用S3バケットを作成します。作成したバケットのプロパティからライフサイクルの項目を表示し「ルールの追加」をクリックします。
  2. ダイアログからライフサイクルルールを設定します。今回はパケット全体にルールを設定するため「バケット全体」を選択します。「ルールの設定」をクリックし次のステップへ進みます。
    ※S3バケット内のフォルダにルールを設定する場合は「プレフィックス」を選択します
  3. 「Glacierストレージクラスタへのアーカイブ」にチェックを入れ、S3にアップしたファイルを何日後に移動するかを設定します。今回は最小値である1日後で設定します。「確認」をクリックし次のステップへ進みます。
    ※「完全に削除」をチェックすれば、指定した日数後にファイルを自動削除できます。「Glacierストレージクラスタへのアーカイブ」と組み合わせれば、「〇〇日経過後にS3上のファイルをGlacierへ移動し、××日経過後に自動削除する」といったよりコストを抑えた設定が可能です。
  4. ルール名を入力し、「ルールの作成と有効化」をクリックします。
  5. S3のプロパティからライフサイクルの項目を表示し、ライフサイクルルールが作成され有効になっていることを確認します。
    ※チェックボックスにチェックがついているとそのライフサイクルルールが有効という意味です。

ファイルのアップロード

設定したS3バケットにGlacierへ移行用のテストファイルをアップロードします。アップロード完了時点ではストレージクラスは「スタンダード」と表示されますが、1日以上経過すると「Glacier」に変化します。

ファイルのダウンロード

「Glacier」の状態で普通にファイルをダウンロードしようとすると下記のようにエラーとなります。

ファイルをダウンロードするには、下記の事前申請が必要となります。

  1. テストファイルにチェックを入れ、アクションから「復元の開始」をクリックします。
  2. ダイアログからダウンロード可能な期間を指定します。今回は7日間で設定します。「OK」をクリックすれば、ダウンロード申請完了です。
  3. ダウンロード可能状態になる、3~5時間後まで待機します。テストファイルのプロパティの詳細項目の表示が「GMTまで復元されました」と表示されるとダウンロード可能になります。

まとめとデータ復元料金に関する注意点

S3経由でGlacierを利用する場合、ストレージクラスに表示された名称で格納したファイルの状態を識別します。

  「スタンダード」⇒ 即時ダウンロード可能だが料金は高い。
  「Glacier」    ⇒ ダウンロードの申請後3~5時間かかるがその分、料金は安い。

気になるデータ復元料金についてですが、Amazon S3のよくある質問にも記載があるように、Glacierから無料で取り出せるデータ量には上限が決まっています

無料で復元できるのは、1か月当たり、ユーザーの月平均アーカイブ量の5%まで(1日ごとに案分)です。

つまり、75TBのデータをGlaicerで保管している場合は、

  75TB×5%÷30日=125GB/日

と、1日当たり無料復元上限は125GBとなります。

復元料金については「ピーク復元レート」に基づいて計算されます。

ピーク復元レートとは、どのくらいのサイズのデータを何時間で復元したかの割合のことです。つまり、75TBのデータから、140GBを4時間で復元する場合は、

  140GB÷4時間=35GB/時間

と、ピーク復元レートは35GB/時間となります。

140GBを4時間で復元する場合の1時間あたりの無料復元上限は、

  125GB÷4時間=32GB/時間

と、1時間あたりの無料復元上限は32GB/時間となります。

請求可能なピーク復元レートを計算します。

  35GB/時間–32GB/時間=3GB/時間

1か月の支払い額を計算するには、「請求可能なピーク復元レート(3GB/時間)」と「復元料金(0.01USD/GB)」と「1か月の時間数(720時間)」を掛けます。

ピンとこないので、復元料金の計算方法について記載します。

  3GB×24時間×30日×0.0114USD/GB=2955円
  ※1USD=120円

計算式が長くなってしまいましたが、75TBのデータから140GBを4時間で復元した場合の復元料金はおおよそ2955円となります。

Glacierから大量のデータを短時間でダウンロードする際には注意が必要!」ということがわかりますね。とはいえ、計算方法をしっかりと把握していればGlacierは大変魅力的なサービスです。ご利用の際は計画的に!

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています