awsを利用してdevとopsの間を考える

Post on 22-May-2015

562 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

開発BAKUFU!!「アジャイル、Ruby、AWS三つ巴戦」発表資料

TRANSCRIPT

AWSを利用してDevとOps

の間を考える2013/12/07

開発BAKUFU!!「アジャイル、Ruby、AWS三つ巴戦」

面白法人カヤック 2FスペースJunichiro Ueno / @jun116

http://devlove-kamakura.doorkeeper.jp/events/7226

Junichiro Ueno

上野 潤一郎 Community :  DevLOVE !

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

twitter : @jun116 facebook : junichiro.ueno

技術ブログ Developers.IO

!

http://dev.classmethod.jp/ !

AWSの情報も豊富

Devとして 開発時に考えること

計画 設計

技術 インフラ

計画 設計

技術 インフラ

AWS利用以前 インフラ = 箱

用意されたものを利用 場合によっては リリース環境不明

本番環境相当ではないステージング環境

• テスト • パフォーマンス調整

AWS利用 インフラ ≠ 箱

• EC2 • RDS • S3 • DynamoDB

• SQS • SES • SNS

サーバだけではない

Devとして AWSを利用して どんな環境を構築 するのかを考える

最初の視点は 開発工数を減らす

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

• SES安価、高い信頼性

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

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

次の視点は 開発時の

コストを減らす

本番はRDSを想定 開発時は

ローカルDB

EC2 帰宅時にインスタン

スを落とす (出勤時に起動)

コストと逆だが 開発者1人毎に

• 専用インスタンス • 専用バケット

開発時に 運用環境を想定する

開発を意識 ↓

環境を意識 ↓

コストを意識 ↓

環境を修正

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

静的なサイト

Amazon EC2

• Apache • HTML • JS • CSS

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

月額 $ 64.42

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

月額 $ 19.77 無料枠利用 $ 0.00

• HTML • JS • CSSAmazon S3

構成 S3  ストレージ 1GB !

月額 $ 0.10 無料枠利用 $ 0.00

開発したものは同じ デプロイ先は異なる

何が違う? • AWS利用料

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

S3の場合 • 特になし

※ 細かい考慮はせず

何が違う? • AWS利用料 • Ops側の運用費

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

単純に構築

Amazon EC2 RDS DB Instance

大量アクセスゆえに • RDSの負荷 • リードレプリカを並べる

!

コスト増大

構成を変えてみる

Amazon EC2 DynamoDB

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

Amazon EC2 DynamoDB

Amazon SQS

Amazon EC2

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

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

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

RDSじゃないの?

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

DynamoDBを データ読込に活用

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

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

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

RDSも併用可能 • 永続化させたいデータ • 検索させたいデータ

環境構築

Chef?

AWSなら CloudFormation

Stack単位で テンプレート管理

すべてテンプレートで管理 • 開発環境 • ステージング環境 • 本番環境

何度でも 環境構築可能

環境変更(update)も CloudFormation で行うのが良い!

なぜ !

今の環境を テンプレートから

読み取ることもできる

あくまで一例

AWSを利用 し始めた結果

開発の役割が 増えた!?

Dev • コスト意識 • 運用意識

開発時から 公開に向けて考える

それって 開発が運用も行う?

それでは開発は 回らなくなる!

だから 運用は運用に

だから 運用に必要なもの はなんだろう?

Dev から

Ops

SPOFはないよ

運用に必要なツール とかある?

トラブル時の対応方法

Ops から

Dev

どんな構成?

EC2が落ちると どうなる?

復旧方法は?

実際は 開発スケジュール

が・・・

だから

Dev !

     ← ここ !

Ops

環境構築をサポート • コストを意識した構築→ 環境改善

• 運用とのやりとり→ 開発の思い込みを解消

こういうポジションの存在が必要になるのではないか!

いままで !

開発したもの を提供する

これから !

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

まとめ

インフラ = 箱 からの脱却

AWS アプリケーションサービス • SQS、SES、SNS を活用することで

信頼性、堅牢性を担保

最初の視点は 開発工数を減らす

次の視点は 開発時の

コストを減らす

さらに 開発時に

運用環境を想定する

運用時の コストも減らす

結果 Devは変わる

Opsも変わる(はず)

そんな組織 をサポートしていく

DevとOps の間から

(本当は間じゃないけど)

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

top related