infotalk - wakame
DESCRIPTION
Wakame-fuel automates the maintenance of the networked server configuration.TRANSCRIPT
Wakameで始めるAWS
株式会社あくしゅ
山崎泰宏
山崎泰宏の自己紹介
新しもの好きな小さい会社やってます
Virtual Sound Horror House - 1999
Virtual Sound Horror House - 1999
Paco - 2001
Paco - 2001
Paco - 2001
Viewer 仮想空間
『なんか、Webの世界もVRっぽいな』
Browser Web
そこで2000年にコミュニテゖプラットフォームを作りましたが…
見事スケーラビリティに屈した
2000年当時は何が課題だったか
• 物理サーバを調達できなかった
– 学生だったので買うのは一大決心だった
• (それでも5台までは何とかした…)
– 研究室に置くところが無かった!
• スケールアウトのノウハウが無かった
– 作ったソフトウェゕがボトルネックとなって分散させられない
置く場所を借りたら良い
従来のハウジングデータセンタ
従来のホスティングデータセンタ
負荷が高いので、サーバ追加したいんですけど…
はい!1週間かかります♪
設定ミスっちゃったので、電源入れ直したいんですけど…
はい!1万円かかります♪
どうやらサーバのHDDが故障したみたいなんですけど…
はい!セットアップからやり直してください♪
僕たちは何かにおびえながらサーバの中に閉じ込められて暮らしていたようなものです。
そうこうしていたらIaaS型クラウドが出てきた
僕たちはそれの何に歓喜したか
仮想化されているところ…だろうか?
VPSなら他にもあります!
所有から利用へ…だろうか?
それはリースの話しです!
従量課金になったから…だろうか?
かつては時間割制でした!
では一体何が…
Web APIによる自動応答があるからです
負荷が高いので、サーバ追加したいんですけど…
Web APIはい!数分でやります♪
設定ミスっちゃったので、電源入れ直したいんですけど…
Web APIはい!無料でやります♪
どうやらサーバのHDDが故障したみたいなんですけど…
Web APIはい!過去の複製を起動します♪
これは運用が劇的に変わる
しかも、良い方向に。
あなたが神か…
ここまでのまとめ
• Amazon Web Servicesは-
– 仮想マシンを巧みに利用したホステゖングサービス
– Web APIを提供し、顧客に自由とスピードを与えた
• 言い方を変えると、セルフサービス化をした
• 従量課金制はWeb APIのスピードを殺さない手法
正確にはブラウザなどのクライアントソフトウェアから
Web APIに指示が行く
例) Elasticfox / S3Fox (Firefox Plugin)
Elasticfox
S3Fox
Web APIと通信する様子も確認可
…と言うことは、マウスに触れずサーバを起動するとか色々と全自動化する仕組みが…
…できた!
2009年4月22日に最初のリリース。
Wakameはデータセンタを高レベルでコントロールするもの
1.管理すべきマシン全てにンストールし、手順を与えることでそれを自動的に実行する。 システム管理者の代わりに働く!
2.応用としてシステムのスケールゕウトが可能になる。 Amazon EC2と組み合わせてご利用いただくと効果抜群!
3.Ruby+AMQPの構成で動くオープンソースソフトウェゕ。 どなたでも無償である限り無料でご利用可能!
Wakameは人間が管理するより素早くサーバ台数を自動で増やす
ロードバランサ
Webサーバ
DBサーバ
初期状態
ロードバランサ
Webサーバ
DBサーバ
(1) マシン確保
ロードバランサ
Webサーバ
DBサーバ
Webサーバ
(2) サービス起動
ロードバランサ
Webサーバ
DBサーバ
Webサーバ
(3) 接続
Wakameは、これらを数分で完了させます
逆順で減らすこともできる
減らすことがメリットになる
サーバ数
時間
事業目標で求められるサーバ数
事業の過程で求められる理想的なサーバ数
大手企業的なゕプローチのサーバ数
潤沢な初期費用
キャンペーン後の効果(定着)
キャンペーン中(
流入)
不要なサーバ数
どのくらい簡単になるのか
Rails(mod_passenger)用のマシンを10台にしたい時
# wakameadm propagate_service ¥Apache_APP 10
コマンド1行で、後は見ているだけでOKです。
MySQL(Slave)用のマシンを5台にしたい時
# wakameadm propagate_service ¥MySQL_Slave 5
MySQLのMaster DBからReplicationが始まります。
Load
Balancer
Load
Balancer
MySQL
Slave
Static Passenger
MySQL
Slave
MySQL
Slave
PassengerPassenger
MySQL
Master
クリエイティブな時間にしろ、って
小島さんも言っているわけだし
標準で対応しているプロダクト
• 組込済– 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相当のことを書くだけなのでシンプル
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など
全体像の概要
Storage
Machine
Image
File
Wakameの原理(1/7)
Master
Agent
Server + Xen Others(Web+DB+
etc.)
Server + XenServer + Xen
Web APIマシン起動
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.)
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.)
サービス起動指示
サービス起動
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.)
スケールゕウト計画の指示
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.)
マシン起動
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.)
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.)
サービス起動指示
サービス起動
勝手に増えた!
デモンストレーション
• 概要
– サーバ数を指定すると、自動的にWebサーバが増強されるデモです
– 増えたWebサーバにゕクセスが分散していることを確認します
初期状態
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.)
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)
デモの進行
• 次に計画的スケールを実施します– Webサーバを1台から5台にスケールゕウトします
– Webサーバを5台から1台に減らします
• ブラウザで動作確認をします
LB
Web Web Web Web Web
LB
Web
Wakame v.s. Auto Scaling
• Auto Scalingは基本的にンスタンスの起動と終了をコントロールする
– Reactive Scaling(負荷に反応する)
– 簡単で良い!
• Wakameは、Linuxプロセスとして動く為、もっと積極的に管理したい人向け
– 主にProactive Scaling(計画的に行動する)
Wakameは何故Proactive Scalingにしたのか?
• Reactiveは、簡単だがシビア
– 負荷の閾値調整が大変
• 緩めれば、必要無い台数増えてしまう。
• 締めつければ、必要な時に増えなくなってしまう。
– 予算が見積もりづらい
• Proactive ScalingはReactiveもカバー
– トリガを自由に定義できる
• 時間をトリガにして計画的スケーリング
• 負荷をトリガにしてReactiveな挙動に見せかける
Wakameの得意な仕事
• CPU負荷/トラフゖックと関係のないスケールゕウト– バッチ処理など
• スケールゕウト/ンに対する+αの処理– 監視との連動
– L7的には通信可能でも、すぐLBに加えず、もう少しゕプリが準備できるまで待つ
– サーバ終了前のログ退避手順の実行
– MySQLのレプリケーション手順の実行
積極的に管理する例
• 東芝様のフゔームウェゕ配信にWakameが使われている (from 日経SYSTEMS)
– http://itpro.nikkeibp.co.jp/article/NEWS/20100226/345120/
• 某広告集配信サービス
– ユーザ単位に配信すべき広告をバッチ処理
• Queue(Amazon SQS)からpopしてひたすら処理するので、CPU負荷は一定のまま
• Queueにある程度溜まり始めたら増やしたい
開発者への余波
今までと違う「当たり前」の世界
今使っているサーバを必死にメンテナンスする必要はもうない
ec2-run-instances
さっさと新しいマシンを用意して
ec2-terminate-instances
捨てるのが当たり前
これらがたった数分の間に起こる時代
新時代の開発者はこの事実を使いこなす
まとめ
• AWSを使うと、運用が劇的に変わる
– 人間よりも遙かに素早い応答
• Web APIこそIaaS型クラウドの神髄
– プログラマブルゆえの運用全自動化
• Wakameのような複雑なオートスケール
• 構成が変化することを前提としたシステム開発を
– 必要なときに必要なだけ
• マシンの使い捨てで形作られるワークスタル
• Wakameで素敵なAWSラフを。
82
『世界のクラウドソリューションへ!』
axsh co., LTD.
83
まだまだ楽しくやんよ!