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

Microservices Architectureに取り組んでみえたこと

Microservices Architectureに取り組んでみえたこと

yoshiyoshifujii

June 24, 2017
Tweet

More Decks by yoshiyoshifujii

Other Decks in Design

Transcript

  1. .JDSPTFSWJDFT"SDIJUFDUVSFʹ
    औΓ૊ΜͰΈ͑ͨ͜ͱ
    4BU
    !ZPTIJZPTIJGVKJJ

    View full-size slide

  2. ؔδϟόͷΈͳ͞Μ͜Μʹͪ͸
    w:PTIJUBLB'VKJJ
    !ZPTIJZPTIJGVKJJ
    w4PGUXBSF&OHJOFFS
    w4DBMB+BWB1ZUIPO
    5ZQFTDSJQU
    w4DBMBؔ੢4VNNJU4UB⒎

    View full-size slide

  3. ି͠ग़͠Ͱ͖Δ෦԰
    w ηϛφʔϗʔϧ ໊

    w ձٞࣨ ໊͔Β໊

    w ΧϑΣεϖʔε ໊

    w ϏΞόογϡͳͲͷ࠙਌ձ΋։࠵ՄೳͰ͢ʂ

    View full-size slide

  4. wࠓ೔͓࿩͢Δ͜ͱ
    wࢲ͕࠷ۙɺ.JDSPTFSWJDFTʹऔΓ૊ΜͰ෼͔ͬͨ͜ͱ
    w.JDSPTFSWJDFT"SDIJUFDUVSF
    w%%%
    w"HJMF4DSVN%FW0QT
    w41"3&45GVM4FSWFSMFTT"SDIJUFDUVSF
    w͠ͳ͍͜ͱ
    wͦΕͧΕͷਂ͍આ໌

    View full-size slide

  5. .JDSPTFSWJDFTΛ
    ͓͞Β͍͓͖ͯ͠·͠ΐ͏

    View full-size slide

  6. .JDSPTFSWJDFTͭͷಛ௃
    αʔϏεΛ௨ͨ͡ίϯϙʔωϯ
    τԽ
    Ϗδωε਱ߦೳྗʹؔΘΓ૊
    ৫͕੔ཧ͞ΕΔ͜ͱ
    ϓϩδΣΫτͰ͸ͳ͘ϓϩμΫ
    τ
    ݡ͍ TNBSU
    ΤϯυϙΠϯτͱ
    ౔؅
    ෼ࢄ౷࣏
    ෼ࢄσʔλ؅ཧ
    ΠϯϑϥࣗಈԽ
    ো֐ͷͨΊͷઃܭ
    ਐԽతͳઃܭ
    ླ໦༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢ೔ܦ#1/FYU*$5બॻʣ
    ,JOEMFͷҐஔ/P
    ೔ܦ#1,JOEMF൛

    View full-size slide

  7. ෳ਺αʔϏεͰߏ੒
    w ͭͷΞϓϦέʔγϣϯΛΑΓখ͞
    ͳ୯ҐͷʮαʔϏεʯͷ૊Έ߹Θ
    ͤͰߏ੒͢Δख๏
    w ͦΕͧΕͷαʔϏε͸ݸผͷϓϩ
    ηεͰಈ࡞
    w "1*Λ௨ͯ͡)551ͳͲͷඪ४తͳ
    ϓϩτίϧͰ࿈ܞ
    ླ໦༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢ೔ܦ#1/FYU*$5બॻʣ
    ,JOEMFͷҐஔਤ
    ೔ܦ#1,JOEMF൛

    View full-size slide

  8. αʔϏε͝ͱͷϥΠϑαΠΫϧ
    wϞϊϦγοΫ Ұຕؠ
    ͩͱӨڹ
    ௐࠪʹ͕͔͔࣌ؒΔ
    wӨڹൣғ͸αʔϏε಺෦ʹด͡
    Δ
    w࣮ࡍ͸ɺͦΜͳ୯७Ͱ͸ͳ͍
    wαʔϏεͷ෼ׂ͕ॏཁͰɺ͍͔
    ʹӨڹൣғΛαʔϏε಺෦ʹཹ
    ΊΔ͔
    ླ໦༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢ೔ܦ#1/FYU*$5બॻʣ
    ,JOEMFͷҐஔਤ
    ೔ܦ#1,JOEMF൛

    View full-size slide

  9. ૄ݁߹ͳαʔϏε࿈ܞ
    wૄ݁߹ͷ୅ද͸ʮΩϡʔʯΛ
    ༻͍ͨ࿈ܞ
    wαʔϏεಉ͕࢜௚઀࿈ܞͤͣ
    ʹࡁΉ
    wαʔϏεͷμ΢ϯλΠϜ౳Λ
    ؾʹ͠ͳͯ͘ྑ͍
    w࿈ܞઌαʔϏεͷੑೳྼԽ
    ླ໦༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢ೔ܦ#1/FYU*$5બॻʣ
    ,JOEMFͷҐஔਤ
    ೔ܦ#1,JOEMF൛

    View full-size slide

  10. σʔλϕʔε͸αʔϏε͝ͱʹ
    wैདྷγεςϜ͸ɺͭͷΞ
    ϓϦʹͭͷσʔλϕʔε
    wσʔλϕʔεڞ༗͸ੑೳ
    ͕໰୊ʹ
    w෼ࢄσʔλϕʔε͸੔߹
    ੑ͕໰୊ʹ
    ླ໦༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢ೔ܦ#1/FYU*$5બॻʣ
    ,JOEMFͷҐஔਤ
    ೔ܦ#1,JOEMF൛

    View full-size slide

  11. αʔϏεߏ੒؅ཧ
    wαʔόʔߏஙखଓ͖Λ
    ίʔυԽ
    w%PDLFS
    wΫϥ΢υಛ༗ͷ೉͠͞
    ླ໦༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢ೔ܦ#1/FYU*$5બॻʣ
    ,JOEMFͷҐஔਤ
    ೔ܦ#1,JOEMF൛

    View full-size slide

  12. ࠓ೔ͷ͋͐͡Μͩ
    wαʔϏεͷίϯϙʔωϯτԽ
    w૊৫ӡӦ
    wٕज़తͳબ୒

    View full-size slide

  13. ࠓ೔ͷ͋͐͡Μͩ
    wαʔϏεͷίϯϙʔωϯτԽ
    w૊৫ӡӦ
    wٕज़తͳબ୒

    View full-size slide

  14. υϝΠϯۦಈઃܭ
    wୈ෦ઓུతઃܭ

    ୈষϞσϧͷ੔߹ੑ
    Λҡ࣋͢Δ
    wڥք͚ͮΒΕͨίϯςΩ
    ετΛ೺Ѳ͢Δ
    wγεςϜ͕ѻ͏υϝΠϯ
    Λཧղ͠ద੾ʹڥքΛઃ
    ܭ͢Δ
    &SJD&WBOTυϝΠϯۦಈઃܭʢᠳӭࣾʣ 1ਤ
    ᠳӭࣾ

    View full-size slide

  15. υϝΠϯۦಈઃܭ
    w࠷ॳ͔ͬΒ׬ᘳΛ໨ࢦ͞ͳ͍
    wίΞυϝΠϯʹண໨͢Δ
    w͋ͳͨͷγεςϜͷίΞ͸Ͳ͜Ͱ͔͢ʁ

    View full-size slide

  16. ϢϏΩλεݴޠ
    w%PNBJO&YQBSUͱͷର࿩
    wϞϊɾίτΛൈ͖ग़͢
    wϢϏΩλεݴޠͱͯ͠ه࿥͢Δ

    View full-size slide

  17. ܧଓతͳ౷߹
    wҰ౓ͰऴΘΒͳ͍
    wίʔυͷ'#Λ׆͔͢
    wސ٬ͷ'#Λ׆͔͢

    View full-size slide

  18. ίϯςΩετϚοϓΛඳ͘
    wγεςϜʹ͍ͭͯίϛϡχέʔγϣϯ͢Δͱ͖ʹ
    ඞͣͦ͹ʹஔ͍ͯ֬ೝ͢Δ
    wίϯςΩετؒͷґଘੑ΍ଟॏ౓Λ໌֬ʹ͢Δ

    View full-size slide

  19. ґଘͷύλʔϯ

    wڞ༗Χʔωϧ
    wސ٬ڞ༗ऀͷ։ൃνʔϜ
    w͍ΘΏΔQVCTVC
    w͍ͬΆ͏͕ఆ͍ٛͯͬ͠Ά͏͕ड͚ͱΔ
    wૄ݁߹Ͱྑ͍

    View full-size slide

  20. ґଘͷύλʔϯ

    wҰํతͰ͸ͳ͘ཁ๬Λग़͍͍ͯ͠
    wίϯςΩετؒͰѻ͏ݴޠ͕ҟͳͬͨͱͯ͠΋ɺ

    ίϛϡχέʔγϣϯͷϑΥʔϚοτΛผ్ఆٛ͢Δ
    w$+BWB
    w1ZUIPO4DBMB
    wϑΥʔϚοτΛ4XBHHFSͰݻఆ

    View full-size slide

  21. ґଘͷύλʔϯ

    wॱԠऀ
    wެ։ϗεταʔϏε
    wผʑͷಓ
    wίϯςΩετͷதͰ͸ผͷϢϏΩλεݴޠΛఆٛͯ͠ྑ͍
    wϞσϧߏ଄΋ಉ͡Ͱͳͯ͘ྑ͍
    w͏ͪͷίϯςΩετͰ͸͜͏ݺΜͰΔ͚ͲͶɻ

    ͦͬͪͰ͸ԿͯݺΜͰΔͷ͔஌ΒΜ͚Ͳ

    View full-size slide

  22. ґଘͷύλʔϯ

    w෗ഊ๷ࢭ૚
    wϨΨγʔͳϞσϧΛͲ͏ͯ͠΋࢖͏ͱ͖
    wΠέͯͳ໊͍শΛϢϏΩλεݴޠʹม׵͢Δ
    wچདྷόʔδϣϯΛ࣋ͬͯΔίϯςΩετͰ༗ޮ

    View full-size slide

  23. ࠓ೔ͷ͋͐͡Μͩ
    wαʔϏεͷίϯϙʔωϯτԽ
    w૊৫ӡӦ
    wٕज़తͳબ୒

    View full-size slide

  24. "HJMF
    wϓϩδΣΫτͰߟ͑ͣϓϩμΫτͰߟ͑Δ
    w੒௕ઓུΛऔΔ
    wਐԽΛલఏͱͨ͠࠷దԽ
    wʮ͍·͸͜ΕͰྑ͍ʯͬͱ͍ͬͨ൑அ

    View full-size slide

  25. εΫϥϜ
    wΧϯόϯͱͷ͔͚͋Θͤ
    wνʔϜຖͷਐḿΛݟ͑Δ
    Խ
    w/FYVTΨΠυ
    wେن໛εΫϥϜ։ൃͷ֎
    ࠎ֨

    View full-size slide

  26. νʔϜͷͭ͘Γ͔ͨ
    wίϯςΩετϚοϓʹै͏
    wίϯςΩετͷཻ౓΍਺͸όϥόϥ
    wνʔϜϏϧσΟϯάʹɺ.BOBHFNFOUͷ
    πʔϧ͕࢖͑Δ

    View full-size slide

  27. νʔϜʹΑͬͯ੒௕౓߹͍ʹ͕ࠩͰΔ
    wνʔϜΛൺֱͯ͠จ۟ΛݴΘͳ͍
    wѻ͏ίϯςΩετ͕ҧ͏ͷͰҟͳͬͯ౰વ
    wνʔϜ͸ੜ෺
    w৺ཧత҆શੑ͸ɺͪΐͬͱͨ͜͠ͱͰࣦͳΘΕΔ

    View full-size slide

  28. %FW0QT

    wνʔϜͷ੒௕͕伴
    w͍͖ͳΓͰ͖ͳ͍
    w$%$*؀ڥΛ੔͑Δ
    w+FOLJOT
    wDPODPVSTFDJ

    View full-size slide

  29. %FW0QT

    wϒϥϯνӡ༻͸νʔϜʹ೚ͤΔ
    wNBTUFSʹQVTI㱺νʔϜ಺ςετ؀ڥͷߏங
    wUBHΛ੾Δ㱺νʔϜؒ݁߹ςετ؀ڥͷߏங
    wνʔϜؒ݁߹ςετ؀ڥͰͷςετ%POF㱺
    1SPEVDUJPO؀ڥߏங

    View full-size slide

  30. %FW0QT

    w7BMVF4USFBN.BQQJOH
    wՁ஋Λಧ͚Δ·Ͱͷ޻ఔ
    wৗʹϑϩʔΛચ࿅͢Δ
    wεϓϦϯτΛ;Γ͔͑Γચ࿅͠%FW0QTʹۙ෇͘

    View full-size slide

  31. $POXBZͷ๏ଇ
    wγεςϜͷߏ଄͸ɺͦͷγεςϜΛઃܭ͢Δ૊৫ͷߏ଄ʹ
    ࣅΔ
    wνʔϜͷϝϯόʔ͕ߟ͑ͯઃܭ͢ΔΜ͔ͩΒͦΓΌͦʔͩ
    wٯʹڧ੍͠ͳ͍ੈք͕େࣄ
    w֎͔ΒઃܭΛڧཁ͢Δͱɺ૊৫͕มΘΔ
    w͍͍໘ѱ͍໘

    View full-size slide

  32. ࠓ೔ͷ͋͐͡Μͩ
    wαʔϏεͷίϯϙʔωϯτԽ
    w૊৫ӡӦ
    wٕज़తͳબ୒

    View full-size slide

  33. 41"
    w4JOHMF1BHF"QQMJDBUJPO
    w.JDSPTFSWJDFTͰߏ੒͞ΕΔγεςϜͷϑϩϯτΤϯυ
    ʹ࠷ద
    w41"ͷϞδϡʔϧ͸ɺίϯςΩετΛԣஅͯͭ͠ʹͳΔ
    w༷ʑͳίϯςΩετ͕ࠞͬͨͭ͡ͷϞδϡʔϧ
    wNFSHFͱDPOqJDU͸ආ͚ΒΕͳ͍

    View full-size slide

  34. 3&45GVM
    wݪଇ͸౿ऻ͢Δ͕ɺݫີʹ͠ͳ͍
    w4XBHHFSͰ"1*Λެ։
    wνʔϜؒͷձ࿩͸ɺ4XBHHFSΛ༻͍Δ

    View full-size slide

  35. 4FSWFSMFTT"SDIJUFDUVSF

    w4DBMB.BUTVSJ
    w4FSWFSMFTT
    "SDIJUFDUVSFΛ
    4DBMBͰ΍ͬͯΈͨ࿩
    Λ͠·ͨ͠

    View full-size slide

  36. Amazon API
    Gateway
    client
    AWS
    Lambda
    Amazon
    S3
    Amazon
    DynamoDB
    Amazon
    Kinesis
    AWS
    Lambda
    AWS
    Lambda
    Amazon
    Elasticsearch Service
    Context + Token
    Principal + Policy
    Policy is
    cached
    Denied
    403
    Allowed
    Auth function
    Consumers function
    System diagrams

    View full-size slide

  37. 4FSWFSMFTT"SDIJUFDUVSF

    w࢖͍Ͳ͜ΖΛબͿ
    wίϯςΩετΛ·Δ͝ͱ4FSWFSMFTTʹ͢Δ͜ͱ΋Խ
    w3%#ͷ৔߹ɺDPOOFDUJPO͕ރׇ
    w71$ىಈʹͳΓɺ&/* &MBTUJD/FUXPSL
    *OUFSGBDF
    ͷ࡞੒ʹඵ

    View full-size slide

  38. 4FSWFSMFTT"SDIJUFDUVSF

    w%%%ͱͷ૬ੑ͍͍
    w4DBMBͱͷ૬ੑ͍͍
    wTCUͷNVMUJQSPKFDUΛ׆༻ͯ͠KBSͷαΠζΛඞ
    ཁ࠷খݶʹ

    View full-size slide

  39. 4FSWFSMFTT"SDIJUFDUVSF

    wϨΠϠʔͷґଘϞσϧ
    w4FSWFSMFTT"SDIJUFDUVSF
    ͸ɺWFOEPSMPDLJOલఏͷΞ
    ʔΩςΫνϟ
    w%%%ͱ૊Έ߹Θͤͯ࡞Δ͜ͱ
    ͕Ͱ͖Ε͹ɺίΞͳϏδωε
    ϩδοΫ͕ϩοΫΠϯ͞Εͳ
    ͍
    "QQMJDBUJPO
    *OGSBTUSVDUVSF
    %PNBJO
    "1*
    WFOEPSMPDLJO

    View full-size slide

  40. 4FSWFSMFTT"SDIJUFDUVSF

    wϕετͳ8FC"QQMJDBUJPOͷߏஙύλʔϯΛମݧ
    ֶͯ͠΂Δ
    wଞͷ8FC"QQMJDBUJPOΛߏஙɾઃܭ͢Δࡍʹɺ
    ʮ͋Ε ͋ͬͪͩͱͰ͖ͯΔΑ ʯͱϑΟʔυόο
    ΫͰ͖Δ

    View full-size slide

  41. %BUB4UPSBHFͷબ୒
    wϢʔεέʔεʹԠͯ͡
    %BUB4UPSBHFΛબ୒
    ͢Δ
    w$PNNBOEͱ2VFSZͰ
    ҟͳΔετϨʔδ΋બ
    ୒Մೳ
    4 LFZWBMVF
    %ZOBNP
    %#
    ٯҾ͖͕ඞཁ
    Ұཡऔಘ
    3%#
    3FMBUJPOBMNPEFM͕
    ඞཁ
    &MBTUJD
    4FBSDI
    ߴ଎ͳશจݕࡧ͕ඞ

    View full-size slide

  42. ඇಉظϝοηʔδϯάύλʔϯ
    wϢʔεέʔεʹԠͯ͡ϝοη
    ʔδϯάͷύλʔϯ͕͋Δ
    w,BGLBΛಋೖ͢ΔͱɺͥΜ
    Ϳ͜Ε͍͚ͬͯΔ͔΋
    wͱ͸͍͑ɺίετ͕๲େʹ
    ͳΔ͔΋͠Εͳ͍
    wۜͷ஄ؙ͸ͳ͍
    ରൺ αʔϏε උߟ
    424
    /
    ,JOFTJT ੍໿͋Γ
    "QBDIF
    ,BGLB
    ηϧϑϚω
    δϝϯτ

    View full-size slide

  43. $234

    ॻ͖ࠐΈ ಡΈࠐΈ
    σʔλͷ੔߹ੑͷҡ࣋ σʔλͷݕࡧͱநग़ͷޮ཰Խ
    ΞτϛοΫͳߋ৽τϥϯβΫγϣϯ ಋग़஋ ߹ܭͳͲ
    ͷࢉग़
    όʔδϣϯ؅ཧ ָ؍తฒߦੑ੍ޚ
    ָ؍తϩοΫ

    ෳ਺ͷϏϡʔͷఏڙ
    ॻ͖ࠐΈݖݶͷ؅ཧ ߦϨϕϧɺྻϨϕϧͷݖݶ؅ཧ
    $234ͱΠϕϯτιʔγϯάͷ࢖༻๏ɺ·ͨ͸ʮ$36%ʹԿ͔໰୊Ͱ΋ʁʯ
    IUUQQPTUEDDVTJOHDRSTXJUIFWFOUTPVSDJOH

    View full-size slide

  44. $234

    w$PNNBOEʹ͸ɺ%PNBJOϩδοΫΛ
    w2VFSZ͸ɺݖݶऔಘΛߟྀ͠ɺݕࡧੑೳʹ༏Εͨऔಘϩ
    δοΫΛ
    w&WFOU4PVSDJOHͱͷ૬ੑ͕ྑ͍
    wج൫ͷߏங͸ɺͦΕͳΓͷίετ͕͔͔Δ
    w෦෼తʹ࠾༻͠ɺঃʑʹ֦େ͍ͯ͘͠ͷ͕ྑ͍

    View full-size slide

  45. IUUQXXXPVBS[ZDPNBGFXNZUITBCPVUDRST

    View full-size slide

  46. ڞ௨ॲཧͷ෦඼Խ
    w.BWFO౳ͰKBSΛڞ༗
    w4DBMBͷTCU͸ศར
    w+BWBͱ͔ͦͷଞͱൺֱͨ͠Θ͚͡Όͳ͍
    wNVMUJQSPKFDU
    wґଘͷํ޲ੑΛ੔ཧ͠΍͍͢
    wEFQFOET0O
    wMJCSBSZ%FQFOEFODJFT

    View full-size slide

  47. ϦΞΫςΟϒએݴ
    wଈԠੑ 3FTQPOTJWF

    w଱ো֐ੑ 3FTJMJFOU

    w஄ྗੑ &MBTUJD

    wϝοηʔδۦಈ
    .FTTBHF%SJWFO

    View full-size slide

  48. ଈԠੑ
    wγεςϜ͸ՄೳͳݶΓ͢Έ΍͔ʹԠ౴͢Δ
    w໰୊͕ૉૣ͘ݕग़͞ΕޮՌతʹରॲͰ͖Δ
    wਝ଎Ͱ͔ͭҰ؏ͨ͠Ԡ౴࣌ؒΛఏڙ͢Δ͜ͱʹओ
    ؟Λஔ͘

    View full-size slide

  49. ଱ো֐ੑ
    wγεςϜ͸ো֐ʹ௚໘ͯ͠΋ଈԠੑΛอͪଓ͚Δ
    w଱ো֐ੑΛ࣋ͨͳ͍γεςϜ͸ো֐͕ى͖Δͱଈ
    ԠੑΛࣦ͏
    w଱ো֐ੑ͸ɺϨϓϦέʔγϣϯɺ෧͡ࠐΊɺִ཭ɺ
    ͦͯ͠ҕৡʹΑ࣮ͬͯݱ

    View full-size slide

  50. ஄ྗੑ
    wγεςϜ͸ϫʔΫϩʔυ͕มಈͯ͠΋ଈԠੑΛอ
    ͪଓ͚Δ
    wγεςϜͷதʹڝ߹͢Δ৔ॴ΍த৺తͳϘτϧωο
    Ϋ͕ଘࡏ͠ͳ͍Α͏ʹઃܭ
    wγϟʔσΟϯάͨ͠ΓϨϓϦέʔγϣϯͨ͠ίϯ
    ϙʔωϯτؒʹೖྗΛ෼ࢄͤ͞Δ

    View full-size slide

  51. ϝοηʔδۦಈ

    wϦΞΫςΟϒγεςϜ͸ඇಉظͳϝοηʔδύο
    γϯάʹґͬͯίϯϙʔωϯτؒͷڥքΛཱ֬
    wૄ݁߹ੑɺִ཭ੑɺҐஔಁաੑΛอূ͢Δͱڞʹɺ
    ΤϥʔΛϝοηʔδͱͯ͠ҕৡ
    w໌ࣔతͳϝοηʔδύογϯά͸ෛՙͷ؅ཧͱ஄
    ྗੑΛՄೳ

    View full-size slide

  52. ϝοηʔδۦಈ

    wγεςϜ಺ʹϝοηʔδΩϡʔΛ࡞੒ͯ͠؂ࢹ͠ɺ
    ඞཁͳΒόοΫϓϨογϟʔΛద༻͢Δ͜ͱͰϑ
    ϩʔ੍ޚ͕Մೳ
    wϊϯϒϩοΩϯά௨৴ʹΑΓɺड৴ଆ͸ΞΫςΟ
    ϒ࣌ͷΈϦιʔεΛফඅͰ͖ΔͷͰγεςϜͷΦʔ
    όϔουΛ཈੍

    View full-size slide

  53. ϊϯϒϩοΩϯά
    w"DUPSϞσϧΛ׆༻ͨ͠γεςϜ
    w"LLB IUUQBLLBJP

    w"LLB)551ɺ"LLB4USFBNTͰ3&45GVMͳ8FC"1*α
    ʔόʔͱɺඇಉظॲཧΛߏஙՄೳ
    w$MVTUFSɺ4IBSEJOHɺ1FSTJTUFODF΋ݕ౼
    w"LLB͸͍͍ͧ

    View full-size slide

  54. ·ͱΊ
    wαʔϏεͷίϯϙʔωϯτԽʹ͓͍ͯɺ%%%ͷڥ
    ք͚ͮΒΕͨίϯςΩετΛ࠾༻ͨ͠
    w૊৫Խʹ͓͍ͯɺ4DSVNͰ͸͡Ίͯɺ%FW0QTΛ
    ໨ࢦ͢
    wٕज़બ୒͸ɺ༷ʑͳٕज़ͷ૊Έ߹Θͤɻϊ΢ϋ΢
    ͨΊΔɻ

    View full-size slide