S3のお安い版・RRS(Reduced Redundancy Storage)を使う方法(修正版)

普通にS3を使うと永続性99.999999999%を満たすように設計されていますが、
これを99.99%まで落とす代わりにリーズナブルなRRS(Reduced Redundancy Storage)が出ました。

詳しい金額については以下ページの真ん中ぐらいに記載されています。
http://aws.amazon.com/s3/

少しだけ抜粋すると以下のような金額設定。
・S3
最初の50TBまでは$0.150 per GB

・S3(RRS)
最初の50TBまでは$0.100 per GB
これ以降の料金については上記サイトをご確認ください。


■どうやって使うん?
以下に書かれています。
http://aws.amazon.com/s3/faqs/#How_do_I_specify_that_I_want_to_store_my_data_using_RRS
意訳すると、

S3のすべてのオブジェクトはストレージクラスの設定を持っています。
デフォルトの設定は「STANDARD」です。PUTリクエストを送るときに「REDUCED_REDUNDANCY」を明示すれば使えるよ。

って事みたいです。

具体的には「http://docs.amazonwebservices.com/AmazonS3/latest/index.html?DataDurability.html」に例が載っています。
「x-amz-storage-class: REDUCED_REDUNDANCY」をくっつけて送れってことですかね。

では、コマンドラインで行ってみましょう!
とりあえず立ち上げたインスタンス(サーバー)にログインします。
例で利用しているのは、RightScaleのCentos5.4のAMIです。
ちなみにs3cmdに対する設定を何もしていないことを想定してます。

rootでログイン。
root# export S3CONF=/home/s3sync
root# cp /home/s3sync/s3config.yml.example /home/s3sync/s3config.yml
root# vi /home/s3sync/s3config.yml

・s3config.yml-----------------
aws_access_key_id: xxxxxxxxxxxxxxxxxxxxxxx ←AWSのaccesskey
aws_secret_access_key: xxxxxxxxxxxxxxxxxxxxxxx ←AWSのsecretkey
ssl_cert_dir: /home/user/s3sync/certs ←そのままで良い

                                                            • -

保存。accesskeyやsecretkeyってなんぞ?って人は
http://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=access-key
へアクセス。accesskeyはモロに出てます。secretkeyはshowを押すと出てきます。

では次にバケット作ります。バケットとはS3に自分用の場所を作ると思ってください。

root# s3cmd createbucket bucket_test_xxxx ←bucket_test_xxxxは好きなバケット名。

バケット名は他の人とかぶってたら作れません。また既に作っていたらここはスキップしてください。

では次にバケット一覧取得します。

root# s3cmd listbuckets
bucket_test_xxxx      ← 先ほど作ったバケット名が出れば成功

まずは普通にアップロード。

root# s3cmd put bucket_test_xxxx:hoge.txt /root/hoge.txt 

s3cmd put バケット名:アップロード先ファイル名 アップロード元ファイル名(フルパス)
になります。「s3cmd --help」でヘルプが見れます。ここでは/root/hoge.txtをアップロードしてます。

アップロードされたか確認

root# s3cmd list bucket_test_xxxx
                                      • -
hoge.txt

と出れば成功。

では本題のRRSでアップです!

root# s3cmd put bucket_test_xxxx:hoge.txt /root/hoge.txt x-amz-storage-class:REDUCED_REDUNDANCY

これで完了みたいです…。
ただ本当にRRSで保存されたのか確認方法が分かりません><;

※大事な事ですがS3にファイルを置いておくと料金が発生するので十分注意してください。

アップロードしたファイルを見る方法ですが、以下のURLで見れます。

http://s3.amazonaws.com/バケット名/ファイル名

ただ、普通にアップロードしただけだと権限がないので見れないと思います。
ですので、アップロードする時にx-amz-acl:public-readをつけてください。
このオプションをつけると誰でも見れてしまうので注意が必要です。

root# s3cmd put bucket_test_xxxx:hoge.txt /root/hoge.txt x-amz-storage-cla
ss:REDUCED_REDUNDANCY x-amz-acl:public-read

アップロードしたファイルの権限変更はs3cmdでは出来無さそうなので、S3Fox等を使ったほうが良いと思います。もし誰かご存知の方がいらしたら教えてください。

また、S3Fox等のGUIツールでRRSを使う場合ですが、残念ながらまだS3Foxは未対応のようです。
Windowsであれば、以下のS3Browserで使えるみたいですね。
http://s3browser.com/working-with-reduced-redundancy-storage-rrs.php