Slide 1

Slide 1 text

ۙ౻Ӊஐ࿕ / ϖύϘݚڀॴɾGMOϖύϘגࣜձࣾ 2018.03.13 ৘ใॲཧֶձୈ80ճશࠃେձ Haconiwa: ϓϩάϥϜʹΑΔɼ૊ΈཱͯՄೳੑͱ ֦ுੑΛ࣋ͭLinuxίϯςφ 

Slide 2

Slide 2 text

γχΞɾϓϦϯγύϧΤϯδχΞ ۙ౻Ӊஐ࿕ / @udzura http://blog.hogehoge.com Uchio Kondo ϖύϘݚڀॴ/ٕज़ج൫νʔϜ 

Slide 3

Slide 3 text

1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5. ·ͱΊ ໨࣍ 

Slide 4

Slide 4 text

1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5. ·ͱΊ ໨࣍ 

Slide 5

Slide 5 text

• Πϯλʔωοτ/͜ͱWebͷϢʔβ͕૿͑ͯɼΠϯλʔωοτʹެ։͞Εͨ αʔϏεͷӡ༻ऀͷ՝୊͕૿͑ͨ • ྫ͑͹ιʔγϟϧϝσΟΞʹΑΔʮόζʯʮԌ্ʯ • ྫ͑͹DoS/DDoS߈ܸ • ͜ͷΑ͏ʹɼಥൃతͳΞΫηεͷٸ্ঢ/ٸܹͳෛՙ޲্ʹ͞Β͞Εͨ৔߹ͷ ղܾࡦͷҰͭͱͯ͠ɼΦʔτεέʔϧʹ஫໨͕ू·͍ͬͯΔ લఏ: ಥൃΞΫηε૿΁ͷӡ༻తରॲ 

Slide 6

Slide 6 text

• Φʔτεέʔϧ: ෛՙঢ়گʹԠ͡γεςϜΛߏ੒͢Δαʔό਺౳Λޮ཰తʹ૿ ݮ͢Δख๏ • Φʔτεέʔϧʹ͓͍ͯ͸ɼαʔόϦιʔεΛͳΔ΂͘ߴ଎ʹ૿Ճɾݮগͤ͞ Δඞཁ͕ੜ·ΕΔ • ैདྷͷαʔόϦιʔεͷԾ૝Խٕज़ʢϋΠύʔόΠβܕ/ϗετܕʣͱൺ΂ͯ
 ىಈ͕ߴ଎ͰɼϦιʔε੍ޚͷཻ౓͕ࡉ͔͍ίϯςφܕԾ૝Խ͕ීٴͭͭ͋͠ Δ ͦͷ্Ͱ: ΦʔτεέʔϧˠίϯςφܕԾ૝Խ΁ͷ஫໨ 

Slide 7

Slide 7 text

• ݱঢ়ීٴ͍ͯ͠ΔίϯςφܕԾ૝Խͷख๏ʹ͸͍͔ͭ͘՝୊͕͋Δ 1. σϑΥϧτͰෆཁͳػೳؚΊΦʔϧΠϯϫϯͰ༗ޮʹͳΔ఺ 2. ֦ுੑʹ๡͘͠ɼཁ݅ʹ߹ΘͤΔ͜ͱ͕ࠔ೉ͳ఺ • ͜ΕΒ͸ಛʹɼߴ͍ूੵੑΛཁٻ͢ΔWebϗεςΟϯάج൫Ͱ໰୊ʹ • ͜ΕΒͷ՝୊Λղܾ͢Δख๏ͱͯ͠։ൃͨ͠ίϯςφϥϯλΠϜHaconiwa
 ʹ͍ͭͯఏҊ͢Δ ίϯςφܕԾ૝ԽΛऔΓר͘՝୊ 

Slide 8

Slide 8 text

1. ίϯςφܕԾ૝Խ: ϗετܕ౳ͱҧ͍ɼϗετOSͱΧʔωϧΛڞ༗͠σόΠ εͷԾ૝ԽΛߦΘͳͣɼϓϩηεϕʔεͷಠཱ؀ڥͱͨ͠Ծ૝Խܗࣜ 2. ίϯςφ: ίϯςφܕԾ૝Խܗࣜʹ͓͍ͯɼOSػೳʹΑΓಠཱੑΛ෇༩͞Ε ͨͦΕͧΕͷϓϩηε·ͨ͸ͦͷάϧʔϓɽΠϯελϯεͱ΋ݺͿ 3. ίϯςφϥϯλΠϜ: ্ड़ͷίϯςφͷىಈɼఀࢭɼͱ͍ͬͨϥΠϑαΠΫϧ Λ؅ཧ͢ΔͨΊͷιϑτ΢ΣΞ  ༻ޠͷఆٛ ίϯςφ
 ϥϯλΠϜ ίϯςφ ʢϗετͷ-JOVY04ʣ

Slide 9

Slide 9 text

1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5. ·ͱΊ ໨࣍ 

Slide 10

Slide 10 text

1. Πϯελϯεͷ௥Ճॲཧ͕௿଎Ͱ͋Δ 2. ϋʔυ΢ΣΞϦιʔεͷར༻ޮ཰͕௿͍ 3. ۭ͖Ϧιʔε֬ೝͷͨΊͷεέδϡʔϦϯάͷ஗Ԇ 4. εέʔϦϯά͢΂͖ঢ়گݕ஌ͷϦΞϧλΠϜੑ͕௿͍  দຊΒ(*)ʹΑΔΦʔτεέʔϧͷ՝୊ 'BTU$POUBJOFS࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟʢൃදࢿྉʣ 
 IUUQTTQFBLFSEFDLDPNNBUTVNPUP@SGBTUDPOUBJOFSTIJYJOHIVBOKJOHGBMTFCJBOIVBOJTV[BPLVTIJ ZJOHEFLJSVIFOHDIBOHYJOHXPDIJUVTJTVUFNVBLJUFLVUJZB

Slide 11

Slide 11 text

• ϗετܕ΍ϋΠύʔόΠβܕͱൺֱͨ͠৔߹ • 1, 3. ʹ͍ͭͯ: ίϯςφ͸ىಈ΍ఀࢭ͕ߴ଎Ͱ͋Γɼ޲͍͍ͯΔ • 2. ʹ͍ͭͯ: ίϯςφʹϓϩηε͸๛෋ͳAPIʹΞΫηεͰ͖ɼϦιʔε੍ޚ Λࡉ͘Ͱ͖Δɽ޲͍͍ͯΔ • 4. ʹ͍ͭͯ͸ϓϩηεͱ͍͏ಛੑ্؂ࢹΛৄࡉ͔ͭܰྔʹͰ͖Δͱߟ͑ΒΕ Δ͕ɼຊ࿦จͰ͸ߟ࡯͍ͯ͠ͳ͍ ՝୊ʹରͯ͠ίϯςφΛར༻ͨ͠৔߹ 

Slide 12

Slide 12 text

• Docker: https://www.docker.com/ • LXC: https://linuxcontainers.org/lxc/introduction/ • ͜ΕΒͷίϯςφϥϯλΠϜʹؔͯ͠͸ɼIEEE Cloud Computingࢽͷ “Containers and Cloud: From LXC to Docker to Kubernetes” ίϥϜΛ͸͡ Ίɼ঺հهࣄʹ͍ͱ·͕ͳ͍ Ұ୴ͷ݁࿦: ίϯςφܕԾ૝Խͷ࠾༻ 

Slide 13

Slide 13 text

1. ෆཁͳػೳΛ؆୯ʹআ֎Ͱ͖ͳ͍఺ 2. γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖ͳ͍఺  ͞ΒͳΔ՝୊: طଘͷίϯςφϥϯλΠϜͷ໰୊

Slide 14

Slide 14 text

• ͜͜·Ͱʹ͋͛ͨΑ͏ͳίϯςφϥϯλΠϜ͸ɼσϑΥϧτͰ਺ଟ͘ͷίϯς φΛ࣮ݱ͢Δػೳ͕ηοτͰ༗ޮʹͳΔ • ར༻ऀͱͯ͠͸ৄࡉΛؾʹͤͣԾ૝؀ڥΛར༻Ͱ͖ΔϝϦοτͰ΋͋Δ • ҰํͰɼಛʹϦιʔεޮ཰΍ूੵੑͱ͍͏؍఺͔ΒɼಛఆͷػೳΛແޮԽͨ͠ ͍ͱ͍͏धཁ͕ଘࡏ͢Δ • ྫ͑͹ɼOSͷrootfsΛ࠶ར༻͍ͨ͠ɼωοτϫʔΫΛࣗ෼Ͱ੍ޚ͍ͨ͠ଞ • ཧ࿦্͸ͲͷΑ͏ͳίϯςφϥϯλΠϜͰ΋ՄೳͰ͋Δ͕ɼDockerͳͲͷ ৔߹໌֬ʹυΩϡϝϯτ͕ଘࡏ͠ͳ͍ͳͲɼར༻͕೉͍͠ ෆཁͳػೳΛ؆୯ʹআ֎Ͱ͖ͳ͍఺ 

Slide 15

Slide 15 text

• ઌड़ͷIEEEͷίϥϜͰ͸ίϯςφͷΫϥελϦϯάʹ͸Kubernetes͕ར༻Ͱ ͖Δͱड़΂͍ͯΔ • Kubernetes: https://kubernetes.io/ • Ұํɼݱࡏͷঢ়گͰ͸ɼKubernetesͱDockerͷ૊Έ߹ΘͤͳͲطଘͷΫϥε λϦϯάελοΫͰ࣮ݱ͕೉͍͠ཁ݅΋͋Δ • ϗεςΟϯά༻్ͷ৔߹ɼߴूੵੑ͕ٻΊΒΕΔͷͰɼίϯςφࣗ਎ͷঢ়ଶ ʹΑΓϦιʔεׂΓ౰ͯΛมߋ͢ΔͳͲɼࡉ͔͍ࣗݾ੍ޚ͕ٻΊΒΕΔ γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖ͳ͍఺ 

Slide 16

Slide 16 text

1. ඞཁɾෆཁͳػೳͷ૊Έ߹ΘͤΛར༻ऀ͕؆ܿʹهड़Ͱ͖Δ͜ͱ 2. γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖Δ͜ͱ
 ϗεςΟϯά༻్Λ૝ఆ͢Δͱɼྫ͑͹: ᶃ ίϯςφͷىಈɾఀࢭͳͲͷϥΠϑαΠΫϧΠϕϯτɼίϯςφىಈޙҰ ఆظؒޙΛܖػͱ࣮ͯ͠ߦ͞ΕΔॲཧ͕هड़ՄೳͰ͋Δ͜ͱ ᶄ ֎෦ͷ HTTP API ͱͷ࿈ܞɼίϯςφػೳҎ֎ͷOSػೳͷ׆༻ͳͲ͕Մ ೳʹͳΔߴ͍֦ுੑ͕͋Δ͜ͱ  ίϯςφʹ͓͚Δ՝୊Λղܾ͢Δʹ͸

Slide 17

Slide 17 text

1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5. ·ͱΊ ໨࣍ 

Slide 18

Slide 18 text

Haconiwa  • චऀΒʹΑΔίϯςφϥϯλΠϜͷ
 ͍࣮ͪ૷ɼ2016೥ʹެ։ • Φʔϓϯιʔειϑτ΢ΣΞͰ͋Δ

Slide 19

Slide 19 text

• ඞཁɾෆཁͳػೳͷ૊Έ߹ΘͤΛར༻ऀ͕؆ܿʹهड़Ͱ͖Δ͔: • ૊Έ߹ΘͤΛϥϯλΠϜͷػೳͱͯ͠αϙʔτ͠ɼޙड़͢Δmrubyͱ͍͏
 ૊ΈࠐΈ಺෦ݴޠ(DSL)Λར༻͠هड़ੑߴ͘ॻ͚Δ • ϥΠϑαΠΫϧΠϕϯτɼίϯςφىಈޙҰఆظؒޙΛܖػͱͨ͠ॲཧ: • DSLͰ༷ʑͳछྨͷϑοΫॲཧΛαϙʔτ͍ͯ͠Δ • ֎෦ͷ HTTP API ͱͷ࿈ܞ࣮૷ͳͲߴ͍֦ுੑ: • DSLͰͷϓϩάϥϛϯάɼ֎෦ϥΠϒϥϦͷຒΊࠐΈ͕Մೳ ՝୊ʹରͯ͠ͷHaconiwa 

Slide 20

Slide 20 text

Haconiwaͷ ৄࡉͳػೳ

Slide 21

Slide 21 text

• Linux͸ίϯςφͷ࡞੒ʢචऀ͸ϓϩηεΛίϯςφԽ͢Δͱදݱ͢ΔʣΛෳ ਺ͷػೳɾγεςϜίʔϧͷ૊Έ߹ΘͤͰ࣮ݱ͢ΔɽͦΕΒͷػೳ͸෼ྨͰ͖ɼ ·ͨHaconiwaʹ͓͍ͯ͸ࣗ༝ʹ૊Έ߹Θ͕ͤՄೳͰ͋Δ 1. OSϦιʔεͷ෼཭ػೳ: chrootγεςϜίʔϧɼLinux Namespace 2. OSϦιʔεͷ੍ݶػೳ: cgroupsɼrlimitγεςϜίʔϧ 3. εʔύϢʔβݖݶͷ෼ׂ: Linux Capability 4. γεςϜίʔϧͷϑΟϧλػߏ: seccomp 3.1. ίϯςφԾ૝Խػೳ΁ͷରԠ 

Slide 22

Slide 22 text

ରԠػೳͷਤදʢ࣮ݱ͢ΔγεςϜίʔϧ౳΋ܝࣔʣ  ෼ྨ ໊শ ৄࡉ 04Ϧιʔεͷִ཭ DISPPU  ͋ΔαϒσΟϨΫτϦʹల։ͨ͠04ͷϑΝΠϧγε ςϜʹೖΓɼผͷ04ͷΑ͏ʹݟͤΔ 04Ϧιʔεͷִ཭ -JOVY/BNFTQBDF
 TFUOT  VOTIBSF  ຊདྷ04ͰάϩʔόϧͳϦιʔεʢϗετ໊ɼ/*$ͳ Ͳʣʹ໊લۭؒΛ࡞ΓɺผͷϦιʔεΛ࣋ͨͤΔ 04Ϧιʔεͷ੍ݶ DHSPVQT
 DHSPVQGTΛར༻ ೚ҙͷϓϩηεΛάϧʔϐϯά͠$16ɼϝϞϦɼॴ ଐϓϩηε਺ͳͲΛ੍ݶ͋Δ͍͸ܭଌ͢Δ 04Ϧιʔεͷ੍ݶ SMJNJU  QSMJNJU  جຊతʹϓϩηεπϦʔ୯ҐͰ$16ɼϝϞϦɼϑΝ Πϧهड़ࢠ਺ͳͲΛ੍ݶ͢Δ ݖݶ෼ׂ -JOVY$BQBCJMJUZ QSDUM  MJCDBQ  εʔύϢʔβͷ࣋ͭಛݖΛز͔ͭʹ෼ׂ͠ɼҰ෦Λ෇ ༩͋Δ͍͸ണୣ͢Δ γεςϜίʔϧ ϑΟϧλ TFDDPNQ TFDDPNQ  MJCTFDDPNQ γεςϜίʔϧͱͦͷҾ਺ͷ৚݅͝ͱʹɼͦͷݺͼग़ ͠Λ੍ݶɾڐՄ͢Δ

Slide 23

Slide 23 text

• ͪ͜Β΋දʹҰཡ͢Δ 3.2. ϑοΫػߏ΁ͷରԠ  ໊শ ৄࡉ ϥΠϑαΠΫϧϑοΫ ىಈɼGPSL੒ޭɼఀࢭɼࣦഊͱ͍ͬͨίϯςφͷϥΠϑαΠΫϧʹ ؔΘΔΠϕϯτ͝ͱʹ೚ҙͷॲཧΛ࣮ߦͰ͖Δ λΠϜΞ΢τϑοΫ ىಈ੒ޭޙɺίϯςφຊମͷॲཧͱ͸ඇಉظͷܗͰɼҰఆ࣌ؒܦա ޙʹ೚ҙͷॲཧΛ࣮ߦͰ͖ΔɽΠϯλʔόϧͷҰճ͚ͩͷܗ ΠϯλʔόϧϑοΫ ىಈ੒ޭޙɺίϯςφຊମͷॲཧͱ͸ඇಉظͷܗͰɼҰఆ࣌ؒͷΠ ϯλʔόϧΛऔͬͯ೚ҙͷॲཧΛఆظ࣮ߦͰ͖Δ γάφϧϋϯυϥ ίϯςφΛ؅ཧ͢ΔϓϩηεʢεʔύʔόΠβʣʹ೚ҙͷλΠϛϯ άͰಛఆͷγάφϧΛૹ෇͢Δͱɺ೚ҙͷॲཧΛ࣮ߦͰ͖Δ

Slide 24

Slide 24 text

• ଞͷίϯςφϥϯλΠϜͰ͸ϥΠϑαΠΫϧΠϕϯτΛϕʔεͱͨ͠ϑοΫػ ߏΛαϙʔτ͍ͯ͠Δ • ྫ: Docker(ϥΠϑαΠΫϧΠϕϯτΛ؂ࢹ͢ΔHTTP APIΛ༻ҙ)ɼLXC(ઃఆ ϑΝΠϧͰ೚ҙͷίϚϯυΛ࣮ߦࢦఆՄೳ) • ҰํͰɼλΠϜΞ΢τ΍ΠϯλʔόϧϑοΫʹؔͯ͠͸ݱࡏHaconiwaͷΈ͕ ίϯςφϥϯλΠϜ૊ΈࠐΈͰαϙʔτ͢Δ • ͜ͷϑοΫ͸ɼޙड़ͷFastContainerͷΑ͏ͳίϯςφͷੜଘظؒΛࢦఆ͢ Δػೳͷ࣮ݱͱ૬ੑ͕ྑ͍ ิ଍: ϑοΫػߏʹ͍ͭͯͷଞ࣮૷ͱͷൺֱ 

Slide 25

Slide 25 text

• Haconiwa͸mrubyͱݺ͹ΕΔܰྔͳRubyͷ
 ࣮૷Λ૊ΈࠐΜͰ͍Δ • ίϯςφͷઃఆ΍ϑοΫॲཧΛ
 DSL(Domain Specific Language)Ͱهड़͠ɼ
 Haconiwaʹ૊ΈࠐΜͩmrubyͰධՁ͠ɼ൓өɾ࣮ߦՄೳͰ͋Δ 3.3. εΫϦϓτݴޠmrubyͷ૊ΈࠐΈ 

Slide 26

Slide 26 text

• ͍ΘΏΔCRubyͱޓ׵ੑ͕͋Δจ๏ • εΫϦϓτݴޠʹ׳Εͨ
 ར༻ऀͰ͋Ε͹ಡΈ΍͘͢
 ೃછΈ΍͍͢Ͱ͋Ζ͏ͱ
 ߟ͑ΒΕΔ DSL ͷྫ 

Slide 27

Slide 27 text

• mrubyʹ͸mrbgemsͱݺ͹ΕΔ֎෦ϥΠϒϥϦͷ࢓૊Έ͕͋Δ • Haconiwaʹ૊Έࠐ·ΕΔmrubyΛϏϧυ͢ΔࡍʹɼΠϯλʔωοτͳͲΛܦ ༝ͯ͠ಛఆͷػೳΛ࣮ݱͨ͠mrbgemsΛμ΢ϯϩʔυ͠ɼػೳίʔυΛ mrubyͦͷ΋ͷͱಉࠝ͢Δ͜ͱ͕Մೳͱͳ͍ͬͯΔ • ୯ମͷmrbgemͷ։ൃ΋Rubyݴޠ͋Δ͍͸CݴޠΛར༻͠൚༻తʹՄೳ • ࣮ࡍචऀΒ͸ɼઌड़ͨ͠ίϯςφؔ࿈ػೳͷར༻Λ୯ମͷgemʹ͍ͯ͠Δ ิ଍: mrubyͷΤίγεςϜΛར༻֦ͨ͠ுੑ 

Slide 28

Slide 28 text

• චऀΒʹΑΔʮmrubyΛར༻ͨܰ͠ྔίϯςφΫϥ΢υج൫ͷݚڀ։ൃΛհ͠ ͨmrubyͷେن໛ɾߴෛՙςετʯ͕2017೥౓Ruby Association։ൃॿ੒(*) ʹ࠾୒͞Ε͍ͯΔ • Haconiwaͷ։ൃʹ͓͍ͯɼຊॿ੒ʹΑΔRubyΞιγΤʔγϣϯ͔Βͷϝϯ λʔʢ·ͭ΋ͱΏ͖ͻΖࢯʣͷΞυόΠε౳͕Ұॿʹͳͬͨ͜ͱΛ෇ه͢Δ ิ଍: RubyΞιγΤʔγϣϯΑΓͷॿ੒  IUUQXXXSVCZPSKQKBOFXT

Slide 29

Slide 29 text

1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5. ·ͱΊ ໨࣍ 

Slide 30

Slide 30 text

• චऀΒ͸৽نʹίϯςφΛ؅ཧ͠ɺΫϥελϦϯά΍ΦʔέετϨʔγϣϯʹ ར༻͢ΔΞʔΩςΫνϟΛߟҊͨ͠ɽͦΕΛFastContainerͱݺͿ • FastContainerͷಛ௃: • ίϯςφΛɺඞཁʹͳΔ·Ͱىಈͤͣɼ·ͨෆཁʹͳͬͨΒഁغ͢Δ • ίϯςφͷىಈͷཻ౓͸ϦΫΤετ୯Ґ͝ͱͳͲॆ෼ʹਫ਼៛ʹ͢Δ • ίϯςφΛ॥؀ͤ͞Δ͜ͱͰɼγεςϜશମͷ߃ৗੑΛ࣮ݱ͢Δ • ϥΠϒϥϦ΍ΞϓϦέʔγϣϯͷࣗಈަ୅ɼϚΠάϨʔγϣϯͷ࣮ݱͳͲ FastContainer: ίϯςφ؅ཧΞʔΩςΫνϟ 

Slide 31

Slide 31 text

• FastContainerΛ࣮ݱ͢Δݱࡏͷ࣮૷(*)ʹ͸ɼHaconiwa͕࠾༻͞Ε͍ͯΔ • ౰࣮֘૷΁ͷ࠾୒ͷཧ༝͸: • ઃఆ૊Έ߹ΘͤՄೳੑʹΑΓɼػೳΛௐ੔͠ىಈΛܰྔʹͰ͖ͨ఺
 ʢαʔϏεͱߟ͑Δͱࡉ͔͘ूੵੑ੍͕ޚͰ͖ͨ఺΋ϝϦοτͰ͋ͬͨʣ • ֦ுੑɼ͜ͱλΠϜΞ΢τϑοΫػೳʹΑΓɼҰఆظؒͷఀࢭͱ͍͏ FastContainerͷཁ݅Λ༰қʹ࣮ݱͰ͖ͨ఺ FastContainerͱHaconiwa  ϩϦϙοϓʂϚωʔδυΫϥ΢υ (.0ϖύϘ
 IUUQTNDMPMJQPQKQ

Slide 32

Slide 32 text

• ϖύϘݚڀॴΑΓ࿦จ(*)ɾൃදࢿྉ(**)͕ग़͍ͯΔͨΊɼࢀরͯ͠΄͍͠ FastContainer ʹؔ͢Δؔ࿈৘ใ  IUUQTTQFBLFSEFDLDPNNBUTVNPUP@S GBTUDPOUBJOFSTIJYJOHIVBOKJOHGBMTFCJBO IVBOJTV[BPLVTIJZJOHEFLJSVIFOHDIBOH YJOHXPDIJUVTJTVUFNVBLJUFLVUJZB IUUQTSBOEQFQBCPDPNBSUJDMF JPUNBUTVNPUPSZ

Slide 33

Slide 33 text

1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5. ·ͱΊ ໨࣍ 

Slide 34

Slide 34 text

• ΠϯλʔωοτɾWebϢʔβͷ֦େʹΑΓɺαʔϏεӡ༻ऀ͸༧ଌͰ͖ͳ͍ ෛՙ޲্ͳͲʹରԠ͠ͳ͚Ε͹ͳΒͣɼΦʔτεέʔϧʹ஫໨͕ू·Δ • ͦͷج൫Ͱίϯςφ͕ීٴ͢Δ͕ɼϗεςΟϯάͰͷར༻ʹ՝୊ • ՝୊Λड͚Haconiwa͕࣮ݱͨ͠ಛ௃: • ૊Έ߹ΘͤՄೳੑ: ίϯςφΛ࣮ݱ͢ΔػೳΛࣗ༝ʹ૊Έ߹ΘͤՄೳ • ֦ுੑ: ϑοΫͷ࣮ߦ΍ಛԽͨ͠ػೳͷ࣮૷͕༰қ • FastContainerͱ͍͏ΞʔΩςΫνϟͰར༻͠αʔϏεΠϯ͍ͯ͠Δ ·ͱΊ 

Slide 35

Slide 35 text

• ଞͷίϯςφϥϯλΠϜ͕αϙʔτ͢ΔҰ෦ػೳ͕ະ࣮૷ • ۩ମతʹ͸Mandatory Access Control(SELinux/AppArmorଞ)ͱͷ࿈ܞͳͲ • ϑοΫػߏɼྫ֎ػߏͳͲΛΑΓ҆ఆͤ͞࢖͍΍͘͢͢Δ • ར༻ऀ਺͕·ͩগͳ͘ɼ৘ใ΋গͳ͍ • ΤίγεςϜΛॆ࣮ͤ͞ΔɽυΩϡϝϯτ΋΋ͪΖΜͰ͋Δ͕ɼHaconiwa Λར༻ͨ͠ίϯςφ؅ཧΛ؆୯ʹମݧͰ͖ΔΑ͏ͳOSS΋ݕ౼͢Δ ՝୊ͱࠓޙͷHaconiwa 

Slide 36

Slide 36 text

• Haconiwa͸ݱࡏɼFastContainerΞʔΩςΫνϟͱͷซ༻ͷΈ͕ࣄྫͱͳͬͯ ͍Δɽ·ͨɼFastContainerͱ૊Έ߹ΘͤͰ౰ॳͷ՝୊ͷղܾΛࢼΈ͍ͯΔ • FastContainerͷ࣮ݱʹ࠷΋ద͍ͯ͠Δ͜ͱ͸ݴ͑ΔͩΖ͏ • ࠓޙɼHaconiwaࣗ਎͕͍࣋ͬͯΔ 1)૊Έ߹ΘͤՄೳੑ 2)֦ுੑ ͦΕͧΕ͕ ଞͷΞʔΩςΫνϟ΍ɼOSSͷॾπʔϧͱͷ࿈ܞͷ্Ͱ΋༗ޮͰ͋Δ͜ͱΛ࣮ ূ͍͖͍ͯͨ͠ • ͦͷͨΊʹ΋ଞͷπʔϧͱͷ࿈ܞੑΛߴΊΔ͜ͱΛߟ͍͑ͯΔ ΤίγεςϜʹؔ͢Δ՝୊ͷิ଍ 

Slide 37

Slide 37 text

• ຊ࿦จ͸ɼڞஶऀͷ΄͔ҎԼͷํʑΑΓॿݴɾఏҊΛ͍͍͍ͨͩͯΔɽ • ۝भେֶ Ԭଜߞೋઌੜɼౢ٢ོ෉ઌੜɼּݪٛߊઌੜ • GMOϖύϘݚڀॴސ໰ ྗ෢݈ٕ࣍ज़࢜ • ΫοΫύου ࡫ాߞҰ͞Μ • ຊ࿦จͷ಺༰͸ɼฏ੒29೥౓ ࠃཱ৘ใֶݚڀॴΫϥ΢υར׆༻࣮ূ࣮ݧʹ͓ ͚Δ੒ՌͷҰ෦Λར༻͍ͯ͠Δ ँࣙ