怖話を作っていてインフラを含めた設計で迷っている箇所がいくつか溜まってきたのですが、もしいい方法があったら教えて欲しいという点をブログに書いていきたいと思います。
前提
- エンジニアは僕一人だけなので極力手間を減らしたい
- 怖話は広告モデルなのでアクセス辺りの収益が低い。なるべく安く(できれば無料に)したい
- デザイナーやインターンの人も開発するので複雑にしたくない(例えば怖話をローカルで開発する環境を作るのにredisとかfluentdとかいろんなサーバープロセスを立てないと画面が確認できないとか)
画像の置き場所に困る
怖話はアクセス負荷的にappサーバーの2台目が必要かな?ぐらいの状態にあります。
appサーバーが複数台になると画像などのアップロードされるファイルの置き場を共通にする必要が出る。
一度はappサーバー2台でS3 + CloudFrontにしましたが、転送料が高いからappサーバー1台にもどしてまた普通のFile Systemを使うようにした状態です。(無料のCDNのCloudFlareを使ってるので転送量が大分減った)
でも結局rails appのプロセスは結構メモリ食うのでappサーバー増やしたい。なに?転送量無料のS3互換オブジェクトストレージがあるって?じゃあまた画像をfogを使ってアップするように改修を・・・
とここまで来て、「なんでオブジェクトストレージ使わなきゃいけないんだっけ?」となりました。
アクセスとファイル容量が膨大で1台ではアップロードされるファイルを捌き切れない!という用途向けには必要なんだろうけど、怖話でそういったことにはまずならないと思う。(そんなになってたら儲かってるのでこんなみみっちいことで悩まない)
複数サーバーからブロックデバイスとしてマウントできるnfs的なものでかまわないんだけどなあ。S3用になんでプログラム変更しなきゃいけないんだよ面倒くさい。
でもnfsって古い感じするし、トラブル多発なイメージするしちょっとこわいな。
今どきバージョンのnfsみたいなのってないのかな? ← 今ココ
皆さんだったらどうされますか?もし情報をお持ちの方がいたら教えていただけるとありがたいです。
愚痴
- AWSの転送量高スギィィィ!
- S3 + RDSに決め打ちしないところに工夫のしがいがあるのでは!
- 日本からのアクセス速くしようとすると選択肢狭まりスギィィィ!
railsのアプリではやってないけど、octopressの画像ブログなんかはs3に画像をバックアップとして保存して、実際の表示にはrsyncで置いたもの見せてたりしますね。s3 Event Notifications使えばrailsアプリでも出来そうな気がしないでもないです。
ちょっと古い記事ですがアプリケーションからrsyncコマンド実行してコンテンツサーバーに送ったりとかもあるみたいですね。
http://www.atmarkit.co.jp/fcoding/articles/rorcgm/02/rorcgm02a.html
これはこれで面倒臭いですが。
利用事例も多く、個人利用では十分なアベイラビリティがあります。
https://www.cloudflare.com/
日本語ユーザーグループ
https://www.facebook.com/groups/1396203363970226/?fref=ts
なるほど、railsだとfogですね。
> akiyan
CloudFlare最高ですね。
さくらクラウド+CloudFlareを今使っています。