Amazon Web Servicesをつらつらと眺める


 使い始めてしまうと色々気になるもので、何か面白い用途は無いかなー、とサービス概要なんぞを眺める。
 ふーむ。EC2やElastic Beanstalkはまあ、スケーリングが重要な時には有用だろうけど、そういう用途なら個人的な好みではGAEにしたいな。逆に、うちみたいにスケールがほぼ決まってる奴をコンスタントにだらだら走らせるならVPSや専鯖の方が良さそうだ。
 CloudFrontはCDNが使える訳か。面白そうに見えたけど、転送料金が$0.201/GBかー。エロゲーのムービーくらいでも数TBくらい行っちゃいそうだよな。いや、実際やってたけど数字とか全く取ってなかったんで、この数字でいいのかは知らんけど。6TBくらいで10万円か。んー。まあでも、速度がきっちり出るんなら費用的にはありか。今の俺には無縁そうだけど。
 Route 53も気になったけど、ゾーン一つで月$1.00。クエリ100万回で$0.50。料金は悪くないけど、使い方が物凄いなあ。RTTも心配だし、零細ならVPSにBINDなりNSDなり入れる方が良さそうな。Industriaとか月390円で国内だし。

 まあ、スケール固定気味の用途には微妙に合わない気がする、ってことで。


Amazon S3の堅牢性とか転送速度とか


 S3の価格を見る度に気になっていたことがある。
ストレージ(99.999999999%の堅牢性を持つようデザインされています)
低冗長化ストレージ(99.99%の堅牢性を持つようデザインされています)
の表記だ。良く分からないが凄そうなこの確率は何なのだろう、と。
 調べてみると、一つのオブジェクトが一年間破損しない確率、らしい。なるほど。ちなみにS3の世界のバケットとフォルダとオブジェクトは、Windowsの世界のドライブとフォルダとファイルのようなものである。
 という訳で、「99.999999999%/年」とか書いてくれればもう少し納得しやすいのに、とか思ったが、まあ別にどうでもいいな。この数字はどっから出たんだよ、とか考えたらキリねーし。むしろ低冗長化ストレージの堅牢性の低さを理解する為の数字と捉えた方が良さそうだ。だって、年間10000個のファイルのうち1個が行方不明になるんだぜ。あ、今エロいこと考えました。そういうゲームもやりたいですなあ。最近エロゲー調べてねーなー。
 で、普通のストレージの方は、年間1000億個のファイルのうち1個が行方不明になる、という想定な訳だな。つっても、各種の天災や人災の確率を0とした場合の数値だろうけど、まあ、その辺を考えないことにすれば、宝くじなんか目じゃないくらい当たらんな。公営くじで一億円当たる確率は500万〜1000万分の1くらいらしいし。
 まー、低冗長化ストレージは大して安くもないし、俺的には存在を忘れてても良さそうではあった。

 んで、何となく管理コンソールからバケットの中身を見る。ふむ。オブジェクトのLast Modifiedは転送終了時刻ではなく開始時刻っぽいな。3GBの転送に5時間かー。つまり0.6GB/hで、14.4GB/dayか。んー。全体バックアップに掛かる時間は最悪二日くらい見ないとやばそうだな。
 恐らくアメリカに置いてるのも原因だと思うんで、理由が無い限りは東京に置くべきだろうなあ、と改めて思った。理由があるから仕方ないが。
 結局、週一回の一世代バックアップになりそうなので、月額50円/GBくらいになるのかな。まあ悪くは無いか。


パスワードもハッシュ化されていたとか


 プレステですが。
 ここはさすがにパスワードをハッシュ化して保存していた、とのこと。なるほど、今回のケースだとハッシュ化されてても少し微妙な訳か。名前や住所が一緒に漏洩してる以上、狙い目の人がいたらブルートフォース解析とかしたくなるかもしれんしなあ。つってもSHAにsaltでも付いてたら、解析とかどうやるんだろ。暗号良く分からんけど、平文の手がかり無しにどうにかなるもんなんだろうか、あんなの。言うなれば、CRCだけ見て元の情報を探るようなもんだよなあ…。
 で、既知の脆弱性を放置しててやられた、でも脆弱性の詳細は非公開、らしい。まーたーかー。非公開好きだなーほんとに。fixは出てたのか、出てたならベンダーの公式なリリースには含まれていたのか、くらいの情報は出せよなー。要は「何で脆弱性を放置していたのか」ですよ。何かそれなりの理由はあるんだろーに。まったくもー。


観念してAmazon S3利用開始


 さすがにもう時差とか関係無く、世界的に五月になった頃合いである。言い訳ももう残ってないので、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さえ使えるなら、バックアップ程度はマジで超簡単だけど。

 という訳で、気になっていた作業もほぼ完了である。今のままなら、無料枠が有効な一年間は課金が発生しないかもしれないが、多分データが増えるだろうから駄目だろうなあ。


ナイトエイジのOBTをやったようなそうでもないような


 もうね、ゲーム内容も大体いつもの奴ですからね。記事もパパッとやりましょう。パパッと。

 ダウンロードしてインストールして、起動はActiveXから。
 良く読んでねーけど、ここの運営はログインのセキュリティを上げる為に、IPアドレス変わったらメールで確認みたいなことをするっぽい。そういうのを様々な開発元のゲーム全てに統一して導入する為なら、ActiveXからログインさせる理由も分からなくも無いが、それはそれとしてActiveX嫌いだからな俺。まあ、IPアドレス変わったら確認という仕様は今時の日本だと面白いかもしれない。頻繁に変わる人には面倒でたまらんかもしれんけど、今の日本でそういう環境ってどんなんだろ。まあ、切り捨てるだけのメリットはあるかもなあ。うーん。
 んで、起動したらX-TRAPが見えたが、nProほどのうざさは感じないんでどうでも。

 キャラメイクはどうも好みに仕上がらず。ここでやる気がだいぶ変わるので、既に厳しい。つっても、キャラが好みでもゲーム性がコピペだとさすがに耐えられなくなってきた、ということもFNOで良く分かったが。
 チュートリアル。微妙に変な日本語。微妙に馴染みにくい操作性。そして、どっかで見たようなストーリーが始まる。
 チュートリアルエリアを抜けるのと前後して、○○を○匹倒して来い、と言われる。もうこれ禁止しろよ畜生。刺身にたんぽぽ載せる方が楽しそうに思えてきたぞ。
 さらに、最初の街には看板があって、何となく覗いてみると、

Lv○○ ○○を○匹倒して来い
Lv○○ ○○を○匹倒して来い
Lv○○ ○○を○匹倒して来い
Lv○○ ○○を○匹倒して来い
Lv○○ ○○を○匹倒して来い
Lv○○ ○○を○匹倒して来い
Lv○○ ○○を○匹倒して来い
Lv○○ ○○を○匹倒して来い

「頭使ってねーぜ!」という主張がビンビン伝わってくる。だいぶ追い込まれてきたな、と思っていたら、臨時メンテのテロップも出た。うむ。臨時メンテまで気力が続くかも怪しい。
 そして、最初のキツネを何匹か倒して、インベを見たらもうドロップで埋まりかけていた。すげえ。最近のアイテム課金だとインベ厳しいのはいつものことだが、こんな厳しいのマジで初めて見た。ははは。公式で「インベ厳しいって言われてるけど、ドロップ品はどんどんペットの餌にしてね!」的なことがわざわざ告知されてたのはこういうことか。敵をちょっと倒してはインベ開いて餌、を繰り返す訳だな。食ってくれない装備も良く出るけど、これは捨てればいいのかな。何というか、戦闘より何よりインベのゴミ捨てが一番好きな人とかには最高なんじゃないかな、このゲーム。
 俺的には既に「どう燃え尽きようか」という気分だが、ここでふと、街中にあった看板を思い出す。倒す敵がかぶってたような。確認するとかぶってるので、せっかくだから全部受けておく。そして狩場に戻りながら何となくインベを覗くと、クエの一つ一つがアイテム一個分のスペースをきっちり確保していた。圧倒的な埋め尽くし感。これはもう追い詰められたかもしれんな。だが、雑魚一匹倒す度にインベ整理すれば十分イケルヨネ。テストプレイしてねんじゃねっていう。クエを一個一個受ける想定なんですよね、ええ。破棄すりゃいいんですがね。インベ節約に街との往復とかやってらんねーですし。

 と、ここで救いの神が。臨時メンテで鯖から切られた。やったー終了ー。
 そんな感じで。