infotalk - wakame

Post on 15-May-2015

1.075 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

まだまだ楽しくやんよ!

top related