Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ

Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ

情報処理学会第80回全国大会 発表資料

2cf373725ded741824c50fd571eda6e1?s=128

KONDO Uchio

March 13, 2018
Tweet

Transcript

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

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

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

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

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

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

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


    ʹ͍ͭͯఏҊ͢Δ ίϯςφܕԾ૝ԽΛऔΓר͘՝୊ 
  8. 1. ίϯςφܕԾ૝Խ: ϗετܕ౳ͱҧ͍ɼϗετOSͱΧʔωϧΛڞ༗͠σόΠ εͷԾ૝ԽΛߦΘͳͣɼϓϩηεϕʔεͷಠཱ؀ڥͱͨ͠Ծ૝Խܗࣜ 2. ίϯςφ: ίϯςφܕԾ૝Խܗࣜʹ͓͍ͯɼOSػೳʹΑΓಠཱੑΛ෇༩͞Ε ͨͦΕͧΕͷϓϩηε·ͨ͸ͦͷάϧʔϓɽΠϯελϯεͱ΋ݺͿ 3. ίϯςφϥϯλΠϜ:

    ্ड़ͷίϯςφͷىಈɼఀࢭɼͱ͍ͬͨϥΠϑαΠΫϧ Λ؅ཧ͢ΔͨΊͷιϑτ΢ΣΞ  ༻ޠͷఆٛ ίϯςφ
 ϥϯλΠϜ ίϯςφ ʢϗετͷ-JOVY04ʣ
  9. 1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.

    ·ͱΊ ໨࣍ 
  10. 1. Πϯελϯεͷ௥Ճॲཧ͕௿଎Ͱ͋Δ 2. ϋʔυ΢ΣΞϦιʔεͷར༻ޮ཰͕௿͍ 3. ۭ͖Ϧιʔε֬ೝͷͨΊͷεέδϡʔϦϯάͷ஗Ԇ 4. εέʔϦϯά͢΂͖ঢ়گݕ஌ͷϦΞϧλΠϜੑ͕௿͍  দຊΒ(*)ʹΑΔΦʔτεέʔϧͷ՝୊

    'BTU$POUBJOFS࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟʢൃදࢿྉʣ 
 IUUQTTQFBLFSEFDLDPNNBUTVNPUP@SGBTUDPOUBJOFSTIJYJOHIVBOKJOHGBMTFCJBOIVBOJTV[BPLVTIJ ZJOHEFLJSVIFOHDIBOHYJOHXPDIJUVTJTVUFNVBLJUFLVUJZB
  11. • ϗετܕ΍ϋΠύʔόΠβܕͱൺֱͨ͠৔߹ • 1, 3. ʹ͍ͭͯ: ίϯςφ͸ىಈ΍ఀࢭ͕ߴ଎Ͱ͋Γɼ޲͍͍ͯΔ • 2. ʹ͍ͭͯ:

    ίϯςφʹϓϩηε͸๛෋ͳAPIʹΞΫηεͰ͖ɼϦιʔε੍ޚ Λࡉ͘Ͱ͖Δɽ޲͍͍ͯΔ • 4. ʹ͍ͭͯ͸ϓϩηεͱ͍͏ಛੑ্؂ࢹΛৄࡉ͔ͭܰྔʹͰ͖Δͱߟ͑ΒΕ Δ͕ɼຊ࿦จͰ͸ߟ࡯͍ͯ͠ͳ͍ ՝୊ʹରͯ͠ίϯςφΛར༻ͨ͠৔߹ 
  12. • Docker: https://www.docker.com/ • LXC: https://linuxcontainers.org/lxc/introduction/ • ͜ΕΒͷίϯςφϥϯλΠϜʹؔͯ͠͸ɼIEEE Cloud Computingࢽͷ

    “Containers and Cloud: From LXC to Docker to Kubernetes” ίϥϜΛ͸͡ Ίɼ঺հهࣄʹ͍ͱ·͕ͳ͍ Ұ୴ͷ݁࿦: ίϯςφܕԾ૝Խͷ࠾༻ 
  13. 1. ෆཁͳػೳΛ؆୯ʹআ֎Ͱ͖ͳ͍఺ 2. γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖ͳ͍఺  ͞ΒͳΔ՝୊: طଘͷίϯςφϥϯλΠϜͷ໰୊

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

    • ཧ࿦্͸ͲͷΑ͏ͳίϯςφϥϯλΠϜͰ΋ՄೳͰ͋Δ͕ɼDockerͳͲͷ ৔߹໌֬ʹυΩϡϝϯτ͕ଘࡏ͠ͳ͍ͳͲɼར༻͕೉͍͠ ෆཁͳػೳΛ؆୯ʹআ֎Ͱ͖ͳ͍఺ 
  15. • ઌड़ͷIEEEͷίϥϜͰ͸ίϯςφͷΫϥελϦϯάʹ͸Kubernetes͕ར༻Ͱ ͖Δͱड़΂͍ͯΔ • Kubernetes: https://kubernetes.io/ • Ұํɼݱࡏͷঢ়گͰ͸ɼKubernetesͱDockerͷ૊Έ߹ΘͤͳͲطଘͷΫϥε λϦϯάελοΫͰ࣮ݱ͕೉͍͠ཁ݅΋͋Δ •

    ϗεςΟϯά༻్ͷ৔߹ɼߴूੵੑ͕ٻΊΒΕΔͷͰɼίϯςφࣗ਎ͷঢ়ଶ ʹΑΓϦιʔεׂΓ౰ͯΛมߋ͢ΔͳͲɼࡉ͔͍ࣗݾ੍ޚ͕ٻΊΒΕΔ γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖ͳ͍఺ 
  16. 1. ඞཁɾෆཁͳػೳͷ૊Έ߹ΘͤΛར༻ऀ͕؆ܿʹهड़Ͱ͖Δ͜ͱ 2. γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖Δ͜ͱ
 ϗεςΟϯά༻్Λ૝ఆ͢Δͱɼྫ͑͹: ᶃ ίϯςφͷىಈɾఀࢭͳͲͷϥΠϑαΠΫϧΠϕϯτɼίϯςφىಈޙҰ ఆظؒޙΛܖػͱ࣮ͯ͠ߦ͞ΕΔॲཧ͕هड़ՄೳͰ͋Δ͜ͱ ᶄ ֎෦ͷ

    HTTP API ͱͷ࿈ܞɼίϯςφػೳҎ֎ͷOSػೳͷ׆༻ͳͲ͕Մ ೳʹͳΔߴ͍֦ுੑ͕͋Δ͜ͱ  ίϯςφʹ͓͚Δ՝୊Λղܾ͢Δʹ͸
  17. 1. ͸͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝୊ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.

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

  19. • ඞཁɾෆཁͳػೳͷ૊Έ߹ΘͤΛར༻ऀ͕؆ܿʹهड़Ͱ͖Δ͔: • ૊Έ߹ΘͤΛϥϯλΠϜͷػೳͱͯ͠αϙʔτ͠ɼޙड़͢Δmrubyͱ͍͏
 ૊ΈࠐΈ಺෦ݴޠ(DSL)Λར༻͠هड़ੑߴ͘ॻ͚Δ • ϥΠϑαΠΫϧΠϕϯτɼίϯςφىಈޙҰఆظؒޙΛܖػͱͨ͠ॲཧ: • DSLͰ༷ʑͳछྨͷϑοΫॲཧΛαϙʔτ͍ͯ͠Δ •

    ֎෦ͷ HTTP API ͱͷ࿈ܞ࣮૷ͳͲߴ͍֦ுੑ: • DSLͰͷϓϩάϥϛϯάɼ֎෦ϥΠϒϥϦͷຒΊࠐΈ͕Մೳ ՝୊ʹରͯ͠ͷHaconiwa 
  20. Haconiwaͷ ৄࡉͳػೳ

  21. • Linux͸ίϯςφͷ࡞੒ʢචऀ͸ϓϩηεΛίϯςφԽ͢Δͱදݱ͢ΔʣΛෳ ਺ͷػೳɾγεςϜίʔϧͷ૊Έ߹ΘͤͰ࣮ݱ͢ΔɽͦΕΒͷػೳ͸෼ྨͰ͖ɼ ·ͨHaconiwaʹ͓͍ͯ͸ࣗ༝ʹ૊Έ߹Θ͕ͤՄೳͰ͋Δ 1. OSϦιʔεͷ෼཭ػೳ: chrootγεςϜίʔϧɼLinux Namespace 2. OSϦιʔεͷ੍ݶػೳ:

    cgroupsɼrlimitγεςϜίʔϧ 3. εʔύϢʔβݖݶͷ෼ׂ: Linux Capability 4. γεςϜίʔϧͷϑΟϧλػߏ: seccomp 3.1. ίϯςφԾ૝Խػೳ΁ͷରԠ 
  22. ରԠػೳͷਤදʢ࣮ݱ͢ΔγεςϜίʔϧ౳΋ܝࣔʣ  ෼ྨ ໊শ ৄࡉ 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 γεςϜίʔϧͱͦͷҾ਺ͷ৚݅͝ͱʹɼͦͷݺͼग़ ͠Λ੍ݶɾڐՄ͢Δ
  23. • ͪ͜Β΋දʹҰཡ͢Δ 3.2. ϑοΫػߏ΁ͷରԠ  ໊শ ৄࡉ ϥΠϑαΠΫϧϑοΫ ىಈɼGPSL੒ޭɼఀࢭɼࣦഊͱ͍ͬͨίϯςφͷϥΠϑαΠΫϧʹ ؔΘΔΠϕϯτ͝ͱʹ೚ҙͷॲཧΛ࣮ߦͰ͖Δ

    λΠϜΞ΢τϑοΫ ىಈ੒ޭޙɺίϯςφຊମͷॲཧͱ͸ඇಉظͷܗͰɼҰఆ࣌ؒܦա ޙʹ೚ҙͷॲཧΛ࣮ߦͰ͖ΔɽΠϯλʔόϧͷҰճ͚ͩͷܗ ΠϯλʔόϧϑοΫ ىಈ੒ޭޙɺίϯςφຊମͷॲཧͱ͸ඇಉظͷܗͰɼҰఆ࣌ؒͷΠ ϯλʔόϧΛऔͬͯ೚ҙͷॲཧΛఆظ࣮ߦͰ͖Δ γάφϧϋϯυϥ ίϯςφΛ؅ཧ͢ΔϓϩηεʢεʔύʔόΠβʣʹ೚ҙͷλΠϛϯ άͰಛఆͷγάφϧΛૹ෇͢Δͱɺ೚ҙͷॲཧΛ࣮ߦͰ͖Δ
  24. • ଞͷίϯςφϥϯλΠϜͰ͸ϥΠϑαΠΫϧΠϕϯτΛϕʔεͱͨ͠ϑοΫػ ߏΛαϙʔτ͍ͯ͠Δ • ྫ: Docker(ϥΠϑαΠΫϧΠϕϯτΛ؂ࢹ͢ΔHTTP APIΛ༻ҙ)ɼLXC(ઃఆ ϑΝΠϧͰ೚ҙͷίϚϯυΛ࣮ߦࢦఆՄೳ) • ҰํͰɼλΠϜΞ΢τ΍ΠϯλʔόϧϑοΫʹؔͯ͠͸ݱࡏHaconiwaͷΈ͕

    ίϯςφϥϯλΠϜ૊ΈࠐΈͰαϙʔτ͢Δ • ͜ͷϑοΫ͸ɼޙड़ͷFastContainerͷΑ͏ͳίϯςφͷੜଘظؒΛࢦఆ͢ Δػೳͷ࣮ݱͱ૬ੑ͕ྑ͍ ิ଍: ϑοΫػߏʹ͍ͭͯͷଞ࣮૷ͱͷൺֱ 
  25. • Haconiwa͸mrubyͱݺ͹ΕΔܰྔͳRubyͷ
 ࣮૷Λ૊ΈࠐΜͰ͍Δ • ίϯςφͷઃఆ΍ϑοΫॲཧΛ
 DSL(Domain Specific Language)Ͱهड़͠ɼ
 Haconiwaʹ૊ΈࠐΜͩmrubyͰධՁ͠ɼ൓өɾ࣮ߦՄೳͰ͋Δ 3.3.

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

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

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

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

    ·ͱΊ ໨࣍ 
  30. • චऀΒ͸৽نʹίϯςφΛ؅ཧ͠ɺΫϥελϦϯά΍ΦʔέετϨʔγϣϯʹ ར༻͢ΔΞʔΩςΫνϟΛߟҊͨ͠ɽͦΕΛFastContainerͱݺͿ • FastContainerͷಛ௃: • ίϯςφΛɺඞཁʹͳΔ·Ͱىಈͤͣɼ·ͨෆཁʹͳͬͨΒഁغ͢Δ • ίϯςφͷىಈͷཻ౓͸ϦΫΤετ୯Ґ͝ͱͳͲॆ෼ʹਫ਼៛ʹ͢Δ •

    ίϯςφΛ॥؀ͤ͞Δ͜ͱͰɼγεςϜશମͷ߃ৗੑΛ࣮ݱ͢Δ • ϥΠϒϥϦ΍ΞϓϦέʔγϣϯͷࣗಈަ୅ɼϚΠάϨʔγϣϯͷ࣮ݱͳͲ FastContainer: ίϯςφ؅ཧΞʔΩςΫνϟ 
  31. • FastContainerΛ࣮ݱ͢Δݱࡏͷ࣮૷(*)ʹ͸ɼHaconiwa͕࠾༻͞Ε͍ͯΔ • ౰࣮֘૷΁ͷ࠾୒ͷཧ༝͸: • ઃఆ૊Έ߹ΘͤՄೳੑʹΑΓɼػೳΛௐ੔͠ىಈΛܰྔʹͰ͖ͨ఺
 ʢαʔϏεͱߟ͑Δͱࡉ͔͘ूੵੑ੍͕ޚͰ͖ͨ఺΋ϝϦοτͰ͋ͬͨʣ • ֦ுੑɼ͜ͱλΠϜΞ΢τϑοΫػೳʹΑΓɼҰఆظؒͷఀࢭͱ͍͏ FastContainerͷཁ݅Λ༰қʹ࣮ݱͰ͖ͨ఺

    FastContainerͱHaconiwa  ϩϦϙοϓʂϚωʔδυΫϥ΢υ (.0ϖύϘ
 IUUQTNDMPMJQPQKQ
  32. • ϖύϘݚڀॴΑΓ࿦จ(*)ɾൃදࢿྉ(**)͕ग़͍ͯΔͨΊɼࢀরͯ͠΄͍͠ FastContainer ʹؔ͢Δؔ࿈৘ใ  IUUQTTQFBLFSEFDLDPNNBUTVNPUP@S GBTUDPOUBJOFSTIJYJOHIVBOKJOHGBMTFCJBO IVBOJTV[BPLVTIJZJOHEFLJSVIFOHDIBOH YJOHXPDIJUVTJTVUFNVBLJUFLVUJZB IUUQTSBOEQFQBCPDPNBSUJDMF

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

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

    • ֦ுੑ: ϑοΫͷ࣮ߦ΍ಛԽͨ͠ػೳͷ࣮૷͕༰қ • FastContainerͱ͍͏ΞʔΩςΫνϟͰར༻͠αʔϏεΠϯ͍ͯ͠Δ ·ͱΊ 
  35. • ଞͷίϯςφϥϯλΠϜ͕αϙʔτ͢ΔҰ෦ػೳ͕ະ࣮૷ • ۩ମతʹ͸Mandatory Access Control(SELinux/AppArmorଞ)ͱͷ࿈ܞͳͲ • ϑοΫػߏɼྫ֎ػߏͳͲΛΑΓ҆ఆͤ͞࢖͍΍͘͢͢Δ • ར༻ऀ਺͕·ͩগͳ͘ɼ৘ใ΋গͳ͍

    • ΤίγεςϜΛॆ࣮ͤ͞ΔɽυΩϡϝϯτ΋΋ͪΖΜͰ͋Δ͕ɼHaconiwa Λར༻ͨ͠ίϯςφ؅ཧΛ؆୯ʹମݧͰ͖ΔΑ͏ͳOSS΋ݕ౼͢Δ ՝୊ͱࠓޙͷHaconiwa 
  36. • Haconiwa͸ݱࡏɼFastContainerΞʔΩςΫνϟͱͷซ༻ͷΈ͕ࣄྫͱͳͬͯ ͍Δɽ·ͨɼFastContainerͱ૊Έ߹ΘͤͰ౰ॳͷ՝୊ͷղܾΛࢼΈ͍ͯΔ • FastContainerͷ࣮ݱʹ࠷΋ద͍ͯ͠Δ͜ͱ͸ݴ͑ΔͩΖ͏ • ࠓޙɼHaconiwaࣗ਎͕͍࣋ͬͯΔ 1)૊Έ߹ΘͤՄೳੑ 2)֦ுੑ ͦΕͧΕ͕

    ଞͷΞʔΩςΫνϟ΍ɼOSSͷॾπʔϧͱͷ࿈ܞͷ্Ͱ΋༗ޮͰ͋Δ͜ͱΛ࣮ ূ͍͖͍ͯͨ͠ • ͦͷͨΊʹ΋ଞͷπʔϧͱͷ࿈ܞੑΛߴΊΔ͜ͱΛߟ͍͑ͯΔ ΤίγεςϜʹؔ͢Δ՝୊ͷิ଍ 
  37. • ຊ࿦จ͸ɼڞஶऀͷ΄͔ҎԼͷํʑΑΓॿݴɾఏҊΛ͍͍͍ͨͩͯΔɽ • ۝भେֶ Ԭଜߞೋઌੜɼౢ٢ོ෉ઌੜɼּݪٛߊઌੜ • GMOϖύϘݚڀॴސ໰ ྗ෢݈ٕ࣍ज़࢜ • ΫοΫύου

    ࡫ాߞҰ͞Μ • ຊ࿦จͷ಺༰͸ɼฏ੒29೥౓ ࠃཱ৘ใֶݚڀॴΫϥ΢υར׆༻࣮ূ࣮ݧʹ͓ ͚Δ੒ՌͷҰ෦Λར༻͍ͯ͠Δ ँࣙ