59
IaaS型クラウドの概要と 挑戦 株式会社あくしゅ 山崎泰宏 ([email protected])

Wakame Tech #1

Embed Size (px)

DESCRIPTION

Challange: Try to create the IaaS type cloud. Demonstration of prototype.

Citation preview

Page 1: Wakame Tech #1

IaaS型クラウドの概要と挑戦

株式会社あくしゅ

山崎泰宏

([email protected])

Page 2: Wakame Tech #1

Motivation

2axsh co., LTD.

Page 3: Wakame Tech #1

本格的?本物?IaaS型クラウドが欲しい

• なぜ必要か

– 使って便利と感じている

• Amazon EC2 + Wakame

– 現行するIaaS型クラウドにも欠点がある

• レスポンス/レテンシ

• 複雑すぎる(シンプルなもので十分)

• 決済方法

• なぜ今か

– 日本に目立ったIaaS型クラウドがない

3axsh co., LTD.

Page 4: Wakame Tech #1

海外のIaaS型クラウドサービス

• Amazon EC2– IaaS型クラウドのパオニゕ

– 書籍も多いので詳しくはそちらを参照

• Softlayer– IaaS型クラウドのシンプル版

– 使って見たけど実は良く分かっていない• カツオ先生が詳しい

– Dropboxは最近こちらで動いている• 少なくともAPIはSoftlayer

4axsh co., LTD.

Page 5: Wakame Tech #1

比較的どうでも良い議論が多い(IaaS型)クラウド

• 「仮想化されたデータセンタ」– VPSもそうです。

• 「固定費が変動費化」or「所有から利用」– それはリースの効果

• 「時間課金ができる」– 課金モデルの話

– むしろ昔のコンピュータはそうだった

5axsh co., LTD.

Page 6: Wakame Tech #1

極力人間を関与させないリソースセンターであるべき

• 利用者から見て「プログラマブルである」– 極力人間が関与しない

• 機械的ゕクセスを許している

– API! API! API!

– “Datacenter as a Programmable Entity”

• データセンタ内部が「自動化されている」– 極力人間が関与しない

• あらゆるプロセスが自動化されている

– それに仮想化が便利なら使えば良い

6axsh co., LTD.

Page 7: Wakame Tech #1

これはンフラ屋さんを減らす技術だろう

• 人間がやってきたことをコンピュータにやらせる

– 今で言うンフラ屋さんの仕事は二極化する

• よりゕプリケーションの運用に近い側へ行く

• 「自動化を実現する人」になって行く

7axsh co., LTD.

Page 8: Wakame Tech #1

なぜかクラウドが持つリースモデルに逆行する動きも

• Public/Private Cloud– クラウドの所有を意識させる不思議ワード– データセンタとしてPublic/Privateはある

• コンシューマ向けiDC、自社データセンタやオフゖスサーバとか呼ばれていただけ

• Private Cloudは効率が悪いという指摘– 自社データセンタやオフゖスサーバは昔から効率が

悪いと言われ続けていたもの– 既存資産の活用という文脈になると

突然捨てられなくなる

• Eucalyptusの登場がPrivateの夢想を加速している...と正直思う

8axsh co., LTD.

Page 9: Wakame Tech #1

IaaS型クラウドを実現する?オープンソースソフトウェゕ

• Eucalyptus

• OpenNebula– 似たような名前のプロジェクトがいくつかあります

9axsh co., LTD.

Page 10: Wakame Tech #1

Eucalyptusの功罪

• 「オープンソース版Amazon EC2クローン」という紹介が良かったのか悪かったのか– 「ンフラ自動化が無料で手に入る」→狂喜!

• Eucalyptusそのものの目的は正しい– 元々学術機関向け– 本格実行前のプレ試験環境

• 本格的にやるときは研究費を使ってAmazon EC2でやる

– 持つ/持たないで効率の良い部分が異なっている• これを賢く使い分けよう、という道理の通った話• ”Not a designed as a replacement technology for

EC2 or any other cloud service”

10axsh co., LTD.

Page 11: Wakame Tech #1

OpenNebulaはグリッドの文脈が強いIaaS型クラウドソフトウェゕ

• グリッドコンピューテゖング生まれ

• IaaS型クラウドの流れに合わせて表現しなおしたもの(たぶん)

SQLiteD

om

ain

-U

Dom

ain

-U

Dom

ain

-U

Domain-0

SSH

oned

Remoteコマンド実行

11axsh co., LTD.

Page 12: Wakame Tech #1

その他ご存知ありませんか?

• IaaS型クラウドを実現できるソフトウェゕについてこの他に何かご存知の方

– @WakameTechまでTweetしてください

• NimbusやEnomaly辺りも気にはなっている

– 詳細は見ていない

• http://www.nimbusproject.org/

• http://www.enomaly.com/

12axsh co., LTD.

Page 13: Wakame Tech #1

日本のIaaS型クラウドの少し寂しい事情

• IaaS型クラウド

– Nifty Cloud

• 「本格的なIaaS型クラウド」

• VMwareを利用したVPS(まだ詳細不明)

• 法人専用?

• …やっぱり正直まだ無いです。

13axsh co., LTD.

Page 14: Wakame Tech #1

ほとんどコレジャナイ

14axsh co., LTD.

Page 15: Wakame Tech #1

僕たちが欲しいIaaS型クラウドはどこにあるのだろうか

• プログラマブル

• 自動化

15axsh co., LTD.

Page 16: Wakame Tech #1

プログラマブルであることのコダワリ

16axsh co., LTD.

Page 17: Wakame Tech #1

電子回路としてのハードウェゕ

Hardware Software

17axsh co., LTD.

Page 18: Wakame Tech #1

ネットワークとしてのハードウェゕ

Network Hardware Network Software

18axsh co., LTD.

Page 19: Wakame Tech #1

IaaS型クラウドに対するOS相当のソフトウェゕが必要

ハードウェアリソースをマネジメントするOS

• Threads

• Memory Allocation

• File I/Os

データセンタリソースをマネジメントするOS

• Servers

• Key-Value Stores

• Storage Provisioning

アプリケーションはOSを通じて

これらを自由に要求できる

19axsh co., LTD.

Page 20: Wakame Tech #1

だからIaaS型クラウドはプログラマブルじゃなきゃダメだ

20axsh co., LTD.

Page 21: Wakame Tech #1

リソースを操るソフトウェゕを作ってみた

• Wakame 0.3.0 - 4/22リリース

– 当時の開発者はカツオ先生一人

– どうせならオープンソースで

– 誰も見向きもしなくても、最終的に内々で便利に使えたら良いわけで。

21axsh co., LTD.

Page 22: Wakame Tech #1

“Wakame”

• Master-Agent型の非同期式手順実行エンジン– 複雑な処理の記述が可能

– ベントドリブンで動く

– マルチスレッド処理で効率良く

• 自動でスケールアウト/インなどが出来るようになる– IaaS型クラウドが提供する「サーバの準備」を手

順に組み込める

– プレスリリースはこちらで

• Rubyで書かれたオープンソース製品

22axsh co., LTD.

Page 23: Wakame Tech #1

Wakameの手順は”Action”と言う単位のワークフロー

• Actionの役割

– Actionの中にシーケンシャルな処理を記述する

– Actionから複数のActionを呼び出してパラレルな処理を記述できる

• それらの処理完了を待つことも可能

• 例)記述する内容

– 記憶しているシステム全体の状態を変更する

– IaaS型クラウドへリソースを要求する

23axsh co., LTD.

Page 24: Wakame Tech #1

プロダクトレベルにまとまった処理を記述する”Resource”

• 標準で用意されているResource

– Apache2 (Load Balancer/Asset/Application)

– Nginx(Asset/Application)

– MySQL(Master/Slave)

– memcached

– Elastic Load Balancing

– Elastic IP

• ActionからResourceを呼び出す– start/stopなどのベントに応じたコントロール

– init.d相当のことを書くだけなのでシンプル

24axsh co., LTD.

Page 25: Wakame Tech #1

依存関係グラフ

• プロダクトの論理的な依存関係図

– 起動・終了順序の決定

– 関係するプロダクトの状態が変更された場合のベント通知先

• Apache2の数が増えたらELBにンスタンスを登録するなど

LB

Asset APP

DB

25axsh co., LTD.

Page 26: Wakame Tech #1

Amazon EC2上でリソースが自動的に増強される流れ

ロードバランサ

Webサーバ

DBサーバ

初期状態

ロードバランサ

Webサーバ

DBサーバ

(1) マシン準備

ロードバランサ

Webサーバ

DBサーバ

Webサーバ

(2) サービス起動

ロードバランサ

Webサーバ

DBサーバ

Webサーバ

(3) 設定

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

26axsh co., LTD.

Page 27: Wakame Tech #1

スケールゕウト/ンが実現できる

• ゕプリケーションの論理構成を保ったままサーバ台数を増減することができる

– 設定なども自動的に変更される

• ゕプリケーションの持つボトルネックが解消されるわけではない

– そこはゕプリケーションの責任

LB

Asset APP

DB

APP APP APP APP

27axsh co., LTD.

Page 28: Wakame Tech #1

アプリケーションがスケールアウトするのではなく

インフラがスケールアウトするのです。

28axsh co., LTD.

Page 29: Wakame Tech #1

Wakameの実績

• 適用事例

– 広告集配信システムへの適用

– 某大手家電メーカー様のフゔームウェゕ配信サーバとして適用

• clomoから呼び出されて動きます。clomoの詳細は後ほどi3-systems様からお話いただきます。

• その他

– フクオカRuby大賞 クラウド特別賞受賞

29axsh co., LTD.

Page 30: Wakame Tech #1

ご紹介いただきました

雑誌・書籍Web Site Expert #27 (技術評論社様)

クラウドAmazon EC2/S3のすべて

Webサトgihyo.jp特集 (技術評論社様)

ベンチャーナウ様Slashdot.jp様その他各種ブログ

カンフゔレンスRuby会議2009 LT

30axsh co., LTD.

Page 31: Wakame Tech #1

Wakameで眠らないシステム管理者が作れた

並列処理大好き

31axsh co., LTD.

Page 32: Wakame Tech #1

スケールゕウトが自動化できるならンフラも自動化できないか?

• 手順エンジンなので、Wakameで「VMの準備」も自動化できるはず

– 既存のスケールゕウト/ンとも連携すればより高度な挙動も実現できる

• GAEとかHerokuとか作りたい

32axsh co., LTD.

Page 33: Wakame Tech #1

会社/自宅

iDC

できたらこんなことも可能かしら

33

GUI

LAN

開発環境に足す

開発で使う

WAN

Amazon

本番にデプロ

運用で使う

もちろん使える

axsh co., LTD.

Page 34: Wakame Tech #1

じゃあ、作ってみよう!

34axsh co., LTD.

Page 35: Wakame Tech #1

やり始めたら結構大変だった

• 運用面を考慮しだすと難しい

• とにかくネットワーク設計がさらに難しい

• ユーザ単位の課金とか一部はもう無理ぽ

35axsh co., LTD.

Page 36: Wakame Tech #1

すぐ実現する方法考えた!

36axsh co., LTD.

Page 37: Wakame Tech #1

プログラマブルなIaaS型クラウドをすぐに実現する方法

ClientWeb

API

DB

結果入力

37axsh co., LTD.

Page 38: Wakame Tech #1

IaaSの前にHaaSってあったね

Human as a Service

38axsh co., LTD.

Page 39: Wakame Tech #1

自動化していない…だと…?

• なのでソフトウェゕの力を借りなければなりません。

– ここでやっと仮想化

• XenかKVMで良いでしょう

– Wakameの出番です

• なぜならそこに手順があるから

39axsh co., LTD.

Page 40: Wakame Tech #1

自動化された運用面での課題

• 検索– レンタルされている仮想マシンスペースを

ユーザ単位に色分けして調べられるようになっていないといけなさそう

• ラフサクル– リソースが動的に増設されたり、

廃棄された場合のマネジメント

• マネジメント– リソース割り当てする時のゕルゴリズムを

どうするか

40axsh co., LTD.

Page 41: Wakame Tech #1

自動化されたネットワーク設計の課題

• 特にセキュリテゖグループ– Amazon EC2最大の謎

– 何でもVLANで解決できない• VLAN ID 12bit問題

– iptables?ebtables?ルータの支援が必要?

• たぶんiptablesで逃げることになるが、スケールするか心配。– 999台までスケールしたシステムに1台追加する時

1000台のiptablesが変更されるのでは

• 妙案ないですか?(@WakameTech)

41axsh co., LTD.

Page 42: Wakame Tech #1

ネットワーク設計の妥協策

• VLAN Tagを数種作って一つのンスタンスにそれ別の仮想NICを取り付ける方法でひとまず逃げる予定

– グローバルIP用NIC

– プラベートIP用NIC

– (あと管理系があれば良い?)

• 可能であればこれにiptablesを組み合わせるべきか。

42axsh co., LTD.

Page 43: Wakame Tech #1

ユーザ単位の課金も課題

• 正直、流量課金に関してはノウハウがない

• 普通の流量課金も良く分かってない

• そこにユーザ単位で流量課金しちゃうとか、なお分からない

43axsh co., LTD.

Page 44: Wakame Tech #1

ユーザ単位の課金の妥協策

• ネットワーク流量に関しては今のところ探してくるしかないです。

• ンスタンスの起動時間だけは指示を出すタミングを記録しておけば後からでも分かるのだけれども。

44axsh co., LTD.

Page 45: Wakame Tech #1

できそうなところから挑戦

45axsh co., LTD.

Page 46: Wakame Tech #1

Wakame 1.0Technical Preview版

• 現状考えていることをご紹介します

– IaaSゕプリケーションの構成

– ネットワークの構成

– 想定している運用

• 実装とデモ

46axsh co., LTD.

Page 47: Wakame Tech #1

現状のWakameの構成図

ンスタンス

Wakame

Master

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

手順を実行する

設定を変更する

設定どおり機能する

47axsh co., LTD.

Page 48: Wakame Tech #1

ハパーバザ(Xen)

Wakameをハパーバザ層で活用してみる

ンスタンス

Wakame

Master

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

ンスタンス

Wakame

Agent

Products

ンスタンスが機能する

Wakame

Agent

ンスタンスをコントロールする

Wakame

Master

手順を実行する

48axsh co., LTD.

Page 49: Wakame Tech #1

Wakameだらけなので名前をつけて区別します

• 現在リリースされているWakame

– Application Controller (APC)

• 旧Wakame-master

– Application Agent (APA)

• 旧Wakame-agent

• これから追加されるWakame

– Hyper Visor Controller (HVC)

– Hyper Visor Agent (HVA)

49axsh co., LTD.

Page 50: Wakame Tech #1

Web APIサーバを設置する

• Web APIを受け付けるだけでなく、データセンタ全体のマネジメントも行う

– Data Center Manager (DCM)

• 詳細は別途登尾さんから発表されます

• 意図しないDoS攻撃

– Web APIサーバはある程度のスケールゕウトをするようにしておきたい

50axsh co., LTD.

Page 51: Wakame Tech #1

GUIを提供する

• GUI(ExtJS)/GUI Server

51axsh co., LTD.

Page 52: Wakame Tech #1

最終的な構成図

• 現在Wakameはこの構成で開発されています

Data Center Manager

GUI ServerWeb API

Proxy

Web API

User Agent

Hyper Visor

Controller

Hyper Visor

AgentHyper Visor

Application

Controller

Application

AgentApplication

52axsh co., LTD.

Page 53: Wakame Tech #1

後はラックにサーバ追加するだけにしたい

VM Broker

Web API

Web API Proxy

GUI Server

対外サービス系ラック

HVA+Xen

HVA+Xen

HVA+Xen

HVC

リソース系ラック

HVA+Xen

HVA+Xen

HVA+Xen

HVC

リソース系ラック

Shared Storage

ストレージ系ラック

53axsh co., LTD.

Page 54: Wakame Tech #1

HVC-HVAを追加する運用

• ハードウェゕの追加はさすがに人間がやる仕事

– 可能ならサーバを挿すだけで設定が終わるようにしたい

– ここでCloneZillaってどうだろう?

• ネットワークブート

• HDDへメージ転送して起動する優れ物

• 詳細は後ほど岩野から

54axsh co., LTD.

Page 55: Wakame Tech #1

実装はまだ10%くらい

• コンポーネントはひとまず結合できた

• ンスタンスは起動、終了する

– SSHできるけどまだメージ内部のPKメンテナスまで作り込まれてはいない

• あとで三上が簡単なデモをやります

55axsh co., LTD.

Page 56: Wakame Tech #1

2010/3末リリース予定

56axsh co., LTD.

Page 57: Wakame Tech #1

開発者募集中

• IaaS型クラウドを実現可能な世界に通用するオープンソースソフトウェゕを案外本気で目指しています

• ご興味のある方はぜひ@sparklegateまで

57axsh co., LTD.

Page 58: Wakame Tech #1

58

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

axsh co., LTD.

Page 59: Wakame Tech #1

axsh co., LTD.

59

2010年も楽しくやんよ!

axsh co., LTD.