Rubyアソシエーション開発助成成果報告会 https://rubyassociation.doorkeeper.jp/events/74355
8FCϗεςΟϯάج൫ར༻Ͱͷ࣮ূ࣮ݧɾ։ൃͷใࠂۙ౻Ӊஐ࿕(.01FQBCP *OD3VCZΞιγΤʔγϣϯ։ൃॿՌใࠂձNSVCZΛϓϩμΫγϣϯʹ ೖ͢Δ
View Slide
γχΞɾϓϦϯγύϧΤϯδχΞۙ౻ Ӊஐ࿕ / @udzurahttps://blog.udzura.jp/Uchio Kondoٕज़෦ ٕज़ج൫νʔϜ
#PPLT
1SPEVDUT
$PNNVOJUZFukuoka.rb
IUUQTNDMPMJQPQKQ
େنϗεςΟϯά࣮ূ࣮ݧ
ϗεςΟϯά࣮ূ࣮ݧwίϯςφΛ༻͍ͨ8FCϗεςΟϯάͷγεςϜʹؔͯ͠ɺύϒϦοΫΫϥυେ͖ͳϦιʔεΛ༻͍ͯ௨ৗͷڥͰ࣮ࢪ͠ʹ͍͘Α͏ͳ༰ͷ࣮ݧΛߦͬͨɻwߴෛՙ࣌ͷڍಈɺඇৗʹूੵ͕ߴ·ͬͨ߹ͷڍಈͷ֬ೝͳͲ
ͳͥϗεςΟϯάͰ
ϗεςΟϯάݻ༗ͷٕज़త՝wҰൠతͳ8FCαʔϏεʹൺͯɺϓϥοτϑΥʔϜΛఏڙ͢ΔϗεςΟϯάαʔϏεͰҎԼͷΑ͏ͳ՝͕ݦஶʹͳΔwγεςϜύϑΥʔϚϯεͷwߴूੵੑͷwηΩϡϦςΟͷw͍ͣΕɺΞϓϦέʔγϣϯͷΈͳΒγεςϜྖҬͰͷ։ൃ͕ඞਢͱͳΔɻͦͷͷྖҬʹɺγεςϜϓϩάϥϛϯάʹڧ͍NSVCZϑΟοτ͢Δ
͓ޓ͍ͷվળؔ͠߹͏NSVCZΛར༻ͨ͠ ϛυϧΣΞͷվળ NSVCZͷվળϗεςΟϯάج൫ͷվળ
NSVCZΛར༻ͨ͠ϛυϧΣΞͷվળ
ୡͰ͖ͨՌͷ͏ͪ ओͨΔͷΛհ
[email protected]
[email protected]wߴੑೳͳ8FCαʔό࣮/HJOYͷڍಈΛɺNSVCZͰ੍ޚͰ͖ΔΑ͏ʹ͢Δ֦ுwϩʔυόϥϯγϯά44-ূ໌ॻͷಈతཧ͕؆ܿͳίʔυͰ࣮ݱwࠓྲྀߦͷ4FSWJDF.FTIͰߦͳ͍ͬͯΔػೳͷઌۦ͚తଘࡏʁ
[email protected]ͷϦϦʔεwࠓճͷॿʹΑΔ࣮ݧ༰Λड͚ɺઌόʔδϣϯͷϦϦʔεwଟ͘ͷՃػೳΛ࣮
ϦΫΤετϋϯυϥͷඇಉظԽ
ϦΫΤετϋϯυϥͷඇಉظԽwWҎલɺϫʔΧʔ͝ͱʹNSVCZͰͷॲཧϒϩοΫ͍ͯͨ͠ɻwඇৗͳߴෛՙ࣌ɺNSVCZͰ*0όΠϯυͳॲཧΛ͍ͯ͠Δ߹ʹεϧʔϓοτॲཧϦΫΤετͷ͕ى͜Δ͜ͱ͕͋ͬͨɻw͜ͷରԠͷҰͱͯ͠ɺNSVCZͷϋϯυϥॲཧΛ'JCFSΛϕʔεʹඇಉظԽ͢Δ͜ͱʹޭͨ͠w/HJOYࣗମͷΞʔΩςΫνϟʹ߹͍ͬͯΔ
ࠓ·Ͱͷϋϯυϥͷڍಈ3FR 3FTNSVCZ
Wʹ͓͚Δϋϯυϥͷڍಈ3FR 3FTNSVCZ*[email protected]
'JCFSͷར༻'JCFSGPSFBDIIBOEMFS"XPSLFSQSPDFTT
ϕϯνϚʔΫIUUQTICNBUTVNPUPSKQFOUSZ
େنϗεςΟϯάʹ͓͚ΔӨڹwେنϗεςΟϯάͷҎԼͷՕॴͰ[email protected]Λར༻w֎෦%#Λ༻͍ͨಈతͳϩʔυόϥϯγϯάwϦΫΤετܖػͰͷίϯςφىಈʢ'BTU$POUBJOFSʣw͜ͷΑ͏ʹϋϯυϥͰ֎෦"1*ͷΞΫηεɺ%#ͷΞΫηεͷΑ͏ʹҰఆͷ*0͕ͪىͬͯ͜͠·͏ύλʔϯʹ͓͍ͯεϧʔϓοτͷ͕͋ͬͨɻݱࡏ[email protected]ͷಋೖΛྃ
ࠓޙͷ՝wવ·ͩར༻࣮͕গͳ͘ɺΤοδέʔεͰͷόάଘࡏ͠͏ΔͷͰɺͦ͏ݴͬͨͷʹରॲ͍ͯ͘͠ඞཁ͕͋Δw5$1TUSFBNͰͷϋϯυϥͳͲҰ෦·ͩ'JCFSԽ͞Ε͍ͯͳ͍ɻՃͰ։ൃ͍ͯ͘͠
)BDPOJXB
)BDPOJXBwNSVCZʹΑΓɺ༷ʑͳઃఆΛهड़Ͱ͖ΔίϯςφϥϯλΠϜwҎԼͷػೳΛϓϩάϥϜͰΈ߹ΘͤΔ͜ͱ͕Ͱ͖Δw-JOVYͷϦιʔεʢ-JOVY/BNFTQBDFͳͲʣɺϦιʔε੍ݶʢDHSPVQͳͲʣɺݖݶ੍ޚʢ-JOVY$BQBCJMJUZɺ4FDDPNQͳͲʣͷ֤छίϯςφػೳwίϯςφͷΠϕϯτʢىಈɺఀࢭɺྫ֎΄͔ʣɺىಈޙͷܦա࣌ؒʹ߹ΘͤͨϑοΫॲཧɺγάφϧϋϯυϥ
'BTU$POUBJOFSwίϯςφΛඞཁͳ࣌ʹॳΊͯىಈ͠ɺ·ͨఆظతͳίϯςφͷೖΕସ͑Λ͢Δ͜ͱͰίϯςφͷཧίετͱϦιʔεޮΛ্ͤ͞Δ ίϯςφཧͷΞʔΩςΫνϟwݱࡏɺ[email protected])BDPOJXBͰ࣮ͯ͠ɺαʔϏεͰͷӡ༻ʹ͍ͤͯΔ
1JDUVSFPG'BTU$POUBJOFSWebProxyWebRequestDispatcherFastContainerRuntimeCMDB❌FastContainerKilled1. Check2. Boot3. Forward4. Terminate
ىಈΦʔόʔϔουΛݮ͍ͨ͠wࠓճͷେنϗεςΟϯάͰɺ'BTU$POUBJOFSΞʔΩςΫνϟΛ࠾༻͠ɺίϯςφཧͱϦιʔεͷར༻ޮͷ࠷େԽΛਤ͍ͬͯΔwʮඞཁͳ࣌ͷΈىಈ͢Δෆཁͳ࣌ίϯςφΛ࡞Βͳ͍ʯͱ͍͏ΞʔΩςΫνϟΛ࣮ݱ͢Δʹසൟͳ࠶ىಈ͕ඞཁʹͳΓɺϢʔβମݧͱ͍͏؍ͰΞϓϦέʔγϣϯʹΑΓىಈ࣌ͷΦʔόʔϔουΛແࢹͰ͖ͳ͍
ઓུ wίϯςφͷىಈܧଓ࣌ؒΛ͘͢Δ ˠ૬ରతͳͪ࣌ؒͷׂ߹͕ݮΔͨΊɺϢʔβମݧ্͢ΔىಈதϦΫΤετՄೳ
ίϯςφͷಉ࣌ىಈw࣮ݧʹͯɺίϯςφͷಉ࣌ىಈʹؔ͢ΔݕূΛߦͬͨɻw݁Ռͱͯ͠ɺγεςϜతͳͰ࠷ऴతʹϗετͷϝϞϦ͚ͩͷىಈͤ͞ΒΕΔ͜ͱ͕͔͕ͬͨɺ͜ΕϋʔυΣΞతͳ্ݶͰ͋Γɺಉ࣌ىಈΛͳΔ͘খ͘͞อͯΔͱ·͍͠w'BTU$POUBJOFSతʹɺىಈܧଓ࣌ؒΛͳΔ͘͘ɺਫ਼៛ʹϦιʔείϯτϩʔϧ͕Ͱ͖ΔͱϕλʔͳγεςϜʹͳΔ
ઓུ wىಈʹඞཁͳ࣌ؒࣗମΛ͘͢Δwͦͦͷ͕ͪ࣌ؒҰఆҎ্খ͘͞ͳΕɺϨεϙϯελΠϜશମͷϘτϧωοΫΛΞϓϦέʔγϣϯʹҠ͢͜ͱ͕Ͱ͖Δ#PPUVQ"QQ-PHJD
NSVCZͱ$3*6ͷ࿈ܞ
$IFDLQPJOU3FTUPSFwϓϩηεͷ֤छଐੑϝϞϦঢ়ଶΛΠϝʔδʹμϯϓ͠ $IFDLQPJOUɺͦΕΛݩʹϓϩηεΛߴʹ࠶ੜ͢Δ 3FTUPSFٕज़wίϯςφϓϩηεͰ͋Δ™ͨΊɺίϯςφͷঢ়ଶμϯϓͱɺμϯϓΠϝʔδ͔ΒͷىಈʹԠ༻Ͱ͖Δwදతͳ࣮ͱͯ͠$3*6 $IFDLQJOU3FTUPSF*O6TFSTQBDF͕ΒΕ͍ͯΔ
$3*6w-JOVYʹ͓͚Δ$IFDLQPJOU3FTUPSFͷ࣮wQSPDͷԼͷใΛऩू͠ɺϓϩηεͷϝϞϦͷঢ়ଶ֤छଐੑɺಛʹ/BNFTQBDFDHSPVQɺϑΝΠϧهड़ࢠͷঢ়ଶΛอଘ͢ΔwDSJVࣗମαʔϏεԽ͢Δ͜ͱՄೳͰɺMJCDSJVͱ͍͏"1*ϥούʔͷ$࣮͕ఏڙ͞Ε͍ͯΔw%PDLFSͷDIFDLQPJOUSFTUPSF࣮ʹΘΕΔ
ϗεςΟϯάͰͷ՝wίϯςφͷνΣοΫϙΠϯτΛ࡞͢ΔλΠϛϯάwϢʔβʔΞϓϦέʔγϣϯʹͲͷΑ͏ͳͷ͕Δ͔Θ͔Βͳ͍ͨΊɺՄೳͰ͋ΕͳΔ͘อ͍࣋ͯ͠Δใ͕গͳ͍λΠϛϯάɺྫ͑ϛυϧΣΞͷઃఆ͕ϝϞϦʹΓϙʔτΛϦεϯ͢ΔલɺͷΑ͏ͳ໘ͰνΣοΫϙΠϯτΛ࡞Γ͍ͨw͜ͷࡍɺҙͷγεςϜίʔϧͳͲΛϑοΫʹνΣοΫϙΠϯτॲཧΛΒ͍ͤͨ
4FDDPNQͷ׆༻
4FDDPNQʹΑΔγεςϜίʔϧϑοΫwTFDDPNQͱɺಛఆͷϓϩάϥϜʹΑΔγεςϜίʔϧͷݺͼग़͠ΛࢹɺϑΟϧλϦϯά͢Δ-JOVYΧʔωϧͷػೳwྫ͑ɺݺͼग़͠ͷېࢭڐՄɺݺͼग़͠ͷτϥοϓɺϩΪϯάͳͲ͕ՄೳͱͳΔw࡞NSVCZTFDDPNQʹΑΓNSVCZͰ੍ޚͰ͖Δ
4FDDPNQˠ$3*6ͷ࿈ܞwྫ͑ϛυϧΣΞ͕ىಈ͠ɺϙʔτΛϦεϯ͢ΔλΠϛϯά·Ͱʹ༷ʑͳιέοτૢ࡞ͷγεςϜίʔϧ͕ΔwͦΕΒΛܖػͱͯ͠νΣοΫϙΠϯτΛ࡞͢ΕɺىಈͷΦʔόʔϔουΛࣦͭͭ҆͘͠શʹϓϩηεΛ࠶ੜͰ͖Δw)BDPOJXBͷΑ͏ͳ࣮Ͱ͋ΕɺͦΕΒͷϥΠϒϥϦΛNSVCZͰϥοϓ͠ɺ%4-ʹΑΓରγεςϜίʔϧͷࢦఆ͕Մೳ
4FDDPNQˠ$3*6ͷ࿈ܞIBDPOJXBDIFDLQPJOUIBDPOJXBSFTUPSF$3*6JNBHFpMFT♻
)BDPOJXBPO$3*6%&.0
্࣮ͷ՝wݱࡏɺʮ$3*6͕ϓϩηεΛఀࢭ͢Δॲཧʯͱʮ4FDDPNQ͕ϓϩηεΛఀࢭ͢Δॲཧʯ͕όοςΟϯάͯ͠͠·͏͕͋ΔwҰॠσλον͢Δ͜ͱͰճආ͍ͯ͠Δ͕ɺਖ਼֬ͳλΠϛϯάΛ੍ޚ͍ͨ͠w$3*6ଆͰʢ͢Ͱʹࢭ·͍ͬͯΔͷͰʣఀࢭ͠ͳ͍Α͏ͳΦϓγϣϯΛύονͰ࣮͢ΔɺΛݕ౼
·ͱΊͱల
Ռͷ·ͱΊɾలwେنϗεςΟϯάڥͰNSVCZΛར༻͠ɺҎԼͷϛυϧΣΞվળ[email protected]ͷ'JCFSԽw)BDPOJXBͱ$3*6ͷ࿈ܞʢ࣮վળதʣwࠓޙNSVCZར༻ՌΛΦʔϓϯʹ͍ͨ͠wใࠂ্ະୡͰ͋ΔΦʔέετϨʔγϣϯͷ࣮ެ։ɺίϯςφͷվળͱͱʹਐΊ͍͖ͯͨ
ँࣙͳͲ
େنΫϥυ࣮ݧ!/**wࠓճͷݚڀͰɺࠃཱใֶݚڀॴʢ/**ʣΫϥυ࣮ূ࣮ݧʹΑΓ ఏڙ͞ΕͨΫϥυڥΛར༻͍ͯ͠·ͨ͠IUUQTQFQBCPDPNOFXTQSFTT
͝ڠྗɾ͝ࢦಋ͍͍ͨͩͨօ༷wϖύϘͷಉ྅ͷํʑʢࢁԼ͞Μɺాதྒհ͞ΜʣwϖύϘݚڀॴ٬һݚڀһɹ[email protected]*5͞Μ