infotalk - wakame

83
Wakameで始めるAWS 株式会社あくしゅ 山崎泰宏

Upload: axsh-co-ltd

Post on 15-May-2015

1.075 views

Category:

Technology


2 download

DESCRIPTION

Wakame-fuel automates the maintenance of the networked server configuration.

TRANSCRIPT

Page 1: InfoTalk - Wakame

Wakameで始めるAWS

株式会社あくしゅ

山崎泰宏

Page 2: InfoTalk - Wakame

山崎泰宏の自己紹介

Page 3: InfoTalk - Wakame

新しもの好きな小さい会社やってます

Page 4: InfoTalk - Wakame
Page 5: InfoTalk - Wakame

Virtual Sound Horror House - 1999

Page 6: InfoTalk - Wakame

Virtual Sound Horror House - 1999

Page 7: InfoTalk - Wakame

Paco - 2001

Page 8: InfoTalk - Wakame

Paco - 2001

Page 9: InfoTalk - Wakame

Paco - 2001

Page 10: InfoTalk - Wakame

Viewer 仮想空間

Page 11: InfoTalk - Wakame

『なんか、Webの世界もVRっぽいな』

Page 12: InfoTalk - Wakame

Browser Web

Page 13: InfoTalk - Wakame

そこで2000年にコミュニテゖプラットフォームを作りましたが…

Page 14: InfoTalk - Wakame

見事スケーラビリティに屈した

Page 15: InfoTalk - Wakame

2000年当時は何が課題だったか

• 物理サーバを調達できなかった

– 学生だったので買うのは一大決心だった

• (それでも5台までは何とかした…)

– 研究室に置くところが無かった!

• スケールアウトのノウハウが無かった

– 作ったソフトウェゕがボトルネックとなって分散させられない

Page 16: InfoTalk - Wakame

置く場所を借りたら良い

Page 17: InfoTalk - Wakame

従来のハウジングデータセンタ

Page 18: InfoTalk - Wakame

従来のホスティングデータセンタ

Page 19: InfoTalk - Wakame

負荷が高いので、サーバ追加したいんですけど…

はい!1週間かかります♪

Page 20: InfoTalk - Wakame

設定ミスっちゃったので、電源入れ直したいんですけど…

はい!1万円かかります♪

Page 21: InfoTalk - Wakame

どうやらサーバのHDDが故障したみたいなんですけど…

はい!セットアップからやり直してください♪

Page 22: InfoTalk - Wakame

僕たちは何かにおびえながらサーバの中に閉じ込められて暮らしていたようなものです。

Page 23: InfoTalk - Wakame
Page 24: InfoTalk - Wakame

そうこうしていたらIaaS型クラウドが出てきた

Page 25: InfoTalk - Wakame

僕たちはそれの何に歓喜したか

Page 26: InfoTalk - Wakame

仮想化されているところ…だろうか?

Page 27: InfoTalk - Wakame

VPSなら他にもあります!

Page 28: InfoTalk - Wakame

所有から利用へ…だろうか?

Page 29: InfoTalk - Wakame

それはリースの話しです!

Page 30: InfoTalk - Wakame

従量課金になったから…だろうか?

Page 31: InfoTalk - Wakame

かつては時間割制でした!

Page 32: InfoTalk - Wakame

では一体何が…

Page 33: InfoTalk - Wakame

Web APIによる自動応答があるからです

Page 34: InfoTalk - Wakame

負荷が高いので、サーバ追加したいんですけど…

Web APIはい!数分でやります♪

Page 35: InfoTalk - Wakame

設定ミスっちゃったので、電源入れ直したいんですけど…

Web APIはい!無料でやります♪

Page 36: InfoTalk - Wakame

どうやらサーバのHDDが故障したみたいなんですけど…

Web APIはい!過去の複製を起動します♪

Page 37: InfoTalk - Wakame

これは運用が劇的に変わる

しかも、良い方向に。

Page 38: InfoTalk - Wakame

あなたが神か…

Page 39: InfoTalk - Wakame

ここまでのまとめ

• Amazon Web Servicesは-

– 仮想マシンを巧みに利用したホステゖングサービス

– Web APIを提供し、顧客に自由とスピードを与えた

• 言い方を変えると、セルフサービス化をした

• 従量課金制はWeb APIのスピードを殺さない手法

Page 40: InfoTalk - Wakame

正確にはブラウザなどのクライアントソフトウェアから

Web APIに指示が行く

Page 41: InfoTalk - Wakame

例) Elasticfox / S3Fox (Firefox Plugin)

Elasticfox

S3Fox

Page 42: InfoTalk - Wakame

Web APIと通信する様子も確認可

Page 43: InfoTalk - Wakame

…と言うことは、マウスに触れずサーバを起動するとか色々と全自動化する仕組みが…

Page 44: InfoTalk - Wakame

…できた!

2009年4月22日に最初のリリース。

Page 45: InfoTalk - Wakame

Wakameはデータセンタを高レベルでコントロールするもの

1.管理すべきマシン全てにンストールし、手順を与えることでそれを自動的に実行する。 システム管理者の代わりに働く!

2.応用としてシステムのスケールゕウトが可能になる。 Amazon EC2と組み合わせてご利用いただくと効果抜群!

3.Ruby+AMQPの構成で動くオープンソースソフトウェゕ。 どなたでも無償である限り無料でご利用可能!

Page 46: InfoTalk - Wakame

Wakameは人間が管理するより素早くサーバ台数を自動で増やす

ロードバランサ

Webサーバ

DBサーバ

初期状態

ロードバランサ

Webサーバ

DBサーバ

(1) マシン確保

ロードバランサ

Webサーバ

DBサーバ

Webサーバ

(2) サービス起動

ロードバランサ

Webサーバ

DBサーバ

Webサーバ

(3) 接続

Wakameは、これらを数分で完了させます

Page 47: InfoTalk - Wakame

逆順で減らすこともできる

Page 48: InfoTalk - Wakame

減らすことがメリットになる

サーバ数

時間

事業目標で求められるサーバ数

事業の過程で求められる理想的なサーバ数

大手企業的なゕプローチのサーバ数

潤沢な初期費用

キャンペーン後の効果(定着)

キャンペーン中(

流入)

不要なサーバ数

Page 49: InfoTalk - Wakame

どのくらい簡単になるのか

Page 50: InfoTalk - Wakame

Rails(mod_passenger)用のマシンを10台にしたい時

# wakameadm propagate_service ¥Apache_APP 10

コマンド1行で、後は見ているだけでOKです。

Page 51: InfoTalk - Wakame

MySQL(Slave)用のマシンを5台にしたい時

# wakameadm propagate_service ¥MySQL_Slave 5

MySQLのMaster DBからReplicationが始まります。

Page 52: InfoTalk - Wakame

Load

Balancer

Load

Balancer

MySQL

Slave

Static Passenger

MySQL

Slave

MySQL

Slave

PassengerPassenger

MySQL

Master

Page 53: InfoTalk - Wakame
Page 54: InfoTalk - Wakame

クリエイティブな時間にしろ、って

小島さんも言っているわけだし

Page 55: InfoTalk - Wakame

標準で対応しているプロダクト

• 組込済– Apache2 (Load Balancer/Asset/Application)

– Nginx (Asset/Application)

– MySQL (Master/Slave)

– memcached

– Elastic Load Balancing

– Elastic IP

• 現在対応中– MongoDB (Multi Master - Sharding)

• 自分で拡張することも可能– start/stopなどのベントに応じたコントロール– init.d相当のことを書くだけなのでシンプル

Page 56: InfoTalk - Wakame

Wakameはシステム管理者としてどのような振る舞いをするのか

Page 57: InfoTalk - Wakame

Storage

Machine

Image

File

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Amazon

S3

Amazon

Machine

Image

Amazon EC2

Elasticfoxなど

全体像の概要

Page 58: InfoTalk - Wakame

Storage

Machine

Image

File

Wakameの原理(1/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web APIマシン起動

Wakame

Page 59: InfoTalk - Wakame

Storage

Machine

Image

File

Wakameの原理(2/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

Page 60: InfoTalk - Wakame

Storage

Machine

Image

File

Wakameの原理(3/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

サービス起動指示

サービス起動

Page 61: InfoTalk - Wakame

Storage

Machine

Image

File

Wakameの原理(4/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

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

Page 62: InfoTalk - Wakame
Page 63: InfoTalk - Wakame

Storage

Machine

Image

File

Wakameの原理(5/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

マシン起動

Page 64: InfoTalk - Wakame

Storage

Machine

Image

File

Wakameの原理(6/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

Page 65: InfoTalk - Wakame

Storage

Machine

Image

File

Wakameの原理(7/7)

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

サービス起動指示

サービス起動

勝手に増えた!

Page 66: InfoTalk - Wakame

デモンストレーション

• 概要

– サーバ数を指定すると、自動的にWebサーバが増強されるデモです

– 増えたWebサーバにゕクセスが分散していることを確認します

Page 67: InfoTalk - Wakame

初期状態

Storage

Machine

Image

File

Master

Agent

Server + Xen Others(Web+DB+

etc.)

Server + XenServer + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

Page 68: InfoTalk - Wakame

Storage

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

SSH接続して詳細を確認する

Server + XenServer + Xen

Server + Xen

Web API

Machine

Image

File

Master

Agent

Others(Web+DB+

etc.)

wakameadm

root@ip-10-251-xx-xx:~#root@ip-10-251-xx-xx:~# top

top - 08:48:02 up 2 min, 1 user, load average: 0.04, 0.07, 0.03

…(snip)…

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1237 root 15 0 28648 13m 2108 R 0.0 0.8 0:00.07 wakame-agent

1254 wakame 15 0 47416 32m 2228 R 0.0 1.9 0:00.44 wakame-master

root@ip-10-251-xx-xx:~#

root@ip-10-251-xx-xx:~# top

top - 08:48:02 up 2 min, 1 user, load average: 0.04, 0.07, 0.03

…(snip)…

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1237 root 15 0 28648 13m 2108 R 0.0 0.8 0:00.07 wakame-agent

1254 wakame 15 0 47416 32m 2228 R 0.0 1.9 0:00.44 wakame-master

root@ip-10-251-xx-xx:~# ./wakameadm status

Cluster : Wakame::Service::WebCluster (0)

Wakame::Service::Apache_LB : <min=1, max=1>

Wakame::Service::Apache_WWW : <min=1, max=1>

Wakame::Service::Apache_APP : <min=1, max=5>

Wakame::Service::MySQL_Master : <min=1, max=1>

Agents :

i-f603649f : 10.251.xx.xx, 67.202.xx.xxx load=0.06, 3 sec(s) (1)

Page 69: InfoTalk - Wakame

デモの進行

• 次に計画的スケールを実施します– Webサーバを1台から5台にスケールゕウトします

– Webサーバを5台から1台に減らします

• ブラウザで動作確認をします

LB

Web Web Web Web Web

LB

Web

Page 70: InfoTalk - Wakame

Wakame v.s. Auto Scaling

• Auto Scalingは基本的にンスタンスの起動と終了をコントロールする

– Reactive Scaling(負荷に反応する)

– 簡単で良い!

• Wakameは、Linuxプロセスとして動く為、もっと積極的に管理したい人向け

– 主にProactive Scaling(計画的に行動する)

Page 71: InfoTalk - Wakame

Wakameは何故Proactive Scalingにしたのか?

• Reactiveは、簡単だがシビア

– 負荷の閾値調整が大変

• 緩めれば、必要無い台数増えてしまう。

• 締めつければ、必要な時に増えなくなってしまう。

– 予算が見積もりづらい

• Proactive ScalingはReactiveもカバー

– トリガを自由に定義できる

• 時間をトリガにして計画的スケーリング

• 負荷をトリガにしてReactiveな挙動に見せかける

Page 72: InfoTalk - Wakame

Wakameの得意な仕事

• CPU負荷/トラフゖックと関係のないスケールゕウト– バッチ処理など

• スケールゕウト/ンに対する+αの処理– 監視との連動

– L7的には通信可能でも、すぐLBに加えず、もう少しゕプリが準備できるまで待つ

– サーバ終了前のログ退避手順の実行

– MySQLのレプリケーション手順の実行

Page 73: InfoTalk - Wakame

積極的に管理する例

• 東芝様のフゔームウェゕ配信にWakameが使われている (from 日経SYSTEMS)

– http://itpro.nikkeibp.co.jp/article/NEWS/20100226/345120/

• 某広告集配信サービス

– ユーザ単位に配信すべき広告をバッチ処理

• Queue(Amazon SQS)からpopしてひたすら処理するので、CPU負荷は一定のまま

• Queueにある程度溜まり始めたら増やしたい

Page 74: InfoTalk - Wakame

開発者への余波

Page 75: InfoTalk - Wakame

今までと違う「当たり前」の世界

Page 76: InfoTalk - Wakame

今使っているサーバを必死にメンテナンスする必要はもうない

Page 77: InfoTalk - Wakame

ec2-run-instances

さっさと新しいマシンを用意して

Page 78: InfoTalk - Wakame

ec2-terminate-instances

捨てるのが当たり前

Page 79: InfoTalk - Wakame

これらがたった数分の間に起こる時代

Page 80: InfoTalk - Wakame

新時代の開発者はこの事実を使いこなす

Page 81: InfoTalk - Wakame

まとめ

• AWSを使うと、運用が劇的に変わる

– 人間よりも遙かに素早い応答

• Web APIこそIaaS型クラウドの神髄

– プログラマブルゆえの運用全自動化

• Wakameのような複雑なオートスケール

• 構成が変化することを前提としたシステム開発を

– 必要なときに必要なだけ

• マシンの使い捨てで形作られるワークスタル

• Wakameで素敵なAWSラフを。

Page 82: InfoTalk - Wakame

82

『世界のクラウドソリューションへ!』

Page 83: InfoTalk - Wakame

axsh co., LTD.

83

まだまだ楽しくやんよ!