話題の記事

Amazon S3のGlacierアーカイブ機能を活用する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

よく訓練されたアップル信者、都元です。話題は攫えないと分かりつつも、また小ネタいきます。

数ヶ月前のネタですが、Amazon S3において「自動的にGlacierにアーカイブする」という機能がリリースとなりました。Glacier単体では正直利用しづらかったものが、S3を介してGlacierを使えるようになったことで非常に使いやすいものになりました。とは言え、実際にこの機能を使った事がないと、使いどころのイメージも付けづらいと思います。

S3とGlacierのデータ保存コスト

s3glacier

実は、筆者は個人的に、このS3とGlacierの連携機能を利用しています。自宅で利用しているNAS QNAP TS-219P II には、ファイルを1日1回自動的にS3にアップロードしてバックアップを取る機能があります。この機能を利用して、家族の写真等、消えたら精神的打撃が大きなデータを 99.999999999%(イレブン・ナインと言うらしいです)の堅牢性を持つS3に送り込んでいます。個人的なデータを複数拠点レプリケーションできるなんて、夢のようじゃないですか。あまり考えたくないことですが、万一自宅が何らかの被災をしても、せめて写真等のデータだけは無傷で生き残るわけです。

しかし、バックアップ対象の総ファイルサイズは200GBほどあり、S3のTokyoリージョンにおけるStandardストレージ($0.100/GB)を利用すると、月々$20($1=90円とすると約1800円)のコストが掛かります。いくら堅牢なバックアップとは言え、個人ユースで毎月のお小遣いから1800円を捻出するのはちょっとアレな感じがしますね。しかも、多分使いだしたらバックアップをやめることは無いでしょう…。

しかし単なるバックアップ目的であれば、このGlacierアーカイブを使わない手はありません。ストレージ料金は$0.012/GB、つまり月々$2.4(約216円)まで圧縮できます。万一の際に取り出すのに3〜5時間掛かったって、まったく問題はないでしょう。ちなみに、GlacierもS3と同様、イレブン・ナインの堅牢性を持っています。

しかし、S3は使ったことがあるけどGlacierって難しそう。Vaultってナニ? とか私も思ってました。が、全く難しいことはありませんでした。S3経由でGlacierを使う場合、ざっくり言ってしまえば、Glacierというのは単なる「格納したファイルの状態の名前」でしかありません。Standard状態かGlacier状態か、そしてRestore状態か。Standard状態は、高いけど即時ダウンロードが可能。Glacier状態、は安いけどダウンロードには3〜5時間前に事前申請が必要。Restore状態は、申請の結果ダウンロード可能になった状態のこと。たったそれだけのことです。

Amazonでチェックする

S3からGlacierへのアーカイブ機能を実際に使ってみる

設定

まず、Glacierアーカイブを適用するS3バケットを作成します。そして、バケットのプロパティの中からLifecycleの項を表示します。

s3glacier-toglacier-1

「Add rule」ボタンをクリックし、ダイアログを以下のように設定します。「Move to Glacier」ボタンをクリックすることにより、Time Period入力欄が現れます。ここでは、S3にアップロードしたファイルを1日でGlacierに移動させるという設定です。欲を言えば1日も待たずにさっさとGlacierに入れてしまっても構わないのですが、最小値が1なので仕方ありません。

2013-03-26_1558-s3glacier-toglacier-2

設定が終わると、このようになります。

s3glacier-toglacier-3

設定は以上です。

アップロード

このバケットにファイルをアップロードすると、そこから1日の間は通常のS3のように、自由にファイルをダウンロードできます。この状態はStandard状態ですね。

2013-03-26_2243-s3glacier-standard

しかし、1日以上経過したファイルは、Storage ClassがGlacierになっています。

s3glacier-glacier-1

ダウンロード

Glacier状態では、普通にファイルをダウンロードしようとしても、このようにエラーとなってしまいます。

s3glacier-glacier-2

では、このファイルをダウンロードする必要が出て来たとします。そこで前述の事前申請「リストア」を行います。ダウンロードしたいファイルを選択し、メニューから「Initiate Restore」を選びます。

s3glacier-initiate-restore-1

ダイアログに「ダウンロード可能にしたい期間」を日数で入力します。ここでは、7日間としてみました。

s3glacier-initiate-restore-2

以上で、リストアのリクエストは完了です。3〜5時間後にはダウンロード出来る状態、つまりRestore状態になります。

s3glacier-initiate-restore-3

詳細を見てみると「Restoration in progress」となっているのが分かります。

s3glacier-initiate-restore-4

まぁ、ここからは2本くらい映画でも見ながら待ってください。映画を見終わった頃に再び詳細を覗くと、Storage ClassはGlacierのままですが、Restoredと表示されています。また、Restore状態の継続期間は先ほど設定した7日間です。この期間が経過すると、再びGlacier状態に戻ってしまいます。

restored-1

まとめ

このように、S3経由でGlacierを使う場合は、Glacierの詳細についてはほとんど考える必要がありません。「EBSのスナップショットはS3に保存されている」と言っても、スナップショットを扱う時にS3について考える必要がないのと同じです。

ちなみに、料金についても、この方式でGlacierを使った場合は、S3の明細の中に組み込まれて表示されます。個人アカウントの利用状況なので、特にマスクせずに見せちゃいますね。今月のバックアップコストは約4ドル *1。安くないですか…?

s3glacier-cost

多分、Glacierは単体で使うことはあまりなさそうな気がします。このエントリの内容さえ掴んでおけば、Glacierを使いこなしているも同然と言えるのではないでしょうか。

脚注

  1. NASがAPIへのリクエストを結構掛けているようなので、リクエスト料金が$1.5ほど掛かっています。また、1行目は、新規ファイルがGlacierアーカイブされるまでの1日分のS3ストレージ料金ですね。この辺りは誤差範囲と言えるでしょう。