JAWS SUMMIT 2012 DAY2 に行ってきました

JAWS SUMMIT 2012 2日目のクラウドデザインパターンに関する講演を聞いてきました。題目は「ベストプラクティス:RIA とスマホクラウド

メモした限りの内容を以下にまとめます。


AWSにはサービスを止めない運用のために必要な機能が揃っている
・EC2
・ELB
・AutoScaling
・CloudWatch
・自動スナップショット
・RDS

・RIAに求められる良いレスポンスを実現するには

・リクエスト数を減らす
・ファイルをまとめる
CSSのスライスとか使う

・適切に配置
・htmlの上にcss,下にjs
・動的htmjでcss/jsを書かない
・RequireJs等を使ってjsを非同期で読み込む

・静的ファイルをS3,CloudFrontへ
・EC2、ELBの負荷が減る
・HTML等はgzip圧縮したものを置いておく
・S3 or CloudFront どっちを使えばいい?
・S3でも十分だが、速度を求めるならCloudFront
・CroudFrontは東京と大阪にエッジロケーションがある
・速度的には5倍くらい出る
・アクセス権等の細かい設定をしたければS3
・手作業で設定するのがめんどくさい
・キャッシュ設定
gzip設定とか
・ビルドツールを使え
・antとか

DNSにはRoute53
・切り替えが一瞬

・ディスクアクセスを減らす
・EC2とEBSはネットワークでつながっている
インスタンスタイプによって、その帯域幅が変わる
・ログをファイルに出しすぎない
・fluentd的なものをつかってS3へ
・ディスクアクセスを高速化したい時は
・大きいインスタンスを使う
・RAID0を組む
・ephemeralディスクを使う
・シーケンシャルなアクセスが早い
・EC2で使えるディスクの性能はブログを参照
http://dev.classmethod.jp/ria/amazon-ec2-ebs-ranking/

・データベース(RDBMS)へのアクセスを減らす
・データベース(RDBMS)で何を管理するか?
・データベース(RDBMS)になんでもかんでも入れない
・データベース(RDBMS)に処理が集中するからボトルネックになる
AWSをうまく使え
・SPOF(単一障害点)がないサービスが一杯ある
・データベース(RDBMS)への問い合わせを減らす方法
・キャッシュを使う
Amazon Elasticache
RDBMSを使わない
・DynamoDB
・SimpleDB
・操作ログや履歴
・S3
・その解析
・Elastic MapReduce

・DynamoDBが熱い
・アトミックカウンタが優秀
・座席の予約
ソーシャルゲームのパラメータ
・その他いろいろ使える

感想

EBSの帯域幅インスタンスタイプによって変わるのは知りませんでした。いままで何でもかんでもとりあえずEBSみたいな感じにしてたのでちょっと反省してます。まあ、t1.microを使ってる限りはEBS以外選択肢がないんですがね。あと、ログの出しすぎも反省。開発中はまだしも、製品版ではちゃんとしないといけないと思いました。fluentdも検討したけど結局導入してないし。

DynamoDBはリリース直後からバリバリ触ってますけど、使いどころさえ間違えなければいい感じです。それこそアトミックカウンタが生きるところではかなり使えると思います。レコード数のcountとかsumとか集計を取りたいようなところでは使わないほうがいいと思います。特にレコード数のcount操作は罠が潜んでるので気をつけたほうがいいです。

http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count

DynamoDBは3月1日に東京リージョンもできたことですし、もっと日本語の情報が増えると嬉しいなと思います。現時点ではとにかく夢が詰まってるDBという感じです。僕の中で。

そういえばRIAのこともスマホのことも特に出てこなかったような・・・。