mabots' blog

知のレバレッジを最大化せよ (旧はてなダイアリーから移転しました。)

Amazon WEB servicesについての考察 (EC2 S3 SimpleDB)

SimpleDBはRDBMSの代わりとしてそのま使える?
SimpleDBというDB likeなデータ保管ソリューションがあるのですがこちらは、RDBMSにあるような高度な機能を兼ね備えていないのでこのSimple DBに合わせた単純なデータ構造にあわせたアプリケーション設計が必要かとおもいます。(このため高度なSQLを要求する既存のWEBアプリはすぐにSimpleDBを使えない)
用途としては、アプリケーションが吐き出すlog(たとえばミニメールや足あとのデータ)的なデータなど大量の情報で、あまり結合されずに、長期にわかって保存し続ける用途については向いていると思います。(それ以外の結合条件をよくつかう友達関係などのデータはEC2上のmysqlなどに保管しておく、など)

CPUのスケールアウトについて
mysqlをEC2上で動作させることも可能ですが、この場合はひとつのバーチャルマシン上の領域の範囲での動作となるのでdisk容量などが無限に増える、ということはありません。CPUの上限もバーチャルマシンの範囲になるので、CPUのスケールアウトのため複数のバーチャルマシンにタスクを割り当てる実装は別途必要になります。(MadReduceやSawzallに近い)
ただし、あらかじめEC2のimageをつくっておくと、年間のうち一時期のみ忙しいサービス についてスレーブを大量につくって負荷分散し、それ以外の閑散期は、スレーブのサービスを停止させる(=課金されなくなる)という運用が可能になります。
S3はNFSの代わりに
画像の置場などとしては非常に有効。あとはdumpしたDBの置場とか。これをちゃんとRAIDで大容量を確保しようとするとコストがかかってしまうので。
linux, bsdでは1 dirに大量にファイルをおくとパフォーマンスが劣化しますが全部平おきとかそういう使い方もできるので「素直な」WEBアプリの実行が可能かもしれません。


実際に今後契約してみて、評価を進めていきたいと思います。