rwc2014

 rwc2014

Ruby World Conference 2014
2014.11.13, 14
クラウドサービスを使って簡単に始めるRuby Webアプリケーション開発

5ad0bb268dd2605b09165d464308cb7e?s=128

Kuniaki IGARASHI

November 14, 2014
Tweet

Transcript

  1. Ϋϥ΢υαʔϏεΛ࢖ͬͯ؆୯ʹ࢝ΊΔ 3VCZ8FCΞϓϦέʔγϣϯ։ൃ 6TFDMPVETFSWJDFTUPFBTJMZEFWFMPQ 3VCZXFCBQQMJDBUJPOT ޒेཛྷ๜໌,VOJBLJ*("3"4)* TQJDFMJGF *OD 3VCZ8PSME$POGFSFODF HJUIVCJHBJHB UXJUUFSJHBJHB

    GBDFCPPLLVOJBLJJHBSBTIJ
  2. ޒेཛྷ๜໌ גࣜձࣾTQJDFMJGF ։ൃ෦෦௕ HJUIVCJHBJHB UXJUUFSJHBJHB GBDFCPPLLVOJBLJJHBSBTIJ

  3. ΤϯδχΞΦϑΟε෺݅ืूத BUUPCF/:P⒏DFIUUQTXXXqJDLSDPNQIPUPTBTPOBT גࣜձࣾTQJDFMJGF ౡࠜࢧࣾઃཱ४උத

  4. "HFOEB w3VCZ 3BJMTͷ։ൃ؀ڥͷ࡞Γํ wΫϥ΢υαʔϏε/JUSPVT*0 w8PSLTIPQͷ࣮ྫΛ௨ͨ͡ධՁ w8FCΞϓϦͷֶशํ๏ w3BJMT w4JOBUSB

  5. ࿩͢͜ͱ wΫϥ΢υ؀ڥΛ࢖ͬͨ3VCZ 3BJMTͷ։ൃ wϫʔΫγϣοϓͰ࢖͏ࡍʹؾΛ͚ͭΔ͜ͱ w3VCZ 3BJMTͷֶशํ๏ͱֶशࢿྉ wର৅ɿϓϩάϥϛϯάΛ͜Ε͔Β࢝ΊΔํ ͜ͷൃදΛฉ͘ͱֶश ڭҭ Λ࢝ΊΒΕΔ

    ࿩͞ͳ͍͜ͱ w+BWB4DSJQU w೉͍ٕ͠ज़ͷ࿩ ͜ͷൃදͰ࿩͢͜ͱɾ࿩͞ͳ͍͜ͱ
  6. 3VCZ 3BJMTͷ։ൃ؀ڥΛ࡞Δͷ͸೉͍͠ IUUQTXXXqJDLSDPNQIPUPTIJEEFO@WJDF

  7. 3VCZ 3BJMTͷ։ൃ؀ڥ 8JOEPXT "DUJWF4DSJQU3VCZ 3VCZ  DPNQJMFS 3BJMT*OTUBMMFS 3VCZ .BD

    QSFJOTUBMMFE 3VCZ  SCFOW 3VCZ  YDPEF IPNFCSFX -JOVY SCFOW 3VCZ  DPNQJMFS ΑΓ؆୯ʹηοτΞοϓͰ͖Δ3VCZ 3BJMT։ൃ؀ڥͷఏҊ ‎/JUSPVT*0
  8. IUUQTXXXOJUSPVTJP

  9. 8IBU`T/JUSPVT*0ʁ ϒϥ΢β͔Βར༻Ͱ͖Δ Ϋϥ΢υ্ͷ౷߹։ൃ؀ڥ *%& 'JMF&YQMPSFS &EJUPS 5FSNJOBM

  10. /JUSPVT*0ͷྑ͞ ແྉϓϥϯͰձһొ࿥Λͨ͠Β͙͢ʹ 3VCZͷ։ൃ͕Ͱ͖Δ

  11. /JUSPVT*0ͰͰ͖Δ͜ͱ w5FSNJOBM͔Β3VCZίʔυΛ࣮ߦ w3BJMT 4JOBUSBͰ8FCΞϓϦ։ൃ wHJUΛ࢖ͬͯHJUIVCͱ࿈ܞ w࠷৽όʔδϣϯͷ3VCZΛར༻Մೳ

  12. /JUSPVT*0ͷ࢖͍ํ

  13. /JUSPVT*0Ͱ։ൃΛ࢝ΊΔ ձһొ࿥

  14. /JUSPVT*0Ͱ։ൃΛ࢝ΊΔ $SFBUF#PY #09 ։ൃ࣮ߦ؀ڥ ͷ୯Ґ

  15. /JUSPVT*0Ͱ։ൃΛ࢝ΊΔ ༗ྉϓϥϯΛ ࢖͏৔߹͸ /0Λ ߪೖ͢Δ /0 /JUSPVT*0 ͰͷԾ૝௨՟ ແྉϓϥϯͱ ͷࠩ͸ޙड़

  16. /JUSPVT*0Ͱ։ൃΛ࢝ΊΔ μογϡϘʔυ ఀࢭ࣌͸4UBSUΛԡͯ͠ىಈ ੺͸ఀࢭத ͠͹Β͘࢖Θͳ͍ͱࣗಈఀࢭ͢Δ

  17. /JUSPVT*0Ͱ։ൃΛ࢝ΊΔ μογϡϘʔυ *%&ϘλϯΛԡͯ͠։ൃը໘΁Ҡಈ ྘͸ىಈத

  18. *%& 'JMF&YQMPSFS &EJUPS 5FSNJOBM

  19. /JUSPVT*0Ͱ3BJMTΞϓϦΛͭ͘Δ TDBGGPMEΛ࢖ͬͯຊͷ৘ใΛొ࿥͢Δ؆୯ͳΞϓϦΛͭ͘Γ·͢ EFNP IUUQZPVUVCF4Y*SXQ7%

  20. SBJMTTFSWFSͨ͠ͱ͖ͷ઀ଓํ๏ ˞Πϯλʔωοτ্ʹެ։͞ΕΔͷͰ ެ։ͨ͘͠ͳ͍৔߹͸ɺ 1SFWJFX4FU1BTTXPSE͔Β #"4*$ೝূͷύεϫʔυΛઃఆ /JUSPVT*0Ͱ3BJMTΞϓϦΛͭ͘Δ

  21. /JUSPVT*0ͷ஫ҙ఺ wແྉϓϥϯͰ͸ఆظతʹΠϯελϯε͕ఀࢭ w؅ཧ༻μογϡϘʔυ͔Β࠶ىಈՄೳʢແྉʣ wϫʔΫγϣοϓͷؒʹఀࢭͨ͠έʔε͸ແ͠ wωοτϫʔΫ͕ͳ͍ͱ࢖͑ͳ͍

  22. "DBTFTUVEZJOXPSLTIPQ 3BJMT(JSMT0TBLB IUUQTXXXqJDLSDPNQIPUPTRVBEJOTFU

  23. "DBTFTUVEZJOXPSLTIPQ 3BJMT(JSMTେࡕͰ/JUSPVT*0Λར༻ wର৅ऀ͸ॳֶऀʢॳϓϩάϥϛϯάͷํ΋ʣ w࡞੒ͨ͠ΞϓϦ͸ࣸਅ౤ߘϛχϒϩάΞϓϦ wࢿྉɿIUUQSBJMTHJSMTKQBQQ wશ໿࣌ؒͷ࡞ۀ࣌ؒ w؀ڥߏங ձһొ࿥ ΞϓϦ࣮૷ ެ։

  24. "DBTFTUVEZJOXPSLTIPQ ྑ͍఺ w؀ڥߏங ձһొ࿥ ͕୹࣌ؒͰ؆୯ ෼ఔ౓  w෼͔Γқ͘࢖͍қ͍ͱ޷ҙతͳҙݟ w1$Λସ͑ͨ৔߹΋Ҿ͖ଓ͖ར༻Ͱ͖Δ w/JUSPVT*0͚ͩͰΠϯλʔωοτެ։Մೳ

    1BB4ෆཁ
  25. "DBTFTUVEZJOXPSLTIPQ ѱ͍఺ w*&Ͱ͸Ұ෦ػೳ͕࢖͑ͳ͍ͷͰ$ISPNFϒϥ΢βͳͲ͕ඞཁ wωοτϫʔΫ͕੾Εͨ৔߹ʹ࢖͑ͳ͍ wϑΝΠϧΤΫεϓϩʔϥͰҙਤͤͣυϥοάΞϯυυϩοϓͷ ૢ࡞Λͯ͠͠·͍ɺϑΥϧμ͕ߦํෆ໌ʹͳΔ w/JUSPVT*0͕αʔϏεΛఀࢭͨ͠৔߹ʹར༻Ͱ͖ͳ͘ͳΔ ࣄલʹઆ໌Λߦ͍ɺଞͷ։ൃ؀ڥߏஙͱͲͪΒ΋ બ୒Մೳʹ͓ͯ͘͠ͷ͕ྑ͍

  26. TQJDFMJGFࣾһཱྀߦUP/JUSPVT*0 ͻͱ΍͢ΈCSFBL IUUQTXXXqJDLSDPNQIPUPTJHBJHB

  27. /JUSPVT*0JTFYDJUFEUPTFFTP NVDITVQQPSUGSPNPVSGSJFOET JO+BQBO8FXPVMEMPWFUPIFBS GSPNZPVBOETFFXIBUZPV`SF CVJMEJOHXJUI/JUSPVT*0 .FTTBHFGSPN/JUSPVT*0

  28. 3BJMTΛ࢖ͬͨ 8FCΞϓϦ։ൃͷֶशํ๏ ํ਑ wର৅͸ϓϩάϥϛϯά͕ॳΊͯͷํ wͰ͖Δ͚ͩ෼͔Γқ͘આ໌͍ͨ͠

  29. 3BJMTͷֶशࢿྉͷྫ w3BJMT(VJEFT XFC IUUQSBJMTHVJEFTKQ w3BJMT5VUPSJBM XFC IUUQSBJMTUVUPSJBMKQ w࣮ફ3VCZPO3BJMT ॻ੶ 

    wஶࠇా౒*4#/ ϓϩάϥϚ޲͚‎೉͘͠ɺཧղ͕ࠔ೉ͳ৔߹΋ ͜ΕΒͷࢿྉͷखલΛຒΊΔɺ ΑΓ෼͔Γқ͍ࢿྉΛ࡞੒ͨ͠
  30. IUUQCJUMZJHB[FNJ IUUQTHJUIVCDPNJHBJHBSBJMT@UFYUCPPL

  31. 3BJMTͷڭՊॻֶशͷྲྀΕ w࣮ࡍʹ࡞ͬͯԿ͕Ͱ͖Δ͔Λ஌Δ w3BJMTΞϓϦͷ࢓૊ΈΛ஌Δ wखຊͱͳΔίʔυʹ৮ΕΔ wσόοάͷํ๏Λ஌Δ w՝୊Λ͜ͳ͍ͯ͘͠

  32. ୊ࡐը૾౤ߘػೳ෇͖ϛχϒϩάΞϓϦ ࣮ࡍʹ࡞ͬͯԿ͕Ͱ͖Δ͔Λ஌Δ

  33. ը૾౤ߘػೳ෇͖ϛχϒϩάΞϓϦ গ͠ͷίϚϯ υͱίʔυྔ Ͱ࣮૷Ͱ͖Δ 3BJMTͷڭՊॻΑΓҰ෦ൈਮ

  34. 3BJMTΞϓϦͷ࢓૊ΈΛ஌Δ 3BJMTͷڭՊॻΑΓҰ෦ൈਮ

  35. αϯϓϧΞϓϦͰखຊͱͳΔίʔυʹ৮ΕΔ ը૾౤ߘػೳ෇͖ϛχϒϩάΞϓϦ wTDBGGPME ੜ੒͞Εͨίʔυ͸ྑ͍खຊ  w$36%جૅ w.7$ w3BJMTͷॲཧͷྲྀΕ wSPVUFT DPOUSPMMFS

    WJFX w(FN #VOEMFS ը૾౤ߘDBSFFSXBWFHFN ֶͿཁૉ
  36. σόοάͷํ๏Λ஌Δ wΤϥʔͷಡΈํ wϩάͷग़͠ํɺಡΈํ wϒϥ΢βͷσόοάػೳ wQSZͰσόοά

  37. ֶशͷྲྀΕ ͜ͷઌ΁ͭͮ͘ಓΛࣔ͢ w࣮ࡍʹ࡞ͬͯԿ͕Ͱ͖Δ͔Λ஌Δ w3BJMTΞϓϦͷ࢓૊ΈΛ஌Δ wखຊͱͳΔίʔυʹ৮ΕΔ wσόοάͷํ๏Λ஌Δ w՝୊Λ͜ͳ͍ͯ͘͠

  38. 3BJMTΛ΋ͬͱֶͼ͍ͨਓ΁ 8FC্ͷࢿྉ w3BJMTͷڭՊॻ wIUUQCJUMZJHB[FNJ w3BJMT(VJEFTIUUQSBJMTHVJEFTKQ w ໢ཏతͳղઆͰ3BJMTͷػೳΛֶͿ w3BJMT5VUPSJBMIUUQSBJMTUVUPSJBMKQ w αϯϓϧΞϓϦͮ͘ΓΛ௨ͯ͡3BJMTΛֶͿ

    w ୡਓग़൛ձʹిࢠॻ੶൛΋͋ΓIUUQUBUTV[JOFDPNCPPLTSBJMTUVUPSJBM ॻ੶ w࣮ફ3VCZPO3BJMT 3BJMTରԠ  wஶࠇా౒*4#/
  39. TQJDFMJGFࣾһཱྀߦJO/:XJUIࣰݪ༗࢘உ ͻͱ΍͢ΈCSFBL IUUQTXXXqJDLSDPNQIPUPTBTPOBT

  40. TQJDFMJGFTFSWJDFT

  41. TQJDFMJGFTQPOTPSFEFWFOUT

  42. 3BJMT 8FCαʔϏε։ൃͷελϯμʔυ ศར͕ͩෳࡶɺशಘίετ͕ߴ͍ 4JOBUSB ϑΝΠϧͰಈ࡞ γϯϓϧͳߏ੒  8FCΞϓϦͷಈ࡞Λཧղ͢Δͷʹྑ͍୊ࡐ 3VCZ8FC"QQ'SBNFXPSLT

  43. 4JOBUSB4BNQMF IFMMPSC HFNJTJOBUSB SVCZIFMMPSCQ PS SVCZIFMMPSCQP ˢ/JUSPVT*0Ͱ͸PΛ෇༩ IUUQMPDBMIPTU ϒϥ΢βͰΞΫηε SFRVJSFTJOBUSB

    HFUEP )FMMPXPSME FOE ݁Ռ
  44. 4JOBUSBͱ3BJMTͷൺֱ 4JOBUSB pMF IFMMPSC 3BJMT

  45. 4JOBUSBσʔλอଘ ӬଓԽ σʔλอଘͷ࢓૊Έ͸ผ్༻ҙ͢Δඞཁ͕͋Δ 3BJMTͰඪ४తʹར༻͞Ε͍ͯΔ "DUJWF3FDPSE͸ઃఆ͕ෳࡶʹͳΔ ίʔυ਺ेߦ  ָʹσʔλΛอଘ͍ͨ͠ ‎Ϋϥ΢υαʔϏεpSFCBTFͱ )BTIΛอଘͰ͖ΔpSFCBTFHFNΛར༻

  46. IUUQTXXXpSFCBTFDPN

  47. 'JSFCBTF Ϋϥ΢υ্ͷσʔλ؅ཧαʔϏε pSFCBTFHFNΛ࢖͏ͱ୹͍ίʔυͰ )BTIΦϒδΣΫτͷอଘɺಡΈग़͕͠Մೳ ແྉϓϥϯར༻Մೳ

  48. ࣄલ४උ ΞΧ΢ϯτΛ࡞੒͠ɺ %BTICPBSE͔Β $3&"5&/&8"11 ϘλϯΛԡͯ͠ ΞϓϦΛ࡞੒͢Δ

  49. pSFCBTFHFNTBNQMFDPEF pSFCBTF@TBNQMFSC SFRVJSFpSFCBTF VSMIUUQTJHBJHBTBNQMFpSFCBTFJPDPN pSFCBTF'JSFCBTF$MJFOUOFX VSM  TUPSBHF@OBNFCPYࣗ༝ʹ໋໊Մೳ I\BQQMF HSBQF^อଘ͢Δ)BTI

    4BWF pSFCBTFTFU TUPSBHF@OBNF I  -PBE QSFTVMUpSFCBTFHFU TUPSBHF@OBNF CPEZ HFNJpSFCBTF SVCZpSFCBTF@TBNQMFSC ݁Ռ\BQQMF HSBQF^ $POpH 4BWF -PBE ˞VSM͸EBTICPBSEͰ ઃఆͨ͠"1163- )BTIΛอଘͯ͠ಡΈࠐΉ3VCZαϯϓϧίʔυ
  50. TJOBUSBpSFCBTFTBNQMFDPEF pSFCBTF@TJOBUSBSC SFRVJSFTJOBUSB SFRVJSFpSFCBTF 'JSFCBTFTFUUJOHT VSMIUUQTJHBJHBTBNQMFpSFCBTFJPDPN pSFCBTF'JSFCBTF$MJFOUOFX VSM  TUPSBHF@OBNFCPY

    4BWF ຊདྷ͸QPTU͕ͩɺΞΫηε͕؆୯ͳͷͰHFU  HFUOBNFOBNFEP pSFCBTFTFU TUPSBHF@OBNF \OBNF QBSBNT<OBNF>^  7JTJUPSOBNF\QBSBNT<OBNF>^ FOE -PBE HFUWJTJUPSEP pSFCBTFHFU TUPSBHF@OBNF CPEZUP@T FOE HFNJpSFCBTFTJOBUSB SVCZpSFCBTF@TJOBUSBSC ˢ/JUSPVT*0Ͱ͸ҎԼΛ෇༩ QP OBNFJHB ϒϥ΢βͰOBNF999΁ΞΫηε WJTJUPS \OBNFJHB^ OBNF999΁ΞΫηεͨ͠ࡍʹ 4BWF͞ΕͨσʔλΛදࣔ
  51. ΋ͬͱֶͼ͍ͨਓ΁4JOBUSB 3VCZฤ wೖ໳4JOBUSB w*4#/ wߨٛࢿྉ 3VCZฤ  wIUUQTHJUIVCDPNJHBJHBIJUPUTVCBTIJSVCZ wୈճʙୈճ3VCZฤ ୈճʙୈճͷ3BJMTฤ͸3BJMTͷڭՊॻΛࢀর

     wͨͷ͍͠3VCZୈ൛ w*4#/
  52. ·ͱΊ w/JUSPVT*0Ͱ؆୯ʹ3VCZ 3BJMT։ൃ wIUUQTXXX/JUSPVT*0 w3BJMTͷڭՊॻΛ࡞੒ͨ͠ wIUUQCJUMZJHB[FNJ wγϯϓϧͳ4JOBUSBͰ8FCΞϓϦΛཧղ w'JSFCBTFHFNͰ؆୯ʹσʔλอଘ

  53. 3VCZ͸։ൃऀΛ ޾ͤʹ͢Δݴޠɻ ΋ͬͱଟ͘ͷ։ൃऀΛ 3VCZͰ޾ͤʹ͍ͨ͠ɻ ·ͭ΋ͱΏ͖ͻΖ

  54. /JUSPVT*0(VZT দԬઌੜɺ-FXJTڭतɺᖛ࡚͞ΜɺχϑςΟגࣜձࣾླ໦ઌੜɺٶ಺͞Μ ҰڮେֶͷडߨֶੜͷΈͳ͞· 3BJMT(JSMT 3BJMTࣉࢠ԰ͷελοϑɺίʔνɺࢀՃऀͷΈͳ͞· ৬৔ಉ྅ ँࣙ5IBOLT BCPVUNF HJUIVCJHBJHB UXJUUFSJHBJHB

    GBDFCPPLLVOJBLJJHBSBTIJ U%JBSZIUUQJHBSBTIJLVOJBLJOFU 3BJMTͷڭՊॻIUUQCJUMZJHB[FNJ 2VFTUJPOʁ
  55. None
  56. ิ଍ TVQQMFNFOUBSZFYQMBOBUJPO

  57. /JUSPVT*0Ͱ3VCZΛόʔδϣϯΞοϓ SWNΛར༻͍ͯ͠ΔͷͰɺSWNͷ࡞๏Ͱ࠷৽൛ͷ3VCZΛར༻Մೳ IUUQJHBSBTIJLVOJBLJOFUEJBSZIUNM

  58. pSFCBTFEBTICPBSE

  59. ͜ͷ1೥ͷRubyΤίγεςϜͷϗοττϐοΫͷ1ͭ ৽ֶ͍͠ͼͷ৔͕ͨ͘͞ΜͰ͖ͨ