活クラウド awsをどう利用するべきか

47
活クラウド AWS をどう利用するべきか 2013/11/09 DevLOVE現場甲子園2013 楽天タワー2号館 Junichiro Ueno / @jun116

Upload: junichiro-ueno

Post on 28-May-2015

911 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 活クラウド AWSをどう利用するべきか

活クラウド AWSをどう利用するべきか

2013/11/09 DevLOVE現場甲子園2013

楽天タワー2号館Junichiro Ueno / @jun116

Page 2: 活クラウド AWSをどう利用するべきか

現場

Page 3: 活クラウド AWSをどう利用するべきか
Page 4: 活クラウド AWSをどう利用するべきか

技術ブログ Developers.IO http://dev.classmethod.jp/

Page 5: 活クラウド AWSをどう利用するべきか

自己紹介

Page 6: 活クラウド AWSをどう利用するべきか

Junichiro Ueno

上野 潤一郎 Community :  DevLOVE !

 Company :  クラスメソッド株式会社 AWSソリューション部 !

twitter : @jun116 facebook : junichiro.ueno

Page 7: 活クラウド AWSをどう利用するべきか

クラウドをどう活用すればいいの?

Page 8: 活クラウド AWSをどう利用するべきか

その前に

Page 9: 活クラウド AWSをどう利用するべきか

普段の現場

Page 10: 活クラウド AWSをどう利用するべきか

受託開発

Page 11: 活クラウド AWSをどう利用するべきか

サービス・システム開発

Page 12: 活クラウド AWSをどう利用するべきか

インフラエンジニア ではなく

開発エンジニア

Page 13: 活クラウド AWSをどう利用するべきか

会社がAWSを推進

Page 14: 活クラウド AWSをどう利用するべきか

今日から EC2, RDS, S3, SQS, SES, …

で開発よろしく

Page 15: 活クラウド AWSをどう利用するべきか

( ́Д`)=3

Page 16: 活クラウド AWSをどう利用するべきか

とはいえ、 結構面白そう

Page 17: 活クラウド AWSをどう利用するべきか

何ができるの? から始める

Page 18: 活クラウド AWSをどう利用するべきか

現場での経験を元に 仮想システムの構築

するとどのようにするか

Page 19: 活クラウド AWSをどう利用するべきか

広告配信システム • 配信広告の制御 • ブラウザから広告をクリック • クリックで対象サイトに遷移 • クリック数等をDBに保存

Page 20: 活クラウド AWSをどう利用するべきか

実現したいこと • 大量アクセスに耐えられる構成 • アクセス数に応じて構成を調整 • データをロストが発生しない

Page 21: 活クラウド AWSをどう利用するべきか

Attention !! 今回のサーバ構成等は架空のものです 広告配信の経験もありませんw AWSを利用するとどんなことが できるのかのイメージとご理解 いただければと思います この構想には @makotan にご協力 いただきました

Page 22: 活クラウド AWSをどう利用するべきか

構成イメージ

Page 23: 活クラウド AWSをどう利用するべきか
Page 24: 活クラウド AWSをどう利用するべきか

構成 • WebサーバEC2 c1.xlarge

• WorkerEC2 m1.medium

• DynamoDBIOPS = ワーカーの処理可能数 x 台数

• RDSdb.m1.medium

Page 25: 活クラウド AWSをどう利用するべきか

構成のポイント

Page 26: 活クラウド AWSをどう利用するべきか

ポイント① SQSを利用

Page 27: 活クラウド AWSをどう利用するべきか

なぜ? 直接 DynamoDB を更新すれば

Page 28: 活クラウド AWSをどう利用するべきか

DynamoDB 設定したIOPSを超えた瞬間から 急激にパフォーマンスが落ちる → 書込IOPSは値段も高い 大量アクセスの書込に利用は 必ずしも向いているわけではない

Page 29: 活クラウド AWSをどう利用するべきか

だから SQSを利用して負荷を軽減

Page 30: 活クラウド AWSをどう利用するべきか

SQS キューの追加に制限がなく、 データロストがない(冗長構成) 低コストで利用可能 → 急激な負荷に耐えつつ   ある程度パフォーマンス保証 !

※ メッセージは重複します

Page 31: 活クラウド AWSをどう利用するべきか

Worker SQSからデータを取得し、 DynamoDBとRDSを更新 → データ取得量を調整が可能   瞬間ピークにも焦らなくて済む

Page 32: 活クラウド AWSをどう利用するべきか

ポイント② DynamoDBの利用

Page 33: 活クラウド AWSをどう利用するべきか

なぜ? RDSだけでよいのでは

Page 34: 活クラウド AWSをどう利用するべきか

DynamoDB 更新が速いのはメリットだが、 読込パフォーマンスの速さも抜群! → 読込IOPSは比較的安価

Page 35: 活クラウド AWSをどう利用するべきか

だから DynamoDBをデータ読込に活用

Page 36: 活クラウド AWSをどう利用するべきか

例えば • 広告の表示時にどのような内容を表示するかをDynamoDBから取得

• 広告の表示数による表示の可否調整

Page 37: 活クラウド AWSをどう利用するべきか

参照系として利用 • RDSのリードレプリカを並べるより安価→ リードレプリカは起動も遅い

• パフォーマンスの調整も簡単→ IOPSを調整すれば良い

• なにより圧倒的な信頼性→ 分散型で強い整合性を持つ

Page 38: 活クラウド AWSをどう利用するべきか

パフォーマンス

Page 39: 活クラウド AWSをどう利用するべきか

想定性能 !

秒間 2500リクエスト !

※ 似た構成での計測値

Page 40: 活クラウド AWSをどう利用するべきか

構築・運用

Page 41: 活クラウド AWSをどう利用するべきか

Cloudformation → 何度でも再構築が可能 → テンプレートで環境管理 !

※ 似た構成での計測値

Page 42: 活クラウド AWSをどう利用するべきか

まとめ

Page 43: 活クラウド AWSをどう利用するべきか

ただの箱 ﹅ ﹅ ﹅ ﹅

から サービス群の活用へ

Page 44: 活クラウド AWSをどう利用するべきか

設計、構築 開発エンジニア視点でも 担当できるようになる

Page 45: 活クラウド AWSをどう利用するべきか

いままで !

開発したものを 提供する

Page 46: 活クラウド AWSをどう利用するべきか

これから !

運用環境を含め 開発・提供する

Page 47: 活クラウド AWSをどう利用するべきか

Thank you for listening! Lets us make new cloud modeling together!