怖話を作っていてインフラを含めた設計で迷っている箇所がいくつか溜まってきたのですが、もしいい方法があったら教えて欲しいという点をブログに書いていきたいと思います。
前提
- エンジニアは僕一人だけなので極力手間を減らしたい
- 怖話は広告モデルなのでアクセス辺りの収益が低い。なるべく安く(できれば無料に)したい
- デザイナーやインターンの人も開発するので複雑にしたくない(例えば怖話をローカルで開発する環境を作るのに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に決め打ちしないところに工夫のしがいがあるのでは!
- 日本からのアクセス速くしようとすると選択肢狭まりスギィィィ!