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
PRO

May 23, 2017
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Research

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. جຊ֓೦

    View Slide

  11. Ϛϧνςφϯτํࣜ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

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

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

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

    View Slide

  26. %40࣮ߦํࣜ
    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF
    JOEFYQIQ
    QBSTFSVO

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. $(*QSPDFTT
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSSPPU

    QIQDHJJOEFYQIQ
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSVTFS

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

    GPSL

    FYFDWF
    TVFYFDQSPHSBN TFUVJESPPU

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

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

    View Slide

  33. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSSPPU

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE

    QBSTF SVO
    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

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

    View Slide

  34. ఏҊख๏

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  40. ఏҊख๏

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. ఏҊख๏

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  50. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSSPPU

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE

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

    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

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

    View Slide

  51. $(*QSPDFTT
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSSPPU

    QIQDHJJOEFYQIQ
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSVTFS

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

    GPSL

    FYFDWF
    TVFYFDQSPHSBN TFUVJESPPU

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

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

    View Slide

  52. $(*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 Slide

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

    View Slide

  54. ࣮ݧ؀ڥ

    View Slide


  55. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  60. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSSPPU

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE

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

    $IJMEIUUQEQSPDFTT
    PXOFSVTFS

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

    View Slide

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

    View Slide

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

    View Slide

  63. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    UISFBE
    PXOFSVTFS

    UISFBE
    PXOFSBQBDIF

    JOEFYQIQ
    PXOFSVTFS

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

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

    View Slide

  64. 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 Slide

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

    View Slide

  66. -JOVYͰ"QBDIFϞδϡʔϧͱ࣮ͯ͠૷
    [email protected]@TFDVSJUZϞδϡʔϧ
    wઃఆ͸ҎԼͷΑ͏ʹγϯϓϧ

    View Slide

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

    View Slide

  68. ࣮ݧ؀ڥ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  79. VM
    • 
    • 
    • 

    View Slide

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

    View Slide

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


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  85. [email protected]ͷػೳ֦ுͷ֓ཁਤ

    View Slide

  86. [email protected]ઃఆྫ
    # Normal hook

    mrubyHandlerMiddle /path/to/test.rb

    # ByteCode Caching at Start up

    mrubyHandlerMiddle /path/to/test.rb cache


    View Slide

  87. [email protected]Ͱͷ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 Slide

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

    View Slide

  89. ࣮ݧ؀ڥ

    View Slide

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

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


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  94. ষͷ՝୊ͷ·ͱΊ

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

    View Slide

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

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  100. Ϧιʔε੍ޚͷઃఆྫ
    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 Slide

  101. Ϧιʔε੍ޚͷઃఆྫ
    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 Slide

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

    View Slide

  103. ࣮ݧ؀ڥ

    View Slide

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

    View Slide

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

    View Slide


  106. View Slide

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

    View Slide

  108. ୈষ
    ·ͱΊ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  113. ຊ࿦จʹؚ·ΕΔൃදจݙ
    ࿦จࢽ࿦จ
    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 Slide

  114. ຊ࿦จʹؚ·ΕΔൃදจݙ
    ࠃࡍձٞൃදʢࠪಡ෇͖ʣ
    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 Slide

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

    View Slide