2008/10/25

Amazon S3 を使ったオンラインストレージ(バックアップ)

これまで、Gmail用のストレージプラグイン(GSpace)を使っていたのですが、どうも最新のFirefoxではうまく動かないようです。

それで、無料のオンラインストレージを探してみたのですが、結論から言うと、どれもこれも帯に短し襷に流しということが判りました。私の要件としては、
  • 最大ストレージ容量が大きい
  • 1ファイルにサイズ制限がないこと(500MB以上)
  • 特定の環境に縛られず、アクセシビリティが高いこと
  • 期間限定保存は×
などがあるのですが、これらを(部分的に満たすものはありますが)同時に満たすオンラインストレージが見当たりません。MegaUploadがそれに近く、一時期それを候補にしていたこともあるのですが、登録しただけで実際には使っていませんでした。月に$10も払えば、どれも大体まともに使えるのですけどね。

そんなこんなで、結局有償になっちゃうのであればおんなじだろということで、Amazon S3 (Simple Storage Service)をオンラインストレージとして使うことにしました。

ツールとしては、Windows用からLinux/UNIX用まで、色々出ているようですが、まずはAmazon AWSのリソースセンターで紹介されているawsを使ってみることにします。

インストールは簡単で、まずは~/.awssecretファイルにAWSのアクセス鍵と秘密鍵を一行づつ書いておきます。
1B5JYHP24PS13GWKFGAG2
2GAPQFG3+1wxc4sj52bFgqc0AQxj21FMkipjfz
次に、awsサイトからawsファイルをダウンロードします。ダウンロードしたファイルを適切なディレクトリに置き、

% perl aws --install

を実行すると、カレントディレクトリ配下(一般ユーザの場合)、もしくは/usr/bin/(rootの場合)にインストールが行われます。私は実行形式は ~/bin/に配置したかったので、~/bin/にawsを置いてインストールしました。

インストールが終了すると、いくつかのコマンド(ec2XXXとかs3XXXという名前になります)が使えるようになります。

次にS3/awsの使い方ですが、
  1. バケットの作成
    S3には、バケットという概念があって、簡単にいうとストレージ領域の区分けのようなもので、トップディレクトリをイメージすると良いかもしれません。
    すなわち、あるファイルXは、バケットAの中にある、といった意配置イメージとなります。

    aws では、

    % s3mkdir バケット名

    でバケットを作成することが出来ます。
    一点注意が必要なのはバケット名がシステム全体でひとつの名前空間を構成しており、ユーザ全体で共有されるということです。既に取られてしまったキーワードは使えません(backupとか一般的な名詞は使えないようです)。

  2. ファイルのput/get
    バケットを作成したら、そこにアイテム(ファイル)をputしたりgetすることが出来ます。

    % s3put BUCKET/ file
    % s3get BUCKET/file


    なお、putに際して、55MBのファイルで約3分、550MBのファイルで約23分でしたから、大体300Kbps出ている勘定になりますが、これは回線速度に拠るところが大きいでしょう。

  3. ファイルの一覧
    s3lsコマンドを使います。
    引数にバケットを指定するとそのバケット内のファイル一覧が、指定をしないと自分の持っているバケットの一覧が得られます。

  4. ファイルのコピー
    s3cpコマンドを使用します。引数の方向が標準的なUNIXとは異なり右から左なので注意してください。

    % s3copy bucket2/ bucket1/xxx
    (bucket1のアイテムxxxをbucket2へコピーする)

    なお、S3内のストレージは重複排除されてカウントされているな気がします(気のせいかもしれません)。

  5. アイテムの削除、バケットの削除
    s3rm、s3rmdirコマンドでアイテム、バケットを削除します。
一連の操作後(600MB程アップロードしました)の課金状況です。$1.02。

0 件のコメント: