Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Herokuで本番運用する技術 / Heroku production

Herokuで本番運用する技術 / Heroku production

社内勉強会でHerokuの話をしました。

Hiroshi Shimoju

November 11, 2017
Tweet

More Decks by Hiroshi Shimoju

Other Decks in Technology

Transcript

  1. Լॏതࢿ(.01FQBCP *OD
    ୈճ&$ࣄۀ෦5FDI.5(
    )FSPLVͰຊ൪ӡ༻͢Δٕज़

    View Slide

  2. ΤϯδχΞ ೥౓ೖࣾɾ৽ଔظ

    Լॏതࢿ!TIJNPKV@
    &$ࣄۀ෦46;63*νʔϜ
    TIJNPKVPSH

    View Slide

  3. View Slide

  4. 46;63*ͷํ͔Β͖·ͨ͠

    View Slide

  5. ຊ೔ճ໨ͷൃදͰ͢

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. 46;63*❤)FSPLV

    View Slide

  10. )FSPLV
    w46;63*͸)FSPLVͰӡ༻͍ͯ͠·͢
    wݸਓͰ΋)FSPLVͰӡ༻͍ͯ͠ΔΞϓϦ͕͋Γ·͢
    wͦͷதͰܦݧͨ͜͠ͱΛɺͬ͟ͱˍΏΔΊʹൃද͠·
    ͢ʂ

    View Slide

  11. ͓͠ͳ͕͖
    wΦʔτεέʔϧ
    wಠࣗυϝΠϯઃఆ
    w44-ઃఆ
    wϝʔϧ
    wσʔλϕʔε
    wϑΝΠϧΞοϓϩʔυ
    wλΠϜΞ΢τ
    wϩά
    wΞϓϦέʔγϣϯઃܭ
    wো֐৘ใ
    w͓·͚

    View Slide

  12. Φʔτεέʔϧ

    View Slide

  13. View Slide

  14. Φʔτεέʔϧ
    w4UBOEBSEҎ্ͰखಈͰͷεέʔϧ͕Մೳ
    w1FSGPSNBODF.Ҏ্Ͱ)FSPLVͰͷΦʔτεέʔϧ͕࢖͑Δ
    w͔͠͠ʙ͸ߴ͍ʜʜ
    w46;63*Ͱ͸֎෦ͷΦʔτεέʔϧαʔϏε)JSF'JSFΛ࢖͍ͬͯΔ
    wIUUQTXXXIJSFpSFJP

    View Slide

  15. Φʔτεέʔϧઃఆ
    wᮢ஋ͷઃఆ͸೰ΈͲ͜Ζ
    w)JSF'JSFͰ͸εϧʔϓοτ 31.
    ΍ϨεϙϯελΠϜͳͲ͔Βબ΂Δ
    wεϧʔϓοτʹͨ͠ͱ͜ΖɺΞΫηεूதͰλΠϜΞ΢τ͕සൃͨ͠
    ͱ͖ɺݟ͔͚ͷεϧʔϓοτ͕མͪͨͷ͔εέʔϧΠϯ͢Δࣄ͕݅ʜ
    wखͰεέʔϧΞ΢τͨ͠ͷʹؤͳʹ%ZOPΛݮΒͯ͘͠Δ
    wεέʔϧΞ΢τ͚ͩߟ͑ͣεέʔϧΞοϓ΋ߟྀ͢Δ

    View Slide

  16. ಠࣗυϝΠϯઃఆ

    View Slide

  17. ಠࣗυϝΠϯઃఆ
    w)FSPLVͷಠࣗυϝΠϯઃఆ͸$/".&Ͱߦ͏
    wXXXFYBNQMFDPNˠXXXFYBNQMFDPNIFSPLVEOTDPN΁
    w$/".&ͷ;POF"QFY໰୊͕͋Δ

    View Slide

  18. ;POF"QFY໰୊
    wκʔϯͷ௖఺αϒυϝΠϯͳ͠ͷυϝΠϯྫFYBNQMFDPN
    w$/".&ͱଞͷϨίʔυ͸ಉډͰ͖ͳ͍
    w;POF"QFYʹ͸গͳ͘ͱ΋/4ϨίʔυΛઃఆ͢Δඞཁ͕͋Δ
    w;POF"QFYʹ$/".&Λઃఆͨ͠৔߹ɺ্هʹҧ൓͢Δ
    w͕ͨͬͯ͠ɺ;POF"QFYʹ$/".&͸ઃఆͰ͖ͳ͍
    w 3'$IUUQTUPPMTJFUGPSHIUNMSGDTFDUJPO

    View Slide

  19. "-*"4ػೳ
    w;POF"QFY໰୊Λղܾ͢Δػೳ
    w"-*"4ͱͯ͠ઃఆ͞ΕͨυϝΠϯ໊Λ໊લղܾͯ͠ɺಘΒΕͨ*1Ξυ
    ϨεΛ"Ϩίʔυͱͯ͠ఏڙ͢Δ
    w"-*"4Ϩίʔυͱ͍͏Ϩίʔυ͸ଘࡏ͠ͳ͍
    wͨͩ͠ɺ"/".&Ϩίʔυͱͯ͠࢓༷ఏҊ͕͞Ε͍ͯΔ
    wݱࡏ͸֤%/4αʔϏεͷಠ࣮ࣗ૷Ͱɺ"-*"4΍"/".&ɺ$/".&
    'MBUUFOͳͲͱݺ͹Ε͍ͯΔ

    View Slide

  20. "-*"4ػೳͷ͋Δ%/4αʔϏε
    w%/4JNQMF "-*"4SFDPSE

    w%/4.BEF&BTZ "/".&SFDPSE

    w$MPVE'MBSF%/4 $/".&'MBUUFO

    w"843PVUF &$ɺ"-#΍$MPVE'SPOUͳͲ"84αʔϏεͷΈ

    w(FIJSO%/4 ΤΠϦΞεػೳ

    w46;63*Ͱ͸(FIJSO%/4Λ࢖͍ͬͯ·͢

    View Slide

  21. 44-ઃఆ

    View Slide

  22. 44-ઃఆ
    wੲ͸44-ઃఆ͸༗ྉɿ44-&OEQPJOU MFHBDZ

    wࠓ͸༗ྉ%ZOPͰ͋Ε͹ແྉͰ44-ઃఆ͕Մೳɿ)FSPLV44-
    w-FUT&ODSZQUʹΑΔແྉ44-ূ໌ॻ΋औಘՄೳʹͳͬͨ
    w΋ͪΖΜࣗಈߋ৽
    w46;63*Ͱ͸44-&OEQPJOU MFHBDZ
    Λ࢖༻த

    View Slide

  23. -FUT&ODSZQU
    wυϝΠϯ͕௚઀)FSPLVʹ޲͍͍ͯͳ͍ͱऔಘߋ৽Ͱ͖ͳ͍ͷͰ஫ҙ
    wݸਓΞϓϦͰɺূ໌ॻऔಘޙ$MPVE'MBSFܦ༝ʹ੾Γସ͑ͨΒɺߋ৽࣌
    ʹΤϥʔ͕ى͖ͨʜ

    View Slide

  24. ϝʔϧ

    View Slide

  25. 4FOE(SJE
    wఆ൪ͷϝʔϧ഑৴αʔϏε
    w"EEPOͰ௥ՃͰ͖Δ
    wϓϥϯ͝ͱʹૹ৴Մೳ਺͕نఆ͞Ε͍ͯΔ

    View Slide

  26. ૹ৴਺Φʔόʔ໰୊
    wϓϥϯ͝ͱͷૹ৴਺Λ௒͑Δͱϝʔϧ͕ૹΕͳ͘ͳΔ
    w࢖༻ྔͷ௨஌ϝʔϧ͸དྷΔ͕ɺٳ೔ʹ͔͔͍ͬͯΔͱؾ෇͚ͳ͍
    ͜ͱ΋͋ΔͷͰ͜Ε͚ͩʹ͸པΕͳ͍
    w݄͝ͱͷ੍ݶͷͨΊɺ݄຤ʹϝʔϧૹ৴਺͕ٸ૿͢Δ৔߹ʹ஫ҙ

    View Slide

  27. ૹ৴਺Φʔόʔ໰୊
    wରࡦ
    wۚͰԥΔɿϓϥϯΛ্͛Δ
    wϝʔϧ͕ૹ৴Ͱ͖ͳ͘ͳͬͯ΋ॲཧ͕ࢭ·Βͳ͍Α͏ʹ͢Δ
    wϝʔϧૹ৴Λಉظॲཧ͠ͳ͍ ϫʔΧʔͰඇಉظૹ৴ɾ࠶ૹ৴Ͱ͖Δ
    Α͏ʹઃܭ͢ΔɾϩάΛ࢒͢

    View Slide

  28. ϝʔϧड৴
    w4FOE(SJE͸ϝʔϧૹ৴ͷΈͳͷͰɺड৴ଆ͸ߟ͑Δඞཁ͕͋Δ
    wड৴ϝʔϧͷ಺༰Λ1045ͰૹΔ1BSTF8FCIPPL͸͋Δ
    w46;63*Ͱ͸ϔςϜϧΛ࢖͍ͬͯΔ

    View Slide

  29. σʔλϕʔε

    View Slide

  30. )FSPLV1PTUHSFT
    w1PTUHSF42-͸)FSPLVެࣜͰఏڙ͞Ε͍ͯΔ
    w.Z42-͸ଞࣾ੡"EEPOͷΈ
    w1SFQBSFE4UBUFNFOUT
    w઀ଓ਺໰୊
    wϨϓϦέʔγϣϯ

    View Slide

  31. 1SFQBSFE4UBUFNFOUT
    w1PTUHSF42-αʔόଆͷΫΤϦΩϟογϡػߏ
    w%#ͷϝϞϦΛେྔʹফඅͯ͠͠·͏ͨΊΦϑਪ঑
    wDPOpHEBUBCBTFZNMʹQSFQBSFE@TUBUFNFOUTGBMTFΛઃఆ
    wʮ"DUJWF3FDPSEؚΉଟ͘ͷ03.Ͱ͸ޮ཰తʹ1SFQBSFE4UBUFNFOUT
    Λѻ͑ͣɺ*/۟ͷ಺༰͕ҧͬͨΓ͢Δͱผͷ14ͱͯ͠Ωϟογϡ͞Ε
    ΔͨΊɺ͋·Γʹ΋ଟ͘ͷ14͕࡞ΒΕͯ͠·͏ͨΊʯͱͷ͜ͱ
    w IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTQPTUHSFTMPHTFSSPSTSVCZBDUJWFSFDPSEBOEQSFQBSFE
    TUBUFNFOUT

    View Slide

  32. ઀ଓ਺໰୊
    wϓϥϯ͝ͱʹίωΫγϣϯ਺ͷ্ݶ͕ઃఆ͞Ε͍ͯΔ
    wରࡦ
    wۚͰԥΔɿ%#ͷϓϥϯΞοϓ
    wίωΫγϣϯϓʔϥʔͷ1H#PVODFSΛ࢖͏

    View Slide

  33. ϨϓϦέʔγϣϯ
    w'PMMPXFSEBUBCBTFػೳͱͯ͠ϨϓϦέʔγϣϯΛఏڙ
    w IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTIFSPLVQPTUHSFTGPMMPXFSEBUBCBTFT
    wϚελʔͱҧ͏ϓϥϯͰ΋0, ༰ྔͷ੍໿͸͋Δ

    w46;63*Ͱ͸3FEBTI͔ΒͷΞΫηεͷͨΊʹ'PMMPXFSEBUBCBTFΛ
    ࢖͍ͬͯΔ

    View Slide

  34. ϑΝΠϧΞοϓϩʔυ

    View Slide

  35. ϑΝΠϧΞοϓϩʔυ
    wී௨ʹ΍ΔͱΫϥΠΞϯτˠ)FSPLVˠ4ͷܦ࿏ʹͳΔ
    wΞϓϦଆͰॲཧͯ͠อଘ͍ͨ͠ͱ͖͸༗ޮ͕ͩɺͦ͏Ͱͳ͍৔߹͸αʔ
    όϦιʔεΛઅ໿͍ͨ͠ɾ)FSPLV͕64ͳͷͰ଎౓໰୊͕͋Δ
    w46;63*Ͱ͸1SFTJHOFE63-Λ࢖ͬͨ௚઀ΞοϓϩʔυΛߦ͍ͬͯΔ
    w3BJMTͰಋೖ͞ΕΔ"DUJWF4UPSBHFͰ͸ɺ%JSFDUVQMPBE΋αϙʔ
    τ͞Ε͍ͯΔͱͷ͜ͱ
    w IUUQTHJUIVCDPNSBJMTSBJMTUSFFNBTUFSBDUJWFTUPSBHFEJSFDUVQMPBET

    View Slide

  36. λΠϜΞ΢τ

    View Slide

  37. λΠϜΞ΢τ
    wඵҎ಺ʹϨεϙϯεΛฦ͞ͳ͍ͱɺ)FSPLVଆͰऴྃͤ͞ΒΕΔ
    w݄ॳ༻ͷूܭ$47ΛϦΫΤετܖػͰੜ੒ˠμ΢ϯϩʔυΛ͍ͯͨ͠
    ͕ɺ͜ͷલͷηʔϧͷͱ͖ʹ͍ͭʹλΠϜΞ΢τͨ͠
    w3BLFλεΫͰ$47Λੜ੒ͯ͠4ʹΞοϓ͢ΔΑ͏ʹ͍ͯ͠Δ

    View Slide

  38. ϩά

    View Slide

  39. ϩά
    w1BQFSUSBJM͕ఆ൪
    w͔͠͠ɺਖ਼௚͋·Γ࢖͍উख͸Α͘ͳ͍ؾ͕ʜ
    w5SFBTVSF%BUB΍,JCBOBͳͲͷϩάج൫తͳ΋ͷʹू໿͢Δ΄͏͕Α
    ͦ͞͏
    w4΁ͷόοΫΞοϓ͸͍ͯ͠Δ

    View Slide

  40. ΞϓϦέʔγϣϯઃܭ

    View Slide

  41. 5IF5XFMWF'BDUPS"QQ
    wIUUQTGBDUPSOFUKBҎ্ʂ
    wΞϓϦέʔγϣϯ಺෦ͷઃఆͱ؀ڥ͝ͱʹҟͳΔઃఆΛ෼཭͢Δ
    wεςʔτϨεʜγεςϜϩʔΧϧͳԿ͔ʹґଘ͠ͳ͍ɺࣗݾ׬݁
    w)FSPLVͰ͸ϩʔΧϧʹอଘͰ͖Δ͕ɺ೔ճ࠶ىಈ͞Εͯফ໓͢Δ
    w)FSPLV͸εέʔϥϒϧͳΞϓϦཆ੒Ϊϓε

    View Slide

  42. ো֐৘ใ

    View Slide

  43. ো֐৘ใ
    wIUUQTTUBUVTIFSPLVDPN
    wϝʔϧͰߪಡͰ͖Δ͕ɺܰඍͳো֐͸݁ߏଟ͍
    w$SJUJDBMJODJEFOUTPOMZͰ͍͍͔΋͠Εͳ͍

    View Slide

  44. ωοτϫʔΫো֐
    w)FSPLVʹωοτϫʔΫো֐͕ൃੜ͠ɺ͜Ε͕ݪҼͱΈΒΕΔαʔϏ
    εো֐͕ى͖ͨ
    w"EEPOͷαʔόʔ͸಺෦-"/ʹͳ͍ͷͰωοτϫʔΫো֐ͷӨڹΛ
    ड͚Δ͜ͱʹ஫ҙ
    w֎ܗ؂ࢹΛ͖ͪΜͱೖΕΔ

    View Slide

  45. ͓·͚

    View Slide

  46. )FSPLV1JQFMJOFT
    wςετɺεςʔδϯάɺຊ൪؀ڥΛγʔϜϨεʹ౷߹͢Δ$*$%؀ڥ
    wNBTUFSϚʔδˠ)FSPLV$*࣮ߦˠςετ௨ͬͨΒࣗಈσϓϩΠͳͲ
    w$IBU0QT΋αϙʔτɿ/h deploy suzuri to production
    wͨͩ͠ɺ(JU)VC DPN
    Ͱ͔͠࢖͑ͳ͍ʜʜ
    wHJUIVCDPN͕ϋʔυίʔυ͞Ε͍ͯΔՕॴ͕͋ͪͪ͜ʹ͋ͬͯ৭ʑ
    େมΒ͍͠ͱͷ͜ͱʜ CZITCU

    w IUUQTLCIFSPLVDPNDBOJVTFHJUIVCFOUFSQSJTFXJUIQJQFMJOFSFWJFXBQQT

    View Slide

  47. )FSPLV3FWJFX"QQT
    w)FSPLV1JQFMJOFTͷػೳͷͻͱͭ
    w1VMM3FRVFTUΛ࡞Δͨͼʹ৽͍͠؀ڥΛ࡞ͬͯ͘ΕΔ
    wJOUFHSBUJPO؀ڥ଴͔ͪΒղ์ʂʂʂ
    wͨͩ͠ɺ͜Ε΋(JU)VCͰ͔͠࢖͑ͳ͍ʜʜ

    View Slide

  48. ·ͱΊ
    wಠࣗυϝΠϯઃఆ
    wΦʔτεέʔϧ
    w44-ઃఆ
    wϝʔϧ
    wσʔλϕʔε
    wϑΝΠϧΞοϓϩʔυ
    wλΠϜΞ΢τ
    wΞϓϦέʔγϣϯઃܭ
    wো֐৘ใ
    w͓·͚

    View Slide

  49. ੍໿͸͋Δ͕ͱͯ΋ศར

    View Slide

  50. )FSPLVͰຊ൪ӡ༻
    ͯ͜͠͏

    View Slide