活クラウド awsをどう利用するべきか
TRANSCRIPT
![Page 1: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/1.jpg)
活クラウド AWSをどう利用するべきか
2013/11/09 DevLOVE現場甲子園2013
楽天タワー2号館Junichiro Ueno / @jun116
![Page 2: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/2.jpg)
現場
![Page 3: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/3.jpg)
![Page 5: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/5.jpg)
自己紹介
![Page 6: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/6.jpg)
Junichiro Ueno
上野 潤一郎 Community : DevLOVE !
Company : クラスメソッド株式会社 AWSソリューション部 !
twitter : @jun116 facebook : junichiro.ueno
![Page 7: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/7.jpg)
クラウドをどう活用すればいいの?
![Page 8: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/8.jpg)
その前に
![Page 9: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/9.jpg)
普段の現場
![Page 10: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/10.jpg)
受託開発
![Page 11: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/11.jpg)
サービス・システム開発
![Page 12: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/12.jpg)
インフラエンジニア ではなく
開発エンジニア
![Page 13: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/13.jpg)
会社がAWSを推進
![Page 14: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/14.jpg)
今日から EC2, RDS, S3, SQS, SES, …
で開発よろしく
![Page 15: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/15.jpg)
( ́Д`)=3
![Page 16: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/16.jpg)
とはいえ、 結構面白そう
![Page 17: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/17.jpg)
何ができるの? から始める
![Page 18: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/18.jpg)
現場での経験を元に 仮想システムの構築
するとどのようにするか
![Page 19: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/19.jpg)
広告配信システム • 配信広告の制御 • ブラウザから広告をクリック • クリックで対象サイトに遷移 • クリック数等をDBに保存
![Page 20: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/20.jpg)
実現したいこと • 大量アクセスに耐えられる構成 • アクセス数に応じて構成を調整 • データをロストが発生しない
![Page 21: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/21.jpg)
Attention !! 今回のサーバ構成等は架空のものです 広告配信の経験もありませんw AWSを利用するとどんなことが できるのかのイメージとご理解 いただければと思います この構想には @makotan にご協力 いただきました
![Page 22: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/22.jpg)
構成イメージ
![Page 23: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/23.jpg)
![Page 24: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/24.jpg)
構成 • WebサーバEC2 c1.xlarge
• WorkerEC2 m1.medium
• DynamoDBIOPS = ワーカーの処理可能数 x 台数
• RDSdb.m1.medium
![Page 25: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/25.jpg)
構成のポイント
![Page 26: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/26.jpg)
ポイント① SQSを利用
![Page 27: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/27.jpg)
なぜ? 直接 DynamoDB を更新すれば
![Page 28: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/28.jpg)
DynamoDB 設定したIOPSを超えた瞬間から 急激にパフォーマンスが落ちる → 書込IOPSは値段も高い 大量アクセスの書込に利用は 必ずしも向いているわけではない
![Page 29: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/29.jpg)
だから SQSを利用して負荷を軽減
![Page 30: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/30.jpg)
SQS キューの追加に制限がなく、 データロストがない(冗長構成) 低コストで利用可能 → 急激な負荷に耐えつつ ある程度パフォーマンス保証 !
※ メッセージは重複します
![Page 31: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/31.jpg)
Worker SQSからデータを取得し、 DynamoDBとRDSを更新 → データ取得量を調整が可能 瞬間ピークにも焦らなくて済む
![Page 32: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/32.jpg)
ポイント② DynamoDBの利用
![Page 33: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/33.jpg)
なぜ? RDSだけでよいのでは
![Page 34: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/34.jpg)
DynamoDB 更新が速いのはメリットだが、 読込パフォーマンスの速さも抜群! → 読込IOPSは比較的安価
![Page 35: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/35.jpg)
だから DynamoDBをデータ読込に活用
![Page 36: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/36.jpg)
例えば • 広告の表示時にどのような内容を表示するかをDynamoDBから取得
• 広告の表示数による表示の可否調整
![Page 37: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/37.jpg)
参照系として利用 • RDSのリードレプリカを並べるより安価→ リードレプリカは起動も遅い
• パフォーマンスの調整も簡単→ IOPSを調整すれば良い
• なにより圧倒的な信頼性→ 分散型で強い整合性を持つ
![Page 38: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/38.jpg)
パフォーマンス
![Page 39: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/39.jpg)
想定性能 !
秒間 2500リクエスト !
※ 似た構成での計測値
![Page 40: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/40.jpg)
構築・運用
![Page 41: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/41.jpg)
Cloudformation → 何度でも再構築が可能 → テンプレートで環境管理 !
※ 似た構成での計測値
![Page 42: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/42.jpg)
まとめ
![Page 43: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/43.jpg)
ただの箱 ﹅ ﹅ ﹅ ﹅
から サービス群の活用へ
![Page 44: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/44.jpg)
設計、構築 開発エンジニア視点でも 担当できるようになる
![Page 45: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/45.jpg)
いままで !
開発したものを 提供する
![Page 46: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/46.jpg)
これから !
運用環境を含め 開発・提供する
![Page 47: 活クラウド AWSをどう利用するべきか](https://reader034.vdocuments.site/reader034/viewer/2022051015/556601a2d8b42a2a4d8b4f29/html5/thumbnails/47.jpg)
Thank you for listening! Lets us make new cloud modeling together!