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

Webサーバの高集積マルチテナント アーキテクチャに関する研究 / Studies on Highly Integrated Multi-Tenant Architecture for Web Servers

Webサーバの高集積マルチテナント アーキテクチャに関する研究 / Studies on Highly Integrated Multi-Tenant Architecture for Web Servers

松本亮介
2017年4月25日
2017年度 京都大学大学院 情報学研究科 博士課程 公聴会

MATSUMOTO Ryosuke

May 23, 2017
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Research

Transcript

  1. 4UVEJFTPO)JHIMZ*OUFHSBUFE.VMUJ5FOBOU"SDIJUFDUVSF
    GPS8FC4FSWFST
    দຊ྄հ
    ೥݄೔
    ೥౓ژ౎େֶେֶӃ৘ใֶݚڀՊത࢜՝ఔެௌձ
    8FCαʔόͷߴूੵϚϧνςφϯτ
    ΞʔΩςΫνϟʹؔ͢Δݚڀ

    View full-size slide

  2. ໨࣍ʢʣ
    ݚڀͷ໨తͱҐஔ͚ͮ
    جຊ֓೦ͱؔ࿈ݚڀ
    ߴूੵ8FCϗεςΟϯάج൫ͷηΩϡϦςΟͱӡ༻ٕज़Λߟྀ
    ͨ͠ΞΫηε੍ޚΞʔΩςΫνϟ
    εϨου୯ҐͰߴ଎ʹݖݶ෼཭Λߦ͏8FCαʔόͷΞΫηε੍
    ޚΞʔΩςΫνϟ

    View full-size slide

  3. ໨࣍ʢʣ
    εΫϦϓτݴޠͰߴ଎͔ͭܰྔʹ֦ுՄೳͳ8FCαʔόͷػೳ
    ֦ுࢧԉΞʔΩςΫνϟ
    ϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ෼཭͢ΔϦιʔε੍
    ޚΞʔΩςΫνϟ
    ·ͱΊ

    View full-size slide

  4. ୈষ
    ݚڀͷ໨తͱҐஔ͚ͮ

    View full-size slide

  5. ݚڀͷഎܠ
    wΫϥ΢υ΍֤छ8FCαʔϏεͷීٴͱݸਓͷར༻
    w8FCαʔϏεͷ௿Ձ֨Խͱ඼࣭ͷڝ૪
    wӡ༻ٕज़ͷݚڀͱγεςϜͷ҆ఆԽ͕՝୊
    w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ஫໨
    wηΩϡϦςΟͱϗετͷऩ༰ޮ཰޲্͕ॏཁ

    View full-size slide

  6. ݚڀͷ໨త
    wߴूੵϚϧνςφϯτํࣜͷ՝୊Λ੔ཧɾղܾ
    wಛʹςφϯτ಺ͷίϯςϯπΛࣄۀऀ͕؅ཧͰ͖ͳ͍৔߹
    ߴूੵϚϧνςφϯτؒͰͷݖݶ෼཭ͷ՝୊ղܾ
    ߴूੵϚϧνςφϯτํࣜͷػೳ֦ுͷ՝୊ղܾ
    ߴूੵϚϧνςφϯτؒͰͷϦιʔε෼཭ͷ՝୊ղܾ

    View full-size slide

  7. ݚڀͷҐஔ͚ͮ
    w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹ͓͍ͯίϯςϯ
    π੍͕ޚग़དྷͳ͍৔߹ͷෳ਺ͷ՝୊Λ੔ཧͯ͠ղܾ
    wߴूੵϚϧνςφϯτํࣜͷ8FCϗεςΟϯάʹண໨
    wମܥతʹϚϧνςφϯτํࣜͷैདྷख๏ͷ՝୊Λ੔ཧ
    wੑೳɾηΩϡϦςΟɾϦιʔε੍ޚɾӡ༻ٕज़ͷ؍఺Ͱղܾ
    w044ͱͯ͠ӡ༻ʹ଱͑͏Δ࣮૷Λߦ͍෯޿͘ར༻ͯ͠௖͘

    View full-size slide

  8. ୈষ
    جຊ֓೦ͱؔ࿈ݚڀ

    View full-size slide

  9. ߴूੵϚϧνςφϯτํࣜͷ՝୊Λ੔ཧ
    جຊ֓೦
    ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝୊
    8FCαʔόػೳ֦ுͷ՝୊
    8FCαʔόͷϦιʔε੍ޚͷ՝୊

    View full-size slide

  10. Ϛϧνςφϯτํࣜ

    View full-size slide

  11. 8FCαʔόͷϚϧνςφϯτํࣜ
    w୯Ұͷαʔόʹෳ਺ͷϢʔβ؀ڥΛߏங͢Δํࣜ
    wӡ༻ίετͱऩ༰ʢϋʔυ΢ΣΞʣίετΛ௿ݮՄೳ
    w8FCίϯςϯπΛ؅ཧՄೳͳ৔߹͸࠾༻͠΍͍͢
    wࣄۀऀ͕ίϯςϯπΛ؅ཧͰ͖ͳ͍৔߹ӡ༻͕ࠔ೉
    ߴूੵԽʹ൐͏ϗετؒͷϦιʔεڝ߹΍ੑೳͷ՝୊

    View full-size slide

  12. 8FCίϯςϯπͷ؅ཧͱϚϧνςφϯτ
    w8FCίϯςϯπΛࣄۀऀ͕؅ཧͰ͖Δ৔߹
    8FCίϯςϯπ͔ΒϦιʔε΍ݖݶͷ෼཭Λ૝ఆՄೳ
    w8FCίϯςϯπΛࣄۀऀ͕؅ཧͰ͖ͳ͍৔߹
    ͋ΒΏΔίϯςϯπ͕ಈͨ͘Ίऩ༰ઃܭɾӡ༻͕ࠔ೉
    ੬ऑͳίϯςϯπ͕͋ΔલఏͰϦιʔεɾݖݶ෼཭͕ඞཁ

    View full-size slide

  13. 8FCϗεςΟϯάαʔϏε

    View full-size slide

  14. 8FCϗεςΟϯάαʔϏεͷಛ௃
    wࣄۀऀ͸͓٬༷ͷ8FCίϯςϯπΛ੍ޚͰ͖ͳ͍
    wϛυϧ΢ΣΞɾ04Ͱ੍ޚ͢Δඞཁ͕͋Δ
    wͰ͖Δ͚ͩฏ౳ʹϢʔβମݧΛఏڙ͢΂͖
    wڞ༗ͷ৔߹͸Ϧιʔε੍ޚ΍ηΩϡϦςΟ͕ॏཁ
    wੑೳͱऩ༰਺Λ͍͔ʹόϥϯεΛͱΔ͔΋ॏཁ

    View full-size slide

  15. ݸਓ޲͚ͷ8FCαʔϏεͷ૿Ճͱ௿Ձ֨Խ
    wֶੜ΍ओ්ͱ͍ͬͨݸਓ͕झຯͰ࢖͏༻్ͷ૿Ճ
    wϋʔυ΢ΣΞ΁ͷϗετऩ༰཰ͷ࠷େԽ͕ॏཁ
    wηΩϡϦςΟΛ୲อͭͭ͠ੑೳͱϋʔυ΢ΣΞϦιʔ
    εޮ཰Λ࠷େԽ͢ΔͨΊʹιϑτ΢ΣΞٕज़Λ׆༻
    ➜ɹຊݚڀͷ໘ന͍ͱ͜Ζ

    View full-size slide

  16. ϚϧνςφϯτํࣜͷΞʔΩςΫνϟ

    View full-size slide

  17. ϚϧνςφϯτํࣜͷΞʔΩςΫνϟ֓ཁ
    ߴूੵϚϧνςφϯτํࣜ8FCαʔόͷΞʔΩςΫνϟ
    ಈతίϯςϯπͷ࣮ߦํࣜ

    View full-size slide

  18. ߴूੵϚϧνςφϯτํࣜͷ
    8FCαʔόͷΞʔΩςΫνϟ

    View full-size slide

  19. ϓϩηε਺ͱऩ༰ϗετ਺͕ॏཁ
    wϓϩηε਺͕ϗετ਺ʹґଘ͠ͳ͍ߏ੒
    wෳ਺αΠτڞ༗ͷ8FCαʔόϓϩηε͕ϦΫΤετ
    ͞Εͨϗετ໊͔ΒಈతʹίϯςϯπΛݕग़ͯ͠ॲཧ
    ͢Δํ͕ࣜߴूੵϚϧνςφϯτʹ͸ඞཁ
    ྫɿ"QBDIFͷ7JSUVBM)PTUػೳ

    View full-size slide

  20. 8FCαʔόͷجຊతͳϞσϧ
    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    $MJFOU
    ϦΫΤετ
    Ϩεϙϯε
    6/*9ܥ04ͷ৔߹ࣄલʹϦΫΤετΛड͚Δ
    ϓϩηεΛෳ਺GPSL
    ͯ͠ϓʔϧ͓ͯ͘͠
    ʢ͜ΕΒશͯΛؚΊͯʮ୯Ұͷαʔόϓϩηεʯͱఆٛʣ

    ϦΫΤετ
    Ϩεϙϯε
    ϦΫΤετ
    Ϩεϙϯε

    View full-size slide

  21. ߴूੵͷͨΊͷΞʔΩςΫνϟ
    IUUQE
    Ϣʔβ"
    IUUQE
    Ϣʔβ#
    IUUQE
    Ϣʔβ$
    IUUQE
    Ϣʔβ"
    Ϣʔβ#
    Ϣʔβ$
    ޮ཰ྑ͘࢒ϦιʔεΛ࢖͑Δ
    ىಈʹඞཁ
    ͳϦιʔε
    ىಈʹඞཁ
    ͳϦιʔε
    ىಈʹඞཁ
    ͳϦιʔε
    ىಈʹඞཁͳϦιʔε
    ߴूੵ͕ཁٻ͞ΕΔ৔߹ͷ
    Ϛϧνςφϯτʢຊݚڀʣ
    ϚϧνςφϯτͷผΞϓϩʔν

    View full-size slide

  22. ಈతίϯςϯπͷ࣮ߦํࣜ

    View full-size slide

  23. ಈతίϯςϯπͷ࣮ߦํࣜ
    $(*ʢ$PNNPO(BUFXBZ*OUFSGBDFʣ࣮ߦํࣜ
    %40ʢ%ZOBNJD4IBSFE0CKFDUʣ࣮ߦํࣜ

    View full-size slide

  24. $(*࣮ߦํࣜ
    $(*QSPDFTT QIQDHJJOEFYQIQ
    $(*QSPDFTT
    GPSL

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    ϦΫΤετຖʹϓϩηεͷੜ੒ɾഁغͱ
    ൺֱతେ͖ͳόΠφϦʢ1)1ͩͱQIQDHJόΠφϦʣͷ
    FYFDWF
    ͕ඞཁ

    View full-size slide

  25. %40࣮ߦํࣜ
    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF
    JOEFYQIQ
    QBSTFSVO

    αʔόϓϩηεʹΠϯλϓϦλΛϥΠϒϥϦ
    ͱͯ͠௚઀૊ΈࠐΜͰ͓͘

    View full-size slide

  26. ಈతίϯςϯπͷ࣮ߦํࣜ
    w$(*࣮ߦํࣜ
    ΠϯλϓϦλͷෳ਺όʔδϣϯΛ࣮ߦͰ͖Δ
    w%40࣮ߦํࣜ
    ੑೳ͸ߴ͍͕جຊతʹ͸୯Ұͷ8FCαʔόʹΠϯλ
    ϓϦλΛෳ਺όʔδϣϯ࣋ͯͳ͍

    View full-size slide

  27. ߴूੵϚϧνςφϯτํࣜͷ՝୊
    wߴूੵΛ࣮ݱ͢Δ"QBDIFͷ7JSUVBM)PTUػೳͷΑ͏ͳ
    ΞʔΩςΫνϟ͸Ϧιʔεޮ཰͕ྑ͍͕ෳ਺՝୊͕࢒Δ
    ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝୊➜
    8FCαʔόͷػೳ֦ுͱ՝୊➜
    8FCαʔόͷϦιʔε੍ޚͱ՝୊➜

    View full-size slide

  28. ӡ༻ٕज़ͱηΩϡϦςΟͱੑೳͷ՝୊

    View full-size slide

  29. ӡ༻ٕज़ͱੑೳͷ՝୊
    wϗετ୯ҐʹઃఆΛ௥Ճͯ͠؅ཧɾ੍ޚ͢Δӡ༻
    wϗετͷ੩తઃఆʹΑΔϝϞϦͱಡࠐΈෛՙ૿େ
    ϖʔδςʔϒϧΤϯτϦ 15&
    ͷංେԽʹΑΓGPSL
    ͷ࣮
    ߦॲཧ͕ඇৗʹ஗͍
    ϓϩηεͷϦϩʔυ΋௕͔͔࣌ؒΔ৔߹΋༗Γ

    View full-size slide

  30. ηΩϡϦςΟͱੑೳͷ՝୊
    w$(*ํࣜͷΞΫηε੍ޚʹΑΔ੩తઃఆͷڧ੍
    ϗετ୯ҐͰ੩తʹΦʔφ໊Λઃఆ͢Δඞཁ༗Γ
    ϗετ਺ʹґଘͨ͠ઃఆ਺ͱϝϞϦ࢖༻ྔͷ૿Ճ
    wैདྷͷ%40ͷΞΫηε੍ޚͰ͸$(*ํࣜҎԼͷੑೳ
    wϗετͷ্ҐσΟϨΫτϦͷγεςϜྖҬͷӾཡ

    View full-size slide

  31. $(*QSPDFTT
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSSPPU

    QIQDHJJOEFYQIQ
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSVTFS

    ੩తʹઃఆ͞ΕͨVJEΛݩʹTFUVJE
    TFUHJE

    GPSL

    FYFDWF
    TVFYFDQSPHSBN TFUVJESPPU

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    ˞$(*ैདྷͷΞΫηε੍ޚख๏
    ϦΫΤετຖʹ$(*༻ϓϩηεͷ
    ੜ੒ഁغ͕ඞཁ

    View full-size slide

  32. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSSPPU

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE

    QBSTF SVO
    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

    UFSNJOBUFQSPDFTT
    ϦΫΤετຖʹࢠIUUQEϓϩηεͷੜ੒ഁغ͕ඞཁ
    ˞%40ैདྷͷΞΫηε੍ޚख๏

    View full-size slide

  33. ӡ༻ٕज़ͱηΩϡϦςΟΛղܾ
    wͭͷΞΫηε੍ޚΞʔΩςΫνϟΛఏҊ
    w$(*ํࣜͰηΩϡϦςΟͱӡ༻ٕज़Λཱ྆͢ΔΞΫ
    ηε੍ޚΞʔΩςΫνϟ➜ষ
    w%40ํࣜͰηΩϡϦςΟͱੑೳΛཱ྆͢ΔΞΫηε
    ੍ޚΞʔΩςΫνϟ➜ষ

    View full-size slide

  34. 8FCαʔόͷػೳ֦ுͱ՝୊

    View full-size slide

  35. 8FCαʔϏεͷ҆ఆੑ޲্ͷ՝୊
    wηΩϡϦςΟ΍Ϧιʔε؅ཧͷॏཁੑͷߴ·Γ
    wαʔϏεͷӡ༻ɾ؅ཧίετͷ௿ݮ͕ඞཁ
    wαʔϏεܗଶʹΑͬͯ8FCαʔόͷ࠷దԽ͕ඞཁ
    w8FCαʔόͷ֦ுػೳͷඞཁੑ͕૿Ճ

    View full-size slide

  36. 8FCαʔόͷػೳ֦ு͕ॏཁ
    wϨεϙϯεੜ੒ॲཧલޙʹॲཧΛࠩ͠ࠐΉ
    w8FCίϯςϯπʹґଘ͠ͳ͍ޮ཰ͷྑ͍ΞΫηε੍
    ޚ΍Ϧιʔε෼཭Λ࣮ݱՄೳ
    w8FCαʔϏεͷӡ༻ɾ؅ཧΛޮ཰ԽՄೳ
    w8FCαʔόͷઃఆ͚ͩͰ͸ղܾͰ͖ͳ͍՝୊ͷ૿Ճ

    View full-size slide

  37. ैདྷͷ8FCαʔόͷػೳ֦ுख๏
    w$ݴޠʹΑΔ࣮૷͕ఆ൪
    ߴ଎͔ͭলϝϞϦ㱻อकੑ΍ੜ࢈ੑ͕௿͍
    wεΫϦϓτݴޠʹΑΔ࣮૷
    อकੑ΍ੜ࢈ੑ͕ߴ͍㱻௿ੑೳɾ҆શੑͷ໰୊

    View full-size slide

  38. εΫϦϓτͰߴ଎͔ͭ҆શʹ֦ுՄೳ
    w8FCαʔόϓϩηε΁ͷΠϯλϓϦλ૊ΈࠐΈΛ࠷దԽ
    wߴूੵϚϧνςφϯτํࣜͰ͸ӡ༻อकΛߟྀͨ͠ػೳ
    ֦ுΞʔΩςΫνϟ͕ॏཁͰ͋Δ
    wੑೳ໘ͱ҆શੑΛཱ྆ͨ͠ΞʔΩςΫνϟͷઃܭͱੜ
    ࢈ੑΛߴΊΔ࣮૷➜ষ

    View full-size slide

  39. 8FCαʔόͷϦιʔε੍ޚͱ՝୊

    View full-size slide

  40. ैདྷͷ8FCαʔόͷϦιʔε੍ޚ
    wϋʔυ΢ΣΞϦιʔε΍ಉ࣌઀ଓ਺ͳͲΛ୯७ͳᮢ஋
    ॲཧͰ੍ݶ
    wᮢ஋Λ௒͑ΔͱϦΫΤετॲཧΛڧ੍੾அɾڋ൱
    wϦΫΤετΛड͚Δ͔ड͚ͳ͍͔ͷ୯७ͳ੍ޚ

    View full-size slide

  41. ैདྷͷϦιʔε੍ޚͷ՝୊
    αʔόͷෛՙΛ௿ݮ͢Δ͜ͱΛॏࢹ͢Δ͋·ΓϢʔβ
    ମݧΛେ͖͘ଛͳ͍ͬͯΔ
    ࠷େಉ࣌઀ଓ਺ҎԼͰ΋ҰͭͷϦΫΤετͰେྔʹϦ
    ιʔεΛ࢖༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍
    ੍ݶͷཻ౓͕ߥ͘ϗετؒͷϦιʔεڝ߹ʹΑΓշద
    ʹ࢖͑ΔϢʔβͱ࢖͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍

    View full-size slide

  42. ϦΫΤετ୯ҐͰϦιʔεΛ෼཭
    wϦΫΤετͷதஅͰ͸ͳ͘ܧଓతʹॲཧ͢Δख๏
    wϦΫΤετ୯ҐͰϦΫΤετͷଐੑʹج͍ͯϦιʔε੍ޚ
    w؅ཧऀ͕ෳࡶͳઃఆΛϓϩάϥϚϒϧʹදݱՄೳ
    wಛఆͷίϯϐϡʔλϦιʔεൣғ಺Ͱॲཧ͢ΔΞʔΩς
    Ϋνϟ➜ষ

    View full-size slide

  43. ୈষ
    ߴूੵ8FCϗεςΟϯάج൫ͷηΩϡϦςΟ
    ͱӡ༻ٕज़Λߟྀͨ͠ΞΫηε੍ޚΞʔΩςΫνϟ

    View full-size slide

  44. ষͷ՝୊ͷ·ͱΊ
    wಈతίϯςϯπ͸$(*ํࣜΛ࢖͏ඞཁ͕͋Δ
    ෳ਺όʔδϣϯͷΠϯλϓϦλΛѻ͍͍ͨ
    %40ํࣜͷΞΫηε੍ޚ͸$(*ఔ౓ͷੑೳʹͳΔ
    w੩తઃఆͷ૿ՃʹΑΔϝϞϦ࢖༻ྔͷ૿େ
    wγεςϜྖҬͷӾཡෆՄͷͨΊͷઃఆίετ͕ߴ͍

    View full-size slide

  45. ӡ༻໘ͱηΩϡϦςΟΛཱ྆͢ΔఏҊख๏
    wϦΫΤετ͞ΕͨϑΝΠϧ͔ΒಈతʹPXOFSΛऔಘ
    ઃఆΛϗετͷ਺ʹ߹Θͤͯ૿΍͢ඞཁ͕ͳ͍
    ϗετͷऩ༰਺ʹґଘͯ͠ϝϞϦ࢖༻ྔ͕૿େ͠ͳ͍
    15&͕ංେԽͤͣGPSL
    ͷ࣮ߦॲཧ͕஗͘ͳΒͳ͍
    wϑΝΠϧͷPXOFSʹΑΔݖݶ෼཭ͷࡍʹϑΝΠϧγεςϜΛ
    ߹Θִͤͯ཭

    View full-size slide

  46. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSSPPU

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE

    QBSTF SVO
    ˞%40ैདྷͷΞΫηε੍ޚख๏
    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

    UFSNJOBUFQSPDFTT
    ϦΫΤετຖͷࢠIUUQEϓϩηεͷੜ੒ഁغ͕ඞཁ

    View full-size slide

  47. $(*QSPDFTT
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSSPPU

    QIQDHJJOEFYQIQ
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSVTFS

    ੩తʹઃఆ͞ΕͨVJEΛݩʹTFUVJE
    TFUHJE

    GPSL

    FYFDWF
    TVFYFDQSPHSBN TFUVJESPPU

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    ϦΫΤετຖʹ$(*༻ϓϩηεͷ
    ੜ੒ഁغ͕ඞཁ
    ˞$(*ैདྷͷΞΫηε੍ޚख๏

    View full-size slide

  48. $(*QSPDFTT
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSSPPU

    QIQDHJJOEFYQIQ
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSVTFS

    DISPPU
    ϦΫΤετϑΝΠϧ͔ΒVJEऔಘޙ
    TFUVJE
    TFUHJE

    GPSL

    FYFDWF
    TVFYFDQSPHSBN TFUVJESPPU

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    DISPPU&OWJSPONFOU
    ˞$(*ఏҊ͢ΔΞʔΩςΫνϟ

    View full-size slide

  49. ੑೳධՁ
    w"QBDIFIUUQEʹରͯ͠ఏҊΞʔΩςΫνϟΛ࣮૷
    wಉ࣌઀ଓ਺ΛมԽͤ͞ͳ͕ΒඵؒͷϨεϙϯε਺Λܭଌ
    w1)1ͰจࣈྻΛग़ྗ͢Δ͚ͩͷ$(*ϓϩάϥϜΛར༻
    wैདྷख๏ͱఏҊख๏ͷੑೳΛධՁ

    View full-size slide

  50. ̏ষ·ͱΊ
    wӡ༻ٕज़ͱηΩϡϦςΟΛߟྀͨ͠$(*ͷ৽͍͠ΞʔΩςΫνϟΛఏҊ
    wैདྷͷΞʔΩςΫνϟͱಉ౳ͷੑೳͰΑΓηΩϡΞͰѻ͍΍͍͢࢓༷
    ߴूੵ࣌ʹ͓͍ͯ΋ઃఆ਺ʹԠͨ͡ϝϞϦ૿Ճ͕ੜ͡ͳ͍ͨΊ࣮ӡ༻
    ্͸ߴ଎ʹಈ࡞Մೳ
    DISPPU͢ΔͨΊͷϢʔβ؀ڥͷߏங͸ผ్Ϣʔβຖʹඞཁ
    wߴूੵϚϧνςφϯτͷςφϯτ਺૿ՃΛߟྀͨ͠ΞʔΩςΫνϟ

    View full-size slide

  51. ୈষ
    εϨου୯ҐͰߴ଎ʹݖݶ෼཭Λߦ͏
    WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ

    View full-size slide

  52. ষͷ՝୊ͷ·ͱΊ
    wষͷΞΫηε੍ޚΞʔΩςΫνϟ͸ӡ༻ੑʹண໨
    $(*ͷར఺ʢෳ਺όʔδϣϯͷఏڙʣΛߟྀ
    w%40൛ͷੑೳΛ׆͔͢ΞΫηε੍ޚख๏͕ແ͍
    w࣮ߦํࣜ΍ΠϯλϓϦλ͕ಠࣗʹΞΫηε੍ޚख๏Λ
    ࣮૷͓ͯ͠Γ൥ࡶ

    View full-size slide

  53. ߴूੵϚϧνςφϯτͱ$(*ɾ%40ͷੑೳ
    wੑೳ໘ʹ͓͍ͯ$(*͸ຊདྷద͍ͯ͠ͳ͍
    ऩ༰਺͕૿͑ΔͱϓϩηεͷϝϞϦ࢖༻ྔ͕૿͑GPSL
    ͷޮ཰௿Լ
    ͦ΋ͦ΋ϦΫΤετ୯ҐͰGPSL
    ͢ΔͷͰ஗͍
    w%40͸ຊདྷGPSL
    Λ࣮ߦ͠ͳ͍ͨΊߴ଎ʹಈ࡞͢Δ͕
    ैདྷͷ%40ͷΞΫηε੍ޚ͸ϦΫΤετຖʹGPSL
    Λ࣮ߦ͢Δ

    View full-size slide

  54. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSSPPU

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE

    QBSTF SVO
    ˞%40ैདྷͷΞΫηε੍ޚख๏
    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

    UFSNJOBUFQSPDFTT
    ϦΫΤετຖͷࢠIUUQEϓϩηεͷੜ੒ഁغ͕ඞཁ

    View full-size slide

  55. ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ
    w%40ํࣜͷੑೳΛ׆͔͢ΞʔΩςΫνϟ
    wಈతίϯςϯπ࣮ߦ௚લʹΦʔφมߋͷಛݖͷΈΛ༩
    ੍͑ͨޚ༻ͷεϨουΛ࡞੒
    wΦʔφΛมߋͨ͠εϨου্ͰίϯςϯπΛॲཧ
    wίϯςϯπ࣮ߦޙ͸εϨουͷΈΛ࡟আ

    View full-size slide

  56. -JOVYεϨουͱ-JOVY$BQBCJMJUJFT
    w-JOVY,FSOFMҎ߱ͷಠࣗͷηΩϡϦςΟϞσϧ
    wSPPUಛݖΛࡉ෼Խͯ͠εϨου୯ҐͰ෇༩Մೳ
    wΦʔφʔͷมߋɾXFMMLOPXOQPSUͷMJTUFO౳໿ݸ
    w-JOVYલఏͰ͋Ε͹ఏҊख๏͕࣮ݱՄೳ

    View full-size slide

  57. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    UISFBE
    PXOFSVTFS

    UISFBE
    PXOFSBQBDIF

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE
    ʜ VOTFUDBQT
    DSFBUFUISFBE TFUDBQT
    EFTUSPZUISFBE
    QBSTF SVO
    QSDUM
    TFUVJETFUHJEDBQT
    UISFBE
    PXOFSVTFS

    ˞%40ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ

    View full-size slide

  58. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    UISFBE
    PXOFSVTFS

    UISFBE
    PXOFSBQBDIF

    TFUVJE
    TFUHJE
    ʜ VOTFUDBQT
    DSFBUFUISFBE TFUDBQT
    EFTUSPZUISFBE
    QSDUM
    TFUVJETFUHJEDBQT
    UISFBE
    PXOFSVTFS

    ˞$(*ఏҊ͢ΔΞΫηε੍ޚΞʔΩςΫνϟ
    $(*QSPDFTT
    PXOFSVTFS

    QIQDHJJOEFYQIQ
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSVTFS

    GPSL

    UFSNJOBUFQSPDFTT
    FYFDWF


    View full-size slide

  59. 8FCαʔόϞσϧͱ੍ޚ༻εϨουͷߟ࡯
    wϦΫΤετϓϩηε઎༗͢ΔαʔόϞσϧલఏ
    w%40͸εϨουͷ༗ແʹؔΘΒͣαʔόϓϩηεʹ
    ૊Έࠐ·ΕͨΠϯλϓϦλ͕௚઀ϓϩάϥϜΛ࣮ߦ
    wεϨουΛҰ࣌తʹ࡞Δ͜ͱʹΑΔηΩϡϦςΟϨϕ
    ϧͷ௿Լ͸ੜ͡ͳ͍

    View full-size slide

  60. -JOVYͰ"QBDIFϞδϡʔϧͱ࣮ͯ͠૷
    wNPE@QSPDFTT@TFDVSJUZϞδϡʔϧ
    wઃఆ͸ҎԼͷΑ͏ʹγϯϓϧ

    View full-size slide

  61. ੑೳධՁ
    w"QBDIFIUUQEʹରͯ͠ఏҊΞʔΩςΫνϟΛ࣮૷
    wඵؒͷϦΫΤετ਺ΛมԽͤ͞Ϩεϙϯε਺Λܭଌ
    wQIQJOGP
    Λग़ྗ͢Δ͚ͩͷ؆୯ͳϓϩάϥϜΛ༻ҙ
    wैདྷख๏ͱఏҊख๏ͷੑೳΛධՁ

    View full-size slide

  62. %40࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ
    w ඵؒϦΫΤετ਺Λ૿Ճͤ͞ͳ͕Βඵ
    ؒϨεϙϯε਺Λܭଌ
    w ྘ͷैདྷͷΞΫηε੍ޚ͸΄ͱΜͲੑ
    ೳ͕Ͱ͍ͯͳ͍
    w ੺ͷఏҊ͢ΔΞΫηε੍ޚ͸ΞΫηε
    ੍ޚແ͠ͷ৔߹ͱൺ΂ͯ΋΄ͱΜͲΦʔ
    όʔϔου͸ແ͠
    ੨ɿΞΫηε੍ޚແ͠
    ੺ɿఏҊ͢ΔΞΫηε੍ޚ
    ྘ɿैདྷͷΞΫηε੍ޚ

    View full-size slide

  63. $(*࣮ߦํࣜͷΞΫηε੍ޚੑೳൺֱ
    w ඵؒϦΫΤετ਺Λ૿Ճͤ͞ͳ͕ΒඵؒϨ
    εϙϯε਺Λܭଌ
    w $(*ͷΞΫηε੍ޚͷ༗ແʹؔΘΒͣ$(*
    ͷ࣮ߦํࣜͷΦʔόʔϔου͕େ͖͍ͨΊɺ
    ΞΫηε੍ޚʹΑΔΦʔόʔϔου͸ແ͍
    w ষͷ$(*ͷΞΫηε੍ޚ͸TVFYFDͱಉ
    ౳ͷੑೳͰ͋Δ͜ͱ͕ষͰ࣮ݧࡁΈ
    ੨ɿΞΫηε੍ޚແ͠
    ੺ɿैདྷͷΞΫηε੍ޚ
    ྘ɿఏҊ͢ΔΞΫηε੍ޚ

    View full-size slide

  64. ষ·ͱΊ
    wߴूੵϚϧνςφϯτํࣜʹ͓͚ΔੑೳΛߟྀͨ͠Ξ
    Ϋηε੍ޚΞʔΩςΫνϟͷఏҊ
    w%40࣮ߦํࣜͷΞΫηε੍ޚͱͯ͠େ෯ʹੑೳվળ
    wఏҊख๏͸$(*࣮ߦํࣜʹ΋ద༻Մೳ

    View full-size slide

  65. ষͷ$(*ͷΞΫηε੍ޚͱͷҧ͍
    wষͷΞΫηε੍ޚ͸҆શʹDISPPUͰ͖ͳ͍
    wεϨου্ͰDISPPU͢ΔͱಉҰϓϩηε্ʹଐ͢Δ
    શͯͷεϨου͕DISPPU͞ΕΔ
    wεϨουΛੜ੒ͨ͠ϓϩηεࣗମ΋DISPPU͞ΕΔͨ
    Ί৔߹ʹΑͬͯ͸ҙਤ͠ͳ͍ಈ࡞Λ͢ΔՄೳੑ͕͋Δ

    View full-size slide

  66. $(*ํࣜͷΞΫηε੍ޚͷ࢖͍෼͚
    wDISPPUʹΑΔִ཭·Ͱߦ͍͍ͨ৔߹➜ষ
    wಉҰͷΞΫηε੍ޚͰ౷Ұతʹ෼཭͍ͨ͠৔߹➜ষ
    wੑೳ͸ಉఔ౓

    View full-size slide

  67. ୈষ
    εΫϦϓτݴޠͰߴ଎͔ͭܰྔʹ֦ுՄೳͳ
    8FCαʔόͷػೳ֦ுࢧԉΞʔΩςΫνϟ

    View full-size slide

  68. ষͷ՝୊ͷ·ͱΊ
    w8FCαʔόͷػೳ֦ுʹ͓͍ͯੑೳΛߟྀͨ͠৔߹
    ͸$ݴޠʹΑΔ࣮૷͕ఆ൪
    wैདྷͷ8FCαʔόͷεΫϦϓτݴޠʹΑΔ֦ு͸ੑ
    ೳ໘ͱ҆શੑʹ՝୊
    wαʔόϓϩηε΁ͷΠϯλϓϦλ૊ΈࠐΈͷΞʔΩς
    ΫνϟͷఏҊ͕ॏཁ

    View full-size slide

  69. ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̍ʣ
    wΠϯλϓϦλڞ༗ํࣜʢNPE@QFSMɺNPE@SVCZʣ
    αʔόϓϩηεىಈ࣌ʹ୯ҰͷΠϯλϓϦλ֬อ
    ϦΫΤετॲཧ࣌ʹෳ਺ͷεΫϦϓτͰΠϯλϓϦλڞ༗
    άϩʔόϧͷঢ়ଶ΋ڞ༗
    ߴػೳ͔ͭن໛ͷେ͖͍ΠϯλϓϦλʹ࠷ద

    View full-size slide

  70. ैདྷͷεΫϦϓτʹΑΔػೳ֦ுํࣜʢ̎ʣ
    wෳ਺ΠϯλϓϦλํࣜʢNPE@MVBʣ
    εΫϦϓτ࣮ߦʢϦΫΤετॲཧʣ୯ҐͰΠϯλϓϦλ֬อ
    άϩʔόϧͳঢ়ଶ͸ಠཱͰ҆શ
    ΠϯλϓϦλ͕֬อ͢Δঢ়ଶ΋౎౓։์ͯ͠লϝϞϦ
    ௿ػೳͰߴ଎ɾলϝϞϦͳ૊ΈࠐΈεΫϦϓτݴޠͳͲʹ࠷ద

    View full-size slide

  71. ैདྷख๏ͷ՝୊
    wΠϯλϓϦλڞ༗ํࣜͷ՝୊
    άϩʔόϧঢ়ଶ͕ෳ਺εΫϦϓτͰׯব
    ࣮ߦ࣌ͷόΠτίʔυ૿ՃʹΑΔϝϞϦͷ૿Ճ
    wෳ਺ΠϯλϓϦλํࣜͷ՝୊
    ϦΫΤετຖͷΠϯλϓϦλ֬อɾ։์ͷίετ͕ߴ͍

    View full-size slide

  72. VM
    • 
    • 
    • 

    View full-size slide

  73. ఏҊ͢ΔΞʔΩςΫνϟ
    wੑೳ͕ཁٻ͞ΕΔՕॴ͸ΠϯλϓϦλڞ༗
    wੑೳ͕ཁٻ͞Εͳ͍Օॴ͸ݸผʹΠϯλϓϦλ֬อ
    wϝϞϦ૿ՃͷݪҼͰ͋ΔόΠτίʔυͷΈΛ։์
    w҆શੑͷ໘Ͱάϩʔόϧͷঢ়ଶͷΈΛ։์Մೳ
    wόΠτίʔυΩϟογϡʹΑΔߴ଎Խ΋Մೳ

    View full-size slide

  74. ਌αʔόϓϩηε
    ࢠαʔόϓϩηε" ϦΫΤετॲཧ༻ΠϯλϓϦλ
    ىಈ࣌ॲཧ༻ΠϯλϓϦλ
    ϦΫΤετҎ֎ͷॲཧ༻ΠϯλϓϦλ
    εΫϦϓτ
    εΫϦϓτ
    εΫϦϓτ
    εΫϦϓτ
    εΫϦϓτ
    ੑೳ͕ཁٻ͞ΕΔϑοΫ
    ͸ΠϯλϓϦλΛڞ༗
    ɾ
    ɾ
    ɾ


    View full-size slide

  75. w αʔόϓϩηεىಈ࣌ʹΠϯλϓ
    ϦλΛ֬อ
    w ϦΫΤετॲཧ࣌ʹΠϯλϓϦλ
    Λڞ༗ͯ͠εΫϦϓτΛίϯύΠϧ
    ͔ͯ͠Β࣮ߦ
    ߏจ໦ղੳ
    όΠτίʔυੜ੒
    7.্Ͱ࣮ߦ
    ϦΫΤετຖʹαʔόϓϩηε͕εΫϦϓτΛϑοΫ
    εΫϦϓτಡΈࠐΈ
    ΠϯλϓϦλͱ
    ϥΠϒϥϦΛڞ༗
    όΠτίʔυɺάϩʔόϧม਺ɾΫϥεɺྫ֎ϑϥάΛ։์
    ഉଞॲཧ
    ϚϧνεϨου8FC
    αʔόΞʔΩςΫνϟ
    ʹରԠ

    View full-size slide

  76. ߏจ໦ղੳ
    όΠτίʔυੜ੒
    7.্Ͱ࣮ߦ
    ϦΫΤετຖʹαʔόϓϩηε͕εΫϦϓτΛϑοΫ
    εΫϦϓτಡΈࠐΈ
    ΠϯλϓϦλͱ
    ϥΠϒϥϦΛڞ༗
    άϩʔόϧม਺ɾΫϥεɺྫ֎ϑϥάΛ։์
    όΠτίʔυ
    ςʔϒϧ
    w όΠτίʔυΩϟογϡʹΑͬͯαʔ
    όϓϩηεىಈޙʹίʔυมߋ͕ඞ
    ཁͳ͍৔߹͸ߴ଎Խ
    w αʔόىಈ࣌ʹίϯύΠϧͯ͠όΠ
    τίʔυςʔϒϧʹอଘ͓͖ͯ͠ɺ
    ϦΫΤετ࣌ʹऔಘ࣮ͯ͠ߦ

    View full-size slide

  77. ΞʔΩςΫνϟͷ࣮૷
    w"QBDIFϞδϡʔϧͷNPE@NSVCZͱ࣮ͯ͠૷
    wOHJOYϞδϡʔϧͷOHY@NSVCZͱͯ͠΋࣮૷
    wNSVCZͱ͍͏ܰྔ3VCZΠϯλϓϦλΛར༻
    w3VCZͰ8FCαʔόͷৼΔ෣͍Λ֦ுՄೳ
    wదࡐదॴͱͯ͠ैདྷͷ$ݴޠͷ࣮૷ͱڞଘՄೳ

    View full-size slide

  78. NPE@NSVCZͷػೳ֦ுͷ֓ཁਤ

    View full-size slide

  79. NPE@NSVCZઃఆྫ
    # Normal hook

    mrubyHandlerMiddle /path/to/test.rb

    # ByteCode Caching at Start up

    mrubyHandlerMiddle /path/to/test.rb cache


    View full-size slide

  80. NPE@NSVCZͰͷ3FWFSTF1SPYZ
    # mrubyTranslateNameFirst “/path/to/proxy.rb”
    backends = [
    "http://192.168.0.101:8888/",
    "http://192.168.0.102:8888/",
    "http://192.168.0.103:8888/",
    ]
    r = Apache::Request.new
    backend = backends[rand(backends.length)]
    r.reverse_proxy backend + r.unparsed_uri

    View full-size slide

  81. ࣮ݧ
    wੑೳධՁ
    )FMMP8PSMEग़ྗͷ୯७ͳϓϩάϥϜʢΠϯλϓϦλͷੑೳͰ
    ͸ͳ͘૊ΈࠐΈΞʔΩςΫνϟͷੑೳΛ࠷େԽ͢ΔͨΊʣ
    ैདྷɾఏҊख๏Ͱ࣮ߦ͠ඵؒͷϨεϙϯε਺Λܭଌ
    ಉ࣌઀ଓ਺ɾ૯઀ଓ਺ສ

    View full-size slide

  82. ैདྷख๏ͱͷੑೳൺֱ
    ैདྷͷػೳ֦

    NPE@QFSM NPE@SVCZ NPE@MVB NPE@NSVCZ
    NPE@NSVCZ
    Ωϟογϡ
    ݴޠ $ 1FSM 3VCZ -VB NSVCZ NSVCZ
    ΠϯλϓϦλ
    ॳظԽॲཧ
    ࣄલ ౎౓ ࣄલ ࣄલ
    ϥΠϒϥϦ
    ಡΈࠐΈ
    ࣄલ ౎౓ ࣄલ ࣄલ
    ίϯύΠϧ ࣄલ ౎౓ ౎౓ ౎౓ ࣄલ
    ίʔυͷมߋ ෆՄ Մ Մ Մ ෆՄ
    άϩʔόϧঢ়ଶ ڞ༗ ڞ༗ ඇڞ༗ ඇڞ༗ ඇڞ༗
    ੑೳ
    3FTQPOTFTFD


    View full-size slide

  83. ষͷ·ͱΊ
    wεΫϦϓτݴޠͰߴ଎͔ͭ҆શʹಈ࡞͢Δ8FCαʔόػೳ֦
    ுࢧԉΞʔΩςΫνϟΛఏҊ
    wैདྷݚڀΑΓ΋ߴ଎Ͱ8FCαʔό׆༻έʔεͰ͸$ݴޠͰͷ࣮
    ૷ʹḮ৭ͳ͍ΞʔΩςΫνϟΛ࣮ݱ
    w޿͘࢖ΘΕ͍ͯΔ8FCαʔόιϑτ΢ΣΞͷϞδϡʔϧͱͯ͠
    ࣮૷͠Φʔϓϯιʔειϑτ΢ΣΞͱͯ͠ެ։

    View full-size slide

  84. ষͷࠓޙͷ՝୊
    wάϩʔόϧม਺ྖҬͷࣗಈ։์ػೳ
    wݱࡏ͸खಈ։์Ͱ͋Δ͕ಛఆͷάϩʔόϧม਺Ҏ֎
    ͸ࣗಈͰ։์Ͱ͖ΔॲཧʢઃఆͰ੾Γସ͑ՄೳʣΛ
    ௥Ճ༧ఆ

    View full-size slide

  85. ୈষ
    ϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ
    ෼཭͢ΔWebαʔόͷ
    Ϧιʔε੍ޚΞʔΩςΫνϟ

    View full-size slide

  86. ষͷ՝୊ͷ·ͱΊ

    αʔόͷෛՙΛ௿ݮ͢Δ͜ͱΛॏࢹ͢Δ͋·ΓϢʔβ
    ମݧΛେ͖͘ଛͳ͍ͬͯΔ
    ࠷େಉ࣌઀ଓ਺ҎԼͰ΋ҰͭͷϦΫΤετͰେྔʹϦ
    ιʔεΛ࢖༻͢ΔίϯςϯπΛߟྀͰ͖͍ͯͳ͍
    ੍ݶͷཻ౓͕ߥ͘ϗετؒͷϦιʔεڝ߹ʹΑΓշద
    ʹ࢖͑ΔϢʔβͱ࢖͑ͳ͍Ϣʔβͷ͕ࠩେ͖͍

    View full-size slide

  87. ࣮ݱ͍ͨ͠Ϧιʔε੍ޚʢ̍ʣ
    8FCαʔό 8FCαʔό
    Ϛϧνςφϯτํࣜͷαʔόશମͷ$16Ϧιʔε͕ṧഭͨ͠ঢ়ଶʹ͓͍ͯɺ
    ࢖༻Ͱ͖Δ$16Ϧιʔε͸ʹ੍ݶ͞ΕΔ͕ɺར༻Ͱ͖ΔΫϥΠΞϯτ਺͸ഒ
    ΞΫηεෆՄ ΞΫηεՄʂ
    ΞΫηεՄ

    $16ˋ࢖༻͢Δ
    ͭͷϓϩάϥϜΛॲཧ
    $16ˋ࢖༻͢Δ
    ͭͷϓϩάϥϜΛॲཧ
    ఏҊख๏
    ैདྷख๏
    ΑΓཻ౓ͷ
    ࡉ੍͔͍ݶ

    View full-size slide

  88. ࣮ݱ͍ͨ͠Ϧιʔε੍ޚʢ̎ʣ
    wϦΫΤετʹؚ·ΕΔ༷ʑͳଐੑΛݩʹ੍ޚ͍ͨ͠
    ߴूੵϚϧνςφϯτํࣜͰ͸ϦΫΤετͷଐੑͰ
    ϗετΛ۠ผ͠ϓϩηεΛڞ༗͢ΔͨΊ
    ϦΫΤετ୯ҐͰͷϦιʔε෼཭͕ඞཁ
    wෳࡶͳઃఆΛϓϩάϥϚϒϧʹهड़Մೳʹ͍ͨ͠

    View full-size slide

  89. ఏҊ͢ΔϦιʔε੍ޚΞʔΩςΫνϟ
    w04ͷϓϩηεϦιʔε෼཭ٕज़Λ8FCαʔόͷϦΫ
    Τετ୯ҐͰ׆༻੍͠ޚ
    wষͷػೳ֦ுࢧԉػߏNPE@NSVCZΛԠ༻
    ϓϩάϥϚϒϧͰΦʔόʔϔουগͳ͍ࢧԉػߏͰ
    ϦΫΤετ୯ҐʹϦιʔεΛ੍ޚՄೳ

    View full-size slide

  90. -JOVYಠࣗͷϦιʔε੍ޚDHSPVQ
    wϓϩηε୯ҐͰ$16ɾϝϞϦɾ*0౳Λ੍ޚ
    -JOVY,FSOFMҎ߱ͷػೳ
    ಛఆͷϓϩηε͸ίΞ$16·Ͱׂ౰ͳͲ
    $16ΛׂΓ౰ͯͨϦιʔεάϧʔϓΛ࡞੒
    άϧʔϓʹࢀՃ͍ͯ͠ΔϓϩηεͰϦιʔε෼഑

    View full-size slide

  91. ϦΫΤετ୯ҐͰͷϦιʔε੍ޚ
    8FCαʔό
    ϓϩηε
    ΫϥΠΞϯτ
    ϦΫΤετ
    Ϩεϙϯε
    Ϩεϙϯεੜ੒ͷॲཧͷؒͷΈ
    ϓϩηεΛಛఆͷDHSPVQʹΞλον
    ʢ$16ͳͲʣ
    DHSPVQΞλον
    DHSPVQσλον

    View full-size slide

  92. Ϧιʔε੍ޚͷઃఆྫ
    r = Apache::Request.new
    if r.filename == “/path/to/cpu.cgi”
    cpu = Cgroup::CPU.new “cpu_group”
    # CPU 10
    cpu.cfs_quota_us = 10000
    cpu.create
    cpu.attach
    end

    ݫີʹ͸NTதNTͷ$16࢖༻࣌ؒΛ
    RVPUBͱͯ͠εέδϡʔϧ͢Δઃఆ

    View full-size slide

  93. Ϧιʔε੍ޚͷઃఆྫ
    r = Apache::Request.new
    if r.hostname == “example.com”
    cpu = Cgroup::CPU.new “cpu_group”
    # CPU 10
    cpu.cfs_quota_us = 10000
    cpu.create
    cpu.attach
    end

    View full-size slide

  94. ਫ਼౓ͱΦʔόʔϔουͷධՁ
    wϦιʔε੍ޚಋೖʹΑΔΦʔόʔϔουධՁ
    wϦιʔε੍ޚͷਫ਼౓ධՁ

    View full-size slide

  95. ΦʔόʔϔουͷධՁ
    w)FMMP8PSME͢Δ͚ͩͷ)5.-ϑΝΠϧ
    wϦιʔε੍ޚಋೖ੍͠ݶΛ͠ͳ͍৔߹ͷΦʔόʔϔου
    wಉ࣌઀ଓ਺ɾ૯઀ଓ਺ສϦΫΤετ
    ະಋೖ࣌ɿSFTQPOTFTFD
    ɹಋೖ࣌ɿSFTQPOTFTFD

    View full-size slide

  96. Ϧιʔε੍ޚͷਫ਼౓ධՁ
    w$16࢖༻͢Δ$(*΁ϦΫΤετ
    w$16ʹϦιʔε੍ޚ
    w$(*ͷ$16࢖༻࣌ؒΛมߋͯ͠ਫ਼౓Λൺֱ
    wੑೳ੍ޚ཰Λఆٛɿ
    wϨεϙϯε࣌ؒʢ੍ݶແ͠ʣϨεϙϯε࣌ؒʢ੍ݶ༗Γʣ
    wੑೳ੍ޚ཰͕ʹ͚ۙΕ͹ਖ਼੍͘͠ޚ͞Ε͍ͯΔ

    View full-size slide

  97. ষͷ·ͱΊ
    wϦΫΤετ୯ҐͰίϯϐϡʔλϦιʔεΛ෼཭
    wϚϧνςφϯτํࣜͷΑ͏ʹϦΫΤετͰςφϯτΛಛ
    ఆ͠ॲཧ͢Δϓϩηε͸ڞ༗͢ΔΞʔΩςΫνϟʹ༗༻
    wߴूੵϚϧνςφϯτํࣜʹ͓͍ͯैདྷݚڀΑΓ΋ཻ౓
    ͷࡉ͔͍Ϧιʔε੍ݶΛద༻Ͱ͖Δ

    View full-size slide

  98. ୈষ
    ·ͱΊ

    View full-size slide

  99. ·ͱΊ
    w8FCαʔόͷߴूੵϚϧνςφϯτํࣜʹؔ͢Δݚڀ
    ষͰηΩϡϦςΟͱӡ༻໘Λཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ
    ষͰੑೳͱηΩϡϦςΟΛཱ྆ͨ͠ΞΫηε੍ޚͷݚڀ
    ষͰ8FCαʔόػೳ֦ுࢧԉػߏͷݚڀ
    ষͰ8FCαʔόͷϦιʔε੍ޚͷݚڀ

    View full-size slide

  100. ߩݙ
    w8FCαʔόͷߴूੵϚϧνςφϯτํࣜͷجຊ֓೦ͱ՝୊
    Λମܥతʹ੔ཧ͠ΞʔΩςΫνϟΛఏҊͯ͠ղܾ
    ηΩϡϦςΟɾੑೳɾϦιʔε੍ޚɾӡ༻ٕज़ͷ؍఺
    wಛʹ8FCϗεςΟϯάαʔϏεΛର৅ʹΞʔΩςΫνϟͷ
    ࣮૷Λߦͬͯ044ͱͯ͠ެ։͠αʔϏε΁൓өɾվળ
    -JOVYΛ׆༻֤ͨ͠छ8FCαʔϏεͷߴ౓Խʹد༩

    View full-size slide

  101. 044ͱͯ͠ެ։
    wୈষNPE@QSPDFTT@TFDVSJUZ
    wୈষNPE@NSVCZOHY@NSVCZͱ֤छNSVCZϞδϡʔϧ
    wୈষNSVCZDHSPVQ
    wੈքத͔Β֤छࣄྫΛ࿈བྷ௖͍͓ͯΓ·͢

    View full-size slide

  102. ࠓޙͷల๬
    wࣗ཯తʹߴෛՙର৅Λಛఆ͠ద੾ͳ੍ݶΛߦ͏ػೳ
    w)551ͱ5-4ʹ࠷దͳΞʔΩςΫνϟͷݕ౼
    wߴूੵϚϧνςφϯτͷେن໛ূ໌ॻ؅ཧ
    wඇಉظॲཧͷݖݶɾϦιʔε෼཭ΞʔΩςΫνϟ
    wNSVCZʹΑΔαʔό֦ுͷҰൠར༻ͷଅਐ

    View full-size slide

  103. ຊ࿦จʹؚ·ΕΔൃදจݙ
    ࿦จࢽ࿦จ
    1 দຊ྄հ, Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔ
    όͷػೳ֦ுࢧԉػߏ, ৘ใॲཧֶձ࿦จࢽɼVol.55, No.11, pp.2451-2460, Nov 2014.

    2 দຊ྄հ, Ԭ෦णஉ,εϨου୯ҐͰݖݶ෼཭Λߦ͏WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ,
    ిࢠ৘ใ௨৴ֶձ࿦จࢽ Vol.J96-B, No.10, pp.1122-1130, Oct 2013.

    3 দຊ྄հ, ઒ݪক࢘, দԬً෉, େن໛ڞ༗ܕWebόʔνϟϧϗεςΟϯάج൫ͷηΩϡϦςΟ
    ͱӡ༻ٕज़ͷվળ, ৘ใॲཧֶձ࿦จࢽ, Vol.54, No.3, pp.1077-1086, Mar. 2013.

    View full-size slide

  104. ຊ࿦จʹؚ·ΕΔൃදจݙ
    ࠃࡍձٞൃදʢࠪಡ෇͖ʣ
    1 Ryosuke Matsumoto, Yasuo Okabe, Access Control Architecture Separating Privilege by a
    Thread on a Web Server, The 12th IEEE/IPSJ International Symposium on Applications and the
    Internet (SAINT2012), pp.178-183, July 2012.


    View full-size slide

  105. ຊ࿦จʹؚ·ΕΔൃදจݙ
    ޱ಄ൃද
    1 দຊ྄հɾԬ෦णஉ, ϦΫΤετ୯ҐͰԾ૝తʹίϯϐϡʔλϦιʔεΛ෼཭͢ΔWebαʔό
    ͷϦιʔε੍ޚΞʔΩςΫνϟ, ৘ใॲཧֶձݚڀใࠂ Vol.2013-IOT-23, No.4, 2013೥9݄.

    View full-size slide