機能とコストで考えるaws
DESCRIPTION
DevLOVE現場甲子園2014 東日本大会TRANSCRIPT
Copyright (c) 2014 Junichiro Ueno
機能とコストで考えるAWS ~ ソフトウェアを設計する ~
2014/08/23 オラクル青山センターJunichiro Ueno / @jun116
Junichiro Ueno
上野 潤一郎 Community : DevLOVE !
Company : ギルドワークス株式会社 !
!
twitter : @jun116 facebook : junichiro.ueno
Copyright (c) 2014 Junichiro Ueno
Copyright (c) 2014 Junichiro Ueno
市谷 聡啓 増田 亨 上野 潤一郎 中村 洋 佐々木 将之
Copyright (c) 2014 Junichiro Ueno
エンジニアの設計領域の拡大
• 機能設計 • アーキテクチャ設計 • UI/UX設計
• インフラ設計
Copyright (c) 2014 Junichiro Ueno
エンジニアの設計領域の拡大
• 機能設計 • アーキテクチャ設計 • UI/UX設計
• インフラ設計 • コスト設計
Copyright (c) 2014 Junichiro Ueno
!
AWSを利用した2つのコスト目線 !
• 開発コストの削減 • 運用コストの最適化
Copyright (c) 2014 Junichiro Ueno
開発コストの削減
Copyright (c) 2014 Junichiro Ueno
AWSサービスを活用
Copyright (c) 2014 Junichiro Ueno
例えば • S3データの堅牢性と信頼性
• SES安価、高い信頼性
• SQSシンプル、拡張性、信頼性
Copyright (c) 2014 Junichiro Ueno
• S3データの堅牢性と信頼性 !
!
!
• 同等のものを開発するコスト • 大規模だからできる利用コスト
Copyright (c) 2014 Junichiro Ueno
信頼できるサービスに機能をまかせる (余分な開発を削減)
Copyright (c) 2014 Junichiro Ueno
開発コストの削減結果
につながる
Copyright (c) 2014 Junichiro Ueno
!
AWSを利用した2つのコスト目線 !
• 開発コストの削減 • 運用コストの最適化
Copyright (c) 2014 Junichiro Ueno
運用コストの最適化
Copyright (c) 2014 Junichiro Ueno
開発時の コストを減らす
コスト検討パターン1
Copyright (c) 2014 Junichiro Ueno
• 本番はRDSを想定 • 開発時はローカルDB
例えば
Copyright (c) 2014 Junichiro Ueno
EC2 • 出勤時に起動 • 帰宅時に停止
例えば
Copyright (c) 2014 Junichiro Ueno
小さいところから コツコツとw
Copyright (c) 2014 Junichiro Ueno
運用時の コストを減らす
コスト検討パターン2
Copyright (c) 2014 Junichiro Ueno
開発するものを どう公開するか
Copyright (c) 2014 Junichiro Ueno
静的なサイト • コーポレートサイト • ランディングページ
Copyright (c) 2014 Junichiro Ueno
Amazon EC2
• WordPress • HTML • JS • CSS
Copyright (c) 2014 Junichiro Ueno
構成 EC2 m1.small 使用量 100%/月
月額 $ 44.66 Amazon EC2
Copyright (c) 2014 Junichiro Ueno
構成 EC2 t1.micro 使用量 100%/月
月額 $ 19.04 無料枠利用 $ 0.00
Amazon EC2
Copyright (c) 2014 Junichiro Ueno
構成 EC2 t1.micro使用量 100%/
月額 $ 無料枠利用
Amazon EC2
AWS 無料利用枠には Linux および Windows の毎月 750 時間分の マイクロインスタンスが含まれます
(1 年間)。
Copyright (c) 2014 Junichiro Ueno
開発の内容次第で 1年間無料になる
Copyright (c) 2014 Junichiro Ueno
• HTML • JS • CSSAmazon S3
Copyright (c) 2014 Junichiro Ueno
構成 S3 ストレージ 1GB !
月額 $ 0.03 無料枠利用 $ 0.00
Amazon S3
Copyright (c) 2014 Junichiro Ueno
構成 S3 ストレージ 1GB!
月額 $ 無料枠利用
Amazon S3
• 5 GB 標準ストレージ • 20,000 Get リクエスト • 2,000 Put リクエスト
Copyright (c) 2014 Junichiro Ueno
開発の内容次第で 1年間無料になる
Copyright (c) 2014 Junichiro Ueno
1年以降も 月額 $0.03 で利用可能
Copyright (c) 2014 Junichiro Ueno
参考事例
Copyright (c) 2014 Junichiro Ueno
Copyright (c) 2014 Junichiro Ueno
S3で公開 WordPressもいいのだが 更新頻度が低い、もしくは更新が単純なら S3で十分対応できる !
※ 現在はWordPressで運用中
Copyright (c) 2014 Junichiro Ueno
S3での運用 • 独自ドメインで利用可能 • 99.99 % の可用性
Copyright (c) 2014 Junichiro Ueno
• 公開しているものは同じ • 利用サービスは異なる
2パターンの相違点
Copyright (c) 2014 Junichiro Ueno
• EC2静的サイト以外もOK
• S3静的ウェブサイトに最適
2パターンの相違点
Copyright (c) 2014 Junichiro Ueno
何が違う? !
Copyright (c) 2014 Junichiro Ueno
何が違う? • AWS利用料
Copyright (c) 2014 Junichiro Ueno
何が違う? • AWS利用料 • 運用費(人件費)
Copyright (c) 2014 Junichiro Ueno
EC2の場合 • 運用監視 • トラブル対応
Copyright (c) 2014 Junichiro Ueno
S3の場合 • 特になし
※ 細かい考慮はせず
Copyright (c) 2014 Junichiro Ueno
運用まで検討すると 何が最適であるか?
Copyright (c) 2014 Junichiro Ueno
開発時に 運用環境を想定して
設計する
Copyright (c) 2014 Junichiro Ueno
Copyright (c) 2014 Junichiro Ueno
開発を意識 ↓
環境を意識 ↓
コストを意識 ↓
環境を修正
Copyright (c) 2014 Junichiro Ueno
サービスサイト • アクセス数を意識 • データ量の増大を意識
Copyright (c) 2014 Junichiro Ueno
単純に構築
Copyright (c) 2014 Junichiro Ueno
Amazon EC2 RDS DB Instance
Copyright (c) 2014 Junichiro Ueno
• RDSの負荷対策 • → スケールアップ • → リードレプリカ
アクセス数が増加したら?
コストも増大
Copyright (c) 2014 Junichiro Ueno
構成を変えてみる
Copyright (c) 2014 Junichiro Ueno
Amazon EC2 DynamoDB
Copyright (c) 2014 Junichiro Ueno
• DynamoDBの負荷対策 • → IOPSの調整
アクセス数が増加したら?
Copyright (c) 2014 Junichiro Ueno
参照系として利用 • RDSのリードレプリカを並べるより安価→ リードレプリカは起動も遅い
• パフォーマンスの調整も簡単→ IOPSを調整すれば良い
• なにより圧倒的な信頼性→ 分散型で強い整合性を持つ
Copyright (c) 2014 Junichiro Ueno
• アクセス数は? • データ容量は? • データ集計は?
設計から再度検討する
Copyright (c) 2014 Junichiro Ueno
DynamoDB • 読込IOPSは比較的安価 • 拡張性、パフォーマンス、信頼性 • 書込IOPSの値段は高い • 検索、集計には強くない
Copyright (c) 2014 Junichiro Ueno
書込負荷を軽減
Copyright (c) 2014 Junichiro Ueno
Amazon EC2
DynamoDB
Amazon SQS
Amazon EC2 RDS DB Instance
Copyright (c) 2014 Junichiro Ueno
SQS キューの追加に制限がなく、 データロストがない(冗長構成) 低コストで利用可能 → 急激な負荷に耐えつつ ある程度パフォーマンス保証 ※ メッセージは重複する
Copyright (c) 2014 Junichiro Ueno
Worker SQSからデータを取得し、 DynamoDBとRDSを更新 → データ取得量を調整が可能 瞬間ピークにも焦らなくて済む
Copyright (c) 2014 Junichiro Ueno
RDSも併用可能 • 集計させたいデータ • 検索させたいデータ
Copyright (c) 2014 Junichiro Ueno
固定概念で設計しない
Copyright (c) 2014 Junichiro Ueno
RDSはデータ量次第では 頭打ちになることも
(パフォーマンスを上げるためにはスケールアップ)
Copyright (c) 2014 Junichiro Ueno
システムとして 実現可能ではなく 運用コストまで検討(寿命の長いシステムを構築)
Copyright (c) 2014 Junichiro Ueno
まとめ
Copyright (c) 2014 Junichiro Ueno
運用コストも 見据えたシステム開発 (新しい目線で設計)
Copyright (c) 2014 Junichiro Ueno
何が最適か? • 安いことが最適ではない • 拡張性・柔軟性も重要 • 無駄なコストはないか
Copyright (c) 2014 Junichiro Ueno
どのようなシステムが必要なのか→ これを考えることが重要
Copyright (c) 2014 Junichiro Ueno
• システムの見極め • 利用するサービス • 運用コスト
何をつくるかを定めた上で
Copyright (c) 2014 Junichiro Ueno
Do the Right Things Right.
Thank you for listening! Lets us make new cloud modeling together!