機能とコストで考えるaws

72
Copyright (c) 2014 Junichiro Ueno 機能とコストで考えるAWS ~ ソフトウェアを設計する ~ 2014/08/23 オラクル青山センター Junichiro Ueno / @jun116

Upload: junichiro-ueno

Post on 24-May-2015

1.232 views

Category:

Engineering


3 download

DESCRIPTION

DevLOVE現場甲子園2014 東日本大会

TRANSCRIPT

Page 1: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

機能とコストで考えるAWS ~ ソフトウェアを設計する ~

2014/08/23 オラクル青山センターJunichiro Ueno / @jun116

Page 2: 機能とコストで考えるAws

Junichiro Ueno

上野 潤一郎 Community :  DevLOVE !

Company :  ギルドワークス株式会社 !

!

twitter : @jun116 facebook : junichiro.ueno

Page 3: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Page 4: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

市谷 聡啓 増田 亨 上野 潤一郎 中村 洋 佐々木 将之

Page 5: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

エンジニアの設計領域の拡大

• 機能設計 • アーキテクチャ設計 • UI/UX設計

• インフラ設計

Page 6: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

エンジニアの設計領域の拡大

• 機能設計 • アーキテクチャ設計 • UI/UX設計

• インフラ設計 • コスト設計

Page 7: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

!

AWSを利用した2つのコスト目線 !

• 開発コストの削減 • 運用コストの最適化

Page 8: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発コストの削減

Page 9: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

AWSサービスを活用

Page 10: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

例えば • S3データの堅牢性と信頼性

• SES安価、高い信頼性

• SQSシンプル、拡張性、信頼性

Page 11: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• S3データの堅牢性と信頼性 !

!

!

• 同等のものを開発するコスト • 大規模だからできる利用コスト

Page 12: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

信頼できるサービスに機能をまかせる (余分な開発を削減)

Page 13: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発コストの削減結果

につながる

Page 14: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

!

AWSを利用した2つのコスト目線 !

• 開発コストの削減 • 運用コストの最適化

Page 15: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

運用コストの最適化

Page 16: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発時の コストを減らす

コスト検討パターン1

Page 17: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• 本番はRDSを想定 • 開発時はローカルDB

例えば

Page 18: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

EC2 • 出勤時に起動 • 帰宅時に停止

例えば

Page 19: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

小さいところから コツコツとw

Page 20: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

運用時の コストを減らす

コスト検討パターン2

Page 21: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発するものを どう公開するか

Page 22: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

静的なサイト • コーポレートサイト • ランディングページ

Page 23: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Amazon EC2

• WordPress • HTML • JS • CSS

Page 24: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

構成 EC2  m1.small 使用量  100%/月

月額 $ 44.66 Amazon EC2

Page 25: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

構成 EC2  t1.micro 使用量  100%/月

月額 $ 19.04 無料枠利用 $ 0.00

Amazon EC2

Page 26: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

構成 EC2  t1.micro使用量 100%/

月額 $ 無料枠利用

Amazon EC2

AWS 無料利用枠には Linux および Windows の毎月 750 時間分の マイクロインスタンスが含まれます

(1 年間)。

Page 27: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発の内容次第で 1年間無料になる

Page 28: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• HTML • JS • CSSAmazon S3

Page 29: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

構成 S3  ストレージ 1GB !

月額 $ 0.03 無料枠利用 $ 0.00

Amazon S3

Page 30: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

構成 S3  ストレージ 1GB!

月額 $ 無料枠利用

Amazon S3

• 5 GB 標準ストレージ • 20,000 Get リクエスト • 2,000 Put リクエスト

Page 31: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発の内容次第で 1年間無料になる

Page 32: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

1年以降も 月額 $0.03 で利用可能

Page 33: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

参考事例

Page 34: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Page 35: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

S3で公開 WordPressもいいのだが 更新頻度が低い、もしくは更新が単純なら S3で十分対応できる !

 ※ 現在はWordPressで運用中

Page 36: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

S3での運用 • 独自ドメインで利用可能 • 99.99 % の可用性

Page 37: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• 公開しているものは同じ • 利用サービスは異なる

2パターンの相違点

Page 38: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• EC2静的サイト以外もOK

• S3静的ウェブサイトに最適

2パターンの相違点

Page 39: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

何が違う? !

Page 40: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

何が違う? • AWS利用料

Page 41: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

何が違う? • AWS利用料 • 運用費(人件費)

Page 42: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

EC2の場合 • 運用監視 • トラブル対応

Page 43: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

S3の場合 • 特になし

※ 細かい考慮はせず

Page 44: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

運用まで検討すると 何が最適であるか?

Page 45: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発時に 運用環境を想定して

設計する

Page 46: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Page 47: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

開発を意識 ↓

環境を意識 ↓

コストを意識 ↓

環境を修正

Page 48: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

サービスサイト • アクセス数を意識 • データ量の増大を意識

Page 49: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

単純に構築

Page 50: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Amazon EC2 RDS DB Instance

Page 51: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• RDSの負荷対策 • → スケールアップ • → リードレプリカ

アクセス数が増加したら?

コストも増大

Page 52: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

構成を変えてみる

Page 53: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Amazon EC2 DynamoDB

Page 54: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• DynamoDBの負荷対策 • → IOPSの調整

アクセス数が増加したら?

Page 55: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

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

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

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

Page 56: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• アクセス数は? • データ容量は? • データ集計は?

設計から再度検討する

Page 57: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

DynamoDB • 読込IOPSは比較的安価 • 拡張性、パフォーマンス、信頼性 • 書込IOPSの値段は高い • 検索、集計には強くない

Page 58: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

書込負荷を軽減

Page 59: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Amazon EC2

DynamoDB

Amazon SQS

Amazon EC2 RDS DB Instance

Page 60: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

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

Page 61: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

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

Page 62: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

RDSも併用可能 • 集計させたいデータ • 検索させたいデータ

Page 63: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

固定概念で設計しない

Page 64: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

RDSはデータ量次第では 頭打ちになることも

(パフォーマンスを上げるためにはスケールアップ)

Page 65: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

システムとして 実現可能ではなく 運用コストまで検討(寿命の長いシステムを構築)

Page 66: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

まとめ

Page 67: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

運用コストも 見据えたシステム開発 (新しい目線で設計)

Page 68: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

何が最適か? • 安いことが最適ではない • 拡張性・柔軟性も重要 • 無駄なコストはないか

Page 69: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

どのようなシステムが必要なのか→ これを考えることが重要

Page 70: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

• システムの見極め • 利用するサービス • 運用コスト

何をつくるかを定めた上で

Page 71: 機能とコストで考えるAws

Copyright (c) 2014 Junichiro Ueno

Do the Right Things Right.

Page 72: 機能とコストで考えるAws

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