さすがにもう時差とか関係無く、世界的に五月になった頃合いである。言い訳ももう残ってないので、Amazon S3の利用を開始しよう。Amazon嫌いだけど、強力な対抗馬が見付けられなかったから仕方ないな。
目的は何度も書いたけど、重要データの国外へのバックアップである。つっても、よくよく確認してみると、これらのデータが全部吹っ飛んでも被害額はせいぜい八桁ってとこらしい。いやまあ、でかいけど。
早速(でもないが)AWSのアカウントを作成して、AWS Management Consoleとやらを覗いてみて、S3をアクティベートする。程無くしてメールが到着。英語でうざいが、どうやら速攻で使えるようだ。
ところで、”Thank you for your participation in the Amazon Web Services community.”という文章があったのだが、”Thank you for your …”という表現はやめろ、と昔教わったのは何だったんだろう。”Thanks for your …”か”Thank you for …”にしろ、とか言われたけど、これ外人の書いたメールだろうしなあ。何か細かいルールでもあるのか、実はどうでもいいのか。
んで、S3が使えるようになったら、次はバケット作成だが、設置する地域で迷う。アメリカかアイルランドか。他は高いんでパス。まあ、デフォのアメリカでいいか。
後はもう簡単である。既にOsukini LTにGPGで暗号化済みのバックアップがあるので、これをS3にコピーすればいい。
$ s3cmd --configure
でアクセスキーとシークレットキーを記憶させちゃっといて、cronなり何なりで
s3cmd sync ~/foo/ s3://bar/backup/foo/
とかのスクリプトを走らせれば完了だ。
…と行きたかったが、都合により日本語ファイル名があるんですな、困ったことに。S3での日本語ファイル名は、行けるという話と行けないという話があったので、とりあえず回避する為にsyncは使わないことにして、
s3cmd put ~/foo/file1 s3://bar/backup/foo/file1 s3cmd put ~/foo/file2 s3://bar/backup/foo/file2
みたいにベタベタと。
実際にputしてみると、一つ目の76MBくらいのファイルは264.92KB/sで4分44秒掛かって転送完了。あんまり速くはないが、どこが引っ掛かってるか分からんから何とも。わざわざ国外を選んでいる時点で、速度を期待することも無かろう。用途的には十分だ。
また、転送途中のファイルはS3のストレージには入っていないように見える。仕様を調べてみると、partialなデータが書き込まれることは無く、ちゃんと転送完了した時だけ書き込むとのこと。それなら二世代取る必要も無くて素晴らしいな。ただ、パイプの最後に持ってこられない仕様になりがちだろうから、どこかでファイルを作ってからアップロードすることにもなるなあ。まあ、今はOsukini LTで一度作ってからS3に流してる訳だから、何も考えなくていいけど。
あと、バージョニング機能も一応見てみたが、きっちりS3向けにアプリを書く人専用っぽい感じなんで、見なかったことに。つーかs3cmdが無かったらこんなに一瞬でスクリプト書けんし。s3cmdさえ使えるなら、バックアップ程度はマジで超簡単だけど。
という訳で、気になっていた作業もほぼ完了である。今のままなら、無料枠が有効な一年間は課金が発生しないかもしれないが、多分データが増えるだろうから駄目だろうなあ。