つかめる 雲 それが Eucalyptus 羽 深 修 NTTデータ 先 端 技 術 株 式 会 社 Japan Eucalyptus Users Group 2010/05/22
この10 分 間 で 話 すこと Eucalyptus の 概 要 Eucalyptus を 使 うために Eucalyptus を 楽 しむために の3 本 でお 送 り 致 します
Eucalyptus の 概 要 ~1~ Eucalyptus って 何? Eucalyptus はクラウド 基 盤 ソフトウェアで カリフォルニア 大 学 サンタバーバラ 校 のコンピュータサイエンス 学 科 の 研 究 プロジェクトとして 開 発 され のちに Eucalyptus Systems, Inc. を 設 立 し 開 発 の 継 続 と 管 理 を 行 ってる 何 で Eucalyptus って 名 前? Eucalyptus という 名 前 は Elastic Utility Computing Architecture Linking your Programs to Useful Systems の 頭 文 字 をとって Eucalyptus つまり 日 本 語 では プログラムを 便 利 なシステムに 繋 げるキュートでイカした 素 敵 な 魔 法 です Eucalyptus って 何 ができるの? Eucalyptus を 使 うと Amazon EC2 や Amazon S3 と 同 じ 環 境 がプライベートな 環 境 に 作 れて いわゆるプ ライベートクラウドが 利 用 できます つまり 課 金 されない どんだけ 使 っても 誰 にも 怒 られない 自 由 な 箱 庭 が 作 れます 作 れるんです 利 用 できるんです 彼 も 作 れるの? 彼 女 も 使 えるの? もちろん 作 れます 使 えます 特 別 なハードウェアは 何 ひとつ 不 要 です 特 別 なソフトウェアは 何 ひとつ 不 要 です 特 別 な 知 識 だけはちょっと 必 要 です
Eucalyptus の 概 要 ~2~ つまり 自 宅 で 会 社 で ひとりで みんなで プライベートクラウドを 楽 しむ 為 のソフトウェアです もちろん 仕 事 にも
Eucalyptus の 概 要 ~3~ Eucalyptus のテキトーな 世 界 観 利 用 者 Walrus CLC CC SC NC Eucalyptus
Eucalyptus の 概 要 ~4~ CLC (Cloud Controller) ユーザからの Eucalyptus に 対 する 操 作 要 求 を 受 けつけ 適 切 に 処 理 をしたの ちに CC に 要 求 を 送 出 する 役 CC (Cluster Controller) CLC からの 要 求 を 受 けつけ 各 NC のリソース 状 況 を 計 らいつつ NC に 要 求 を 送 出 する 役 およびクラウドのネットワークを 管 理 する 役 NC (Node Controller) CC からの 要 求 を 受 け ハイパーバイザーに 対 してインスタンスの 起 動 / 停 止 など を 要 求 する 役 Walrus インスタンスの 起 動 時 に NC から 要 求 されたマシンイメージなどを NC に 提 供 す る 役 Amazon S3 と 同 等 の 機 能 を 持 つ SC (Storage Controller) Amazon EC2 での EBS と 同 じ 機 能 を 持 つ
Eucalyptus を 使 うために ~1~ 自 分 で 環 境 を 構 築 する まずは JEUG のサイトを 訪 れてください お 試 し 環 境 を 利 用 する 以 前 は UCSB の EPC (Eucalyptus Public Cloud) が 利 用 できたが 現 在 も 利 用 可 能 か 未 確 認 https://mayhem9.cs.ucsb.edu:8443/ 5/31 には UCSB の EPC が 別 の 場 所 で Eucalyptus Community Cloud として 生 まれ 変 わる 予 定 金 を 払 って 構 築 してもらう この 場 ではちょっと あちらの 別 室 で www 今 日 ここで 素 敵 な 方 法 を 知 る
Eucalyptus を 使 うために ~2~ USB で 繋 ぐだけ USB で 起 動 するだけ Eucalyptus が 入 っている Eucalyptus が 設 定 されている Eucalyptus と Ubiquitous が 恋 をした その 名 も ユーカリキタス (Eucalyquitous) いや ユーカリ 来 たっす! (やっと 今 日 の 本 題 を 言 えた )
Eucalyptus を 使 うために ~3~ んで それって 何 さ? 2.5 の USB HDD に CentOS 5.4 と Eucalyptus 1.6.2 をインストールして 設 定 してチョメチョメしただけですよ 私 も 使 えるの? 使 えます 高 いんじゃないの? 必 要 なハードウェアさえ 用 意 してくれれば お 金 は 要 りません ほんのちょっとの 手 間 のみ 一 日 一 杯 のコーヒー 代 もかかりません どこで 入 手 できるの? JEUG の 森 本 さんが 用 意 してくれたサイトからダウンロードできるようにしたいんです http://eucalyquitous.com/ いつさ? 2/26 時 点 で 近 日 公 開 予 定 気 のもたせかただけはハリウッドムービー 級
Eucalyptus を 使 うために ~4~ 期 待 をさせやがって でも 大 丈 夫 このあと JEUG の 中 井 さんのセッションが 60 分 でつくるクラウド 環 境 ~クラウド 構 築 の 自 動 化 実 験 となっております 凄 いです 60 分 でクラウドが 作 れちゃうんです カップラーメン 20 個 分 たぶん 世 界 最 短 構 築 記 録 今 日 このセミナーに 来 た 人 勝 ち 組 ですよ ハイ あとは Eucalyptus で 楽 しむだけ
Eucalyptus を 楽 しむために ~1~ Eucalyptus を 操 作 するには euca2ools という CUI で 操 作 する ElastDream や hybridfox などの GUI で 操 作 する Amazon EC2/S3 互 換 である API で 操 作 する あなたにぴったりインタフェース プログラマブルインフラストラクチャです 言 語 は 色 々 Bash での 実 装 もあるぐらい でも 今 日 は Ruby で 使 える right_aws の 紹 介 あの RightScale が 提 供 しているライブラリです right_aws http://rightaws.rubyforge.org/ http://open.eucalyptus.com/wiki/toolsecosystem_right_aws http://oss.infoscience.co.jp/eucalyptus/wiki/toolsecosystem_right_a ws/
Eucalyptus を 楽 しむために ~2~ まずはインストールしよう 前 提 条 件 として ruby と rubygems が 既 に インストールされていること gem がインストールされているならば 以 下 の コマンドを 実 行 するだけです frontend ~ # gem install right_aws v 1.10.0 Successfully installed right_http_connection-1.2.4 Successfully installed right_aws-1.10.0 2 gems installed Installing ri documentation for right_http_connection-1.2.4 Installing ri documentation for right_aws-1.10.0 Installing Rdoc documentation for right_http_connection-1.2.4 Installing Rdoc documentation for right_aws-1.10.0
Eucalyptus を 楽 しむために ~3~ 前 準 備 (1) Eucalyptus の WUI にアク セスし Credentials タブの [Download Credentials] で 認 証 情 報 などが 入 った zip ファイルをダウンロード
Eucalyptus を 楽 しむために ~4~ 前 準 備 (2) ダウンロードした zip ファイルを right_aws がインスト ールされている 環 境 へコピーし zip ファイルを 展 開 展 開 したファイルの 中 から eucarc をロードする frontend ~ # mkdir p.euca/admin/keypairs frontend ~ # cd.euca/admin/ frontend ~ # unzip ~/euca2-admin-x509.zip frontend ~ # source./eucarc
Eucalyptus を 楽 しむために ~5~ EC2 API を 叩 いてみる 環 境 変 数 から 認 証 情 報 の 読 み 込 み frontend ~ # irb irb(main):001:0> require 'right_aws' => true irb(main):002:0> ec2_access_key = ENV['EC2_ACCESS_KEY'] => "WKy3rMzOWPouVOxK1p3Ar1C2uRBwa2FBXnCw" irb(main):003:0> ec2_secret_key = ENV['EC2_SECRET_KEY'] => "Z5w40LCSCpnzqjQduLsJuTlVGG2iWbWzptFQ" irb(main):004:0> ec2_url = ENV['EC2_URL'] => "http://192.168.1.10:8773/services/eucalyptus" Eucalyptus に 接 続 irb(main):005:0> ec2 = RightAws::Ec2.new(ec2_access_key, ec2_secret_key, { :endpoint_url => ec2_url }) I, [2010-05-22T04:52:03.029093 #2346] INFO -- : New RightAws::Ec2 using single-threaded mode => #<RightAws::Ec2:0x7f153798b9a0 @error_handler=nil, @logger=#<logger:0x7f153798ac30...... 省 略
Eucalyptus を 楽 しむために ~6~ EC2 API を 叩 いてみる あとは 叩 いてみるだけ irb(main):013:0> res = ec2.describe_key_pairs irb(main):014:0> pp res [{:aws_key_name=>"key1", :aws_fingerprint=> "a9:50:c0:bd:af:c8:a8:80:ab:a7:d4:ef:44:04:f3:c2:3e:a6:30:4b"}] => nil 何 も 返 す 値 がないと irb(main):015:0> res = ec2.describe_instances => []
Eucalyptus を 楽 しむために ~7~ S3 API を 叩 いてみる 環 境 変 数 から 認 証 情 報 の 読 み 込 み は EC2 API と 同 じだが 一 つだけ 追 加 irb(main):025:0> s3_url = ENV['S3_URL'] => "http://192.168.1.10:8773/services/walrus Walrus に 接 続 irb(main):029:0> s3 = RightAws::S3Interface.new(ec2_access_key, ec2_secret_key, { :endpoint_url => s3_url }) I, [2010-05-22T05:15:23.153096 #2346] INFO -- : New RightAws::S3Interface using single-threaded mode => #<RightAws::S3Interface:0x7f153791c280 @error_handler=nil, @logger=#<logger:0x7f153791b510...... 省 略
Eucalyptus を 楽 しむために ~8~ S3 API を 叩 いてみる あとは 叩 いてみるだけ irb(main):030:0> res = s3.list_all_my_buckets => [{:creation_date=>"2010-04-22t15:38:56.000z", :owner_id=>"wky3rmzowpouvoxk1p3ar1c2urbwa2fbxncw", :name=>"kernel.01", :owner_display_name=>"admin"}, {:creation_date=>"2010-04-24t19:12:53.000z", :owner_id=>"wky3rmzowpouvoxk1p3ar1c2urbwa2fbxncw", :name=>"kernel.02", :owner_display_name=>"admin"}, {:creation_date=>"2010-04-24t19:13:34.000z", :owner_id=>"wky3rmzowpouvoxk1p3ar1c2urbwa2fbxncw", :name=>"ramdisk.02", :owner_display_name=>"admin"}, {:creation_date=>"2010-04-24t19:17:16.000z", :owner_id=>"wky3rmzowpouvoxk1p3ar1c2urbwa2fbxncw", :name=>"centos.02", :owner_display_name=>"admin"}, {:creation_date=>"2010-04-22t15:42:25.000z", :owner_id=>"wky3rmzowpouvoxk1p3ar1c2urbwa2fbxncw", :name=>"centos.01", :owner_display_name=>"admin"}, {:creation_date=>"2010-04-22t15:39:12.000z", :owner_id=>"wky3rmzowpouvoxk1p3ar1c2urbwa2fbxncw", :name=>"ramdisk.01", :owner_display_name=>"admin"}]
Eucalyptus を 楽 しむために ~9~ S3 API の 注 意 点 Bucket 名 の 頭 文 字 は 大 文 字 で right_s3_interface.rb の fetch_request_params で 引 数 の bucket 名 が VirtualHostingOfBuckets か 否 かの 判 定 を 単 純 に 頭 文 字 が 大 文 字 か 否 かでチェックしているため orz 解 決 策 としては right_s3_interface.rb を 改 造 するか もしくは Eucalyptus を DISABLE_DNS= N で 動 かすか
ご 静 聴 ありがとうございました ブースにもお 立 ち 寄 りください 気 軽 に 声 をかけてください 知 らないこと 以 外 は 何 でも 教 えます 大 人 の 事 情 で 言 えないこと 以 外 は 何 でも 答 えます 何 はともあれ 日 本 Eucalyptus ユーザ 会 へ http://eucalyptus-users.jp/