IIJ の Ruby on Rails 向け PaaS である MOGOK の使い方。 Kanazawa.rb #6 (2013/02/16) の発表資料。
2013/02/16 Kanazawa.rb Meetup #6Starting MOGOKʙ ͍͞͠ MOGOK ͷ࢝Ί͔ͨ ʙ
View Slide
What is
MOGOK✤ IIJ (Internet Initiative Japan) ͕ఏڙ͢Δ✤ Ruby on Rails ΞϓϦέʔγϣϯͷ✤ ։ൃࢧԉڥͱ࣮ߦڥΛ✤ ఏڙ͢ΔαʔϏεPaaS(Platform as a Service)
MOGOK✤ IIJ (Internet Initiative Japan) ͕ఏڙ͢Δ✤ Ruby on Rails ΞϓϦέʔγϣϯͷ✤ ։ൃࢧԉڥͱ࣮ߦڥΛ✤ ఏڙ͢ΔαʔϏεPaaS(Platform as a Service)!ఏڙ : ࠓͯ͢ແঈ
MOGOK✤ http://mogok.jp
MOGOK ʢ։ൃࢧԉڥʣ✤ Web UI✤ ΞϓϦέʔγϣϯཧ✤ υΩϡϝϯτɾϑΥʔϥϜ✤ CLI (gem ͱͯ͠ఏڙ)✤ Git ϦϙδτϦ (࠷େ 100MB)
MOGOK ʢ࣮ߦڥʣ✤ Web✤ 1 process✤ 400MB memory✤ 150MB file (w/ gems)✤ Thin/Ruby 1.9.3/RoR 3.x✤ *.ruby.iijgio.com✤ DB✤ 1 connection✤ 100MB memory✤ 100MB data✤ MySQL 5.5
MOGOK ʢ࣮ߦڥʣ✤ Web✤ 1 process✤ 400MB memory✤ 150MB file (w/ gems)✤ Thin/Ruby 1.9.3/RoR 3.x✤ *.ruby.iijgio.com✤ DB✤ 1 connection✤ 100MB memory✤ 100MB data✤ MySQL 5.5͍ͣΕ༗ঈϓϥϯ
How to
Flow✤ Git ͷಋೖ✤ RoR ΞϓϦέʔγϣϯͷίϯϑΟάมߋ✤ MOGOK CLI ͷΠϯετʔϧ✤ MOGOK ͷσϓϩΠ✤ ΞϓϦέʔγϣϯཧ
Git ͷಋೖ$ cd $ git init$ git add .$ git commit -m "first commit"
RoRΞϓϦέʔγϣϯͷίϯϑΟάઃఆ✤ Bundler (Gemfile)✤ Env (config/environments/production.rb)
Bundler:gem 'mysql2'gem 'therubyracer', :platforms => :ruby$ vim Gemfile✤ MOGOK ڥͰඞཁͱͳΔ gem Λઃఆ
Env$ vim config/environments/production.rb:config.serve_static_assets = true:✤ /public/* ͷ static ίϯςϯπΛ༗ޮԽ✤ (͓ͦΒ͘)͋Β͔͡Ί false ઃఆ͕͋ΔͷͰ true ʹมߋ
MOGOK CLI ͷΠϯετʔϧ✤ gem ϑΝΠϧͷμϯϩʔυ
MOGOK CLI ͷΠϯετʔϧ✤ gem ϑΝΠϧͷΠϯετʔϧ$ gem install mogok-x.x.x.gem$ mogok list$ mogok --help✤ MOGOK ΞΧϯτͷ "ID/Password" ͕ٻΊΒΕΔ✤ ࠷ॳͷ1ճͷΈ
MOGOKͷσϓϩΠ✤ ΞϓϦέʔγϣϯొ✤ ࢿࡐͷసૹ✤ ΞϓϦέʔγϣϯߏங
ΞϓϦέʔγϣϯొ$ mogok create ✤ RoR app dir Ͱ࣮ߦ͢Δ͜ͱΛڧ͘ਪ✤ Git remote ʹ MOGOK ڥ͕ొ͞ΕΔ※ MOGOK CLI ͜ͷΛࢀর͠ͳ͕Βಈ࡞͢Δ(--app option ͋Δ͕͔ͳΓ໘)✤ MOGOKγεςϜશମͰҰҙ✤ .ruby.iijgio.com
ࢿࡐͷసૹ$ git push mogok master✤ MOGOK ΞΧϯτͷ "ID/Password" ͕ٻΊΒΕΔ✤ ຖճೖྗ͕ඞཁ✤ "$ git config credential.helper store" ͓ͯ͘͠ͱָ✤ "~/.git-credentials" ʹอଘ͞ΕΔͷͰѻ͍ʹҙtips
ΞϓϦέʔγϣϯߏங$ mogok build$ mogok rake db:migrate
ΞϓϦέʔγϣϯཧ$ mogok info$ mogok start$ mogok stop$ mogok restart✤ MOGOK CLI ͔Βͷૢ࡞
ΞϓϦέʔγϣϯཧ✤ Web UI ͔Βͷૢ࡞
Conclusion
·ͱΊ✤ Ruby on Rails ͳ PaaS✤ !൛͕ͩແྉͰ͔ͳΓͷػೳ͕͑Δ✤ Git & mogok ίϚϯυͰσϓϩΠ✤ mogok ίϚϯυ or Web UI Ͱίϯτϩʔϧ
Thank youTomokazu Kiyoharahttp://facebook.com/tomokazu.kiyoharahttp://twitter.com/kiyohara
extra
Bundlertips✤ ։ൃڥͱMOGOKڥͰґଘ gem Λ͚Δͱศར✤ ։ൃڥʹ MySQL ͕ೖ͍ͬͯͳ͍ͱ͖ͳͲ
group :mogok dogem 'mysql2'gem 'therubyracer', :platforms => :rubyend$ vim Gemfile✤ MOGOK ڥ͚ gem Λ group ԽBundlertips
:BUNDLE_WITHOUT: mogok$ vim .bundle/config✤ ։ൃڥͰ bundle command ͷର֎ʹࢦఆBundlertips
✤ config/database.yml✤ ಛผʹฤू͢Δඞཁͳ͠✤ MOGOKڥσϓϩΠ࣌ʹઐ༻ͷͷ͕ར༻͞ΕΔEnvtips
✤ "$mogok build" ͨ͠Β✤ "$ mogok restart" →×✤ "$ mogok stop; mogok start" →○build & restarttips