34
Wakame でででで Rails ででででででで 株株株株株株株株 株株株株

20090717 Ruby Kaigi Lightning Talk

Embed Size (px)

DESCRIPTION

Wakame is an Open Source Project in Ruby to control servers on Amazon EC2.

Citation preview

Page 1: 20090717  Ruby Kaigi  Lightning Talk

Wakame で手軽にRails を大規模化す

る株式会社あくしゅ

山崎泰宏

Page 2: 20090717  Ruby Kaigi  Lightning Talk

例えばこんな話!

Page 3: 20090717  Ruby Kaigi  Lightning Talk

ある日突然僕のサイトにたくさんの人が来た

Page 4: 20090717  Ruby Kaigi  Lightning Talk

あっさり

キャパシティオーバー

Page 5: 20090717  Ruby Kaigi  Lightning Talk

ボスが怒ってる!「なんとかしろ!」

Page 6: 20090717  Ruby Kaigi  Lightning Talk

「えっ?!」

Page 7: 20090717  Ruby Kaigi  Lightning Talk

急に言われても、

今いっぱいいっぱいです…

Page 8: 20090717  Ruby Kaigi  Lightning Talk
Page 9: 20090717  Ruby Kaigi  Lightning Talk

「…や、やります」

Page 10: 20090717  Ruby Kaigi  Lightning Talk

「明日の朝までにな!」

Page 11: 20090717  Ruby Kaigi  Lightning Talk

Page 12: 20090717  Ruby Kaigi  Lightning Talk

急にスケールアウトしとけとか言われて泣きそうになったこと、ありませんか?

Page 13: 20090717  Ruby Kaigi  Lightning Talk

間に合わないからAmazon EC2 にしよう!

Page 14: 20090717  Ruby Kaigi  Lightning Talk

これで仮想マシンの調達が

自動化できちゃう!

けど!

Page 15: 20090717  Ruby Kaigi  Lightning Talk

セットアップは手動なのか?!

俺がやんの?

Page 16: 20090717  Ruby Kaigi  Lightning Talk

2009/6/26 Ver. 0.4 Release

# gem install wakame

セットアップも自動化すべき!

Page 17: 20090717  Ruby Kaigi  Lightning Talk

# wakameadm propagate_service \ Wakame::Service::Apache_APP 10

Rails (passenger) を

10個増やす!

Page 18: 20090717  Ruby Kaigi  Lightning Talk

# wakameadm propagate_service \ Wakame::Service::MySQL_Slave 3

MySQL レプリケーションも3個追加する!

Page 19: 20090717  Ruby Kaigi  Lightning Talk

あと見てるだけ

Page 20: 20090717  Ruby Kaigi  Lightning Talk

Load Balanc

er

Load Balanc

er

MySQLSlave

Static Passenger

MySQLSlave

MySQLSlave

PassengerPassenger

MySQL Master

Rails が増える!

MySQL が増える!

大規模化する… !

Page 21: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIs

Amazon S3

Amazon Machine Image

Amazon EC2

Amazon Management Console / Elasticfox

Wakame はどのように増えるか ?

Page 22: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

Wakame をインストールしておく(1/7)

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIsマシン起動

Wakame

Page 23: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

マシンイメージを起動する (2/7)

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIs

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

インスタンスの起動

Page 24: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

Master は Agent に指示をする (3/7)

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIs

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

サービス起動指示

サービス起動

Page 25: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

スケールアウトしろ! (4/7)

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIs

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

スケールアウト計画の指示

Page 26: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

Master から新インスタンスを要求(5/7)

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIs

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

マシン起動

Page 27: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

新しい Agent が登場 (6/7)

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIs

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

インスタンスの起動

Page 28: 20090717  Ruby Kaigi  Lightning Talk

Storage

Machine Image

File

新 Agent 経由でセットアップ (7/7)

Master

Agent

Server + XenOther

s(Web+DB+etc.)

Server + XenServer + Xen

Web APIs

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

Machine Image

File

Master

Agent

Others

(Web+DB+etc.)

サービス起動指示

サービス起動

Page 29: 20090717  Ruby Kaigi  Lightning Talk

いまどき

ソフトウェアは最初から

スケールアウト可能なように

書くのが当たり前です!

しかし!

Page 30: 20090717  Ruby Kaigi  Lightning Talk

大規模サイトの運用まで経験した人は数少ない!

珍獣

Page 31: 20090717  Ruby Kaigi  Lightning Talk

混ぜてみよう

Page 32: 20090717  Ruby Kaigi  Lightning Talk

Wakame まとめLet’s 実験 ,

be 珍獣Rails を大規模化できる

手軽に

Page 33: 20090717  Ruby Kaigi  Lightning Talk

Photo copyrights

http://www.flickr.com/photos/fotoosvanrobin/3644415777/http://www.flickr.com/photos/zadeus/345628105/http://www.flickr.com/photos/janramroth/2596734632/http://www.flickr.com/photos/smailtronic/506742200/http://www.flickr.com/photos/66164549@N00/2093219011/http://www.flickr.com/photos/gillesgonthier/2158761836/http://www.flickr.com/photos/tscherno/1439629882/http://www.flickr.com/photos/55638925@N00/2386548957/http://www.flickr.com/photos/mscheltgen/56521788/http://www.flickr.com/photos/falsepositives/2862982252/http://www.flickr.com/photos/tsackett/8664708/http://www.flickr.com/photos/a_mason/3993146/http://www.flickr.com/photos/smatkins/2233167722/http://www.flickr.com/photos/rhouse/1679839435/

Creative Commons - Attribution-Share Alike 2.0 Generic

Page 34: 20090717  Ruby Kaigi  Lightning Talk

分散テクノロジグループ山崎泰宏 ([email protected] / @sparklegate)藤原勝弘 ([email protected])吉田将士 ([email protected])三上悟  ([email protected])

http://github.com/axsh/wakame/