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

クラウドだからできた 地方主導のJAWS DevOps

クラウドだからできた 地方主導のJAWS DevOps

四国クラウドお遍路 2023 - 四国の外のモノサシを知ってみよう-
メインセッションとして登壇しました

matsuihidetoshi

September 16, 2023
Tweet

More Decks by matsuihidetoshi

Other Decks in Technology

Transcript

  1. Ϋϥ΢υ͔ͩΒͰ͖ͨ
    ஍ํओಋͷ+"84%FW0QT
    দҪӳढ़ ౔

    View Slide

  2. ࣗݾ঺հ
    9!IJEF
    দҪӳढ़
    ελʔτΞοϓςΫϊϩδʔςοΫϦʔυ

    View Slide

  3. લ৐Γ

    View Slide

  4. લ৐Γ

    View Slide

  5. લ৐Γ

    View Slide

  6. ࠓ೔͓࿩͢͠Δ͜ͱ
    ஍ํࡏॅͷσϕϩούʔͷࢲ͕ίϛϡχςΟ಺ͷେ͖ͳاըʹࢀը࢝͠ΊΔ·ͰͷܦҢ
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ΩϟϦΞνΣϯδ͔Β୹ظؒͰͷΩϟονΞοϓͰҙࣝͨ͜͠ͱ
    ίϛϡχςΟͱΩϟϦΞͱࣗݾ࣮ݱʹ͍ͭͯ
    +"846(ͷ׆ಈΛ௨ͯ͠มΘͬͨ͜ͱɺมΘ͍ͬͯͳ͍͜ͱ

    View Slide

  7. ͜Ε·Ͱͷ׆ಈ
    ஍ํࡏॅͷσϕϩούʔͷࢲ͕ίϛϡχςΟ಺ͷେ͖ͳاըʹࢀը࢝͠ΊΔ·ͰͷܦҢ


    +"846(඿দࢀը ίϩφؔ࿈
    ϋϯζΦϯ
    CVJMEFSTGMBTI
    +"84%":4
    +"841"/,3"5*0/
    "84)&30
    +"84%":4
    +"84ϛʔτ
    "1"$$PNNVOJUZ

    "XBSE
    .FEJB+"84ࢀը
    +"84ϛʔτ

    View Slide

  8. +"846(΁ͷॳࢀՃ
    ஍ํࡏॅͷσϕϩούʔͷࢲ͕ίϛϡχςΟ಺ͷେ͖ͳاըʹࢀը࢝͠ΊΔ·ͰͷܦҢ
    ౦ژ͔Β஍ݩ඿দʹ໭͖͕ͬͯͨɺ

    8FC΍Ϋϥ΢υٕज़΁ͷڵຯΛࣺͯ੾ΕͣΤϯδχΞܧଓ
    ͔ͤͬ͘࢓ࣄͱͯ͠औΓ૊ΉͳΒຊؾͰֶͼ͔ͨͬͨ
    ͳΜͱͳ͘஍ํͰ΋औΓ૊Έํ࣍ୈͰΩϟονΞοϓ͍͚ͯ͠Δউࢉ͕͋ͬͨ
    ΤϯδχΞ͸ԣͷͭͳ͕Γ͕େࣄͩΑͱڭΘͬͨ
    )BNBNBUTVSCͰ඿দࢧ෦ͷখ໦͞Μͱग़ձ͏
    ຖճͷΑ͏ʹͪΐͬͱͨ͠ωλΛ࡞ͬͯ-5
    ˒ࢀՃɾൃݴɾొஃͷϋʔυϧ͕௿͔ͬͨ

    View Slide

  9. "NQMJGZͷϋϯζΦϯͱ
    CVJMEFSTGMBTI΁ͷॳͷدߘ
    ஍ํࡏॅͷσϕϩούʔͷࢲ͕ίϛϡχςΟ಺ͷେ͖ͳاըʹࢀը࢝͠ΊΔ·ͰͷܦҢ
    ࢧ෦ͷษڧձʹࢀՃ͢Δ಺ʹ"NQMJGZͷັྗʹؾͮ͘
    ϑϩϯτΤϯυͷϗεςΟϯάΛ͔ͨͬͨ͠
    αʔόʔϨεͱ͍͏ίϯηϓτΛ஌Δ
    ஍ݩͰউखʹϋϯζΦϯΛ΍͕ͬͨɺͦΕ͕ྑ͍ωλͱͳΔ

    View Slide

  10. ίϩφӨڹԼͰͷγϏοΫςοΫ
    ஍ํࡏॅͷσϕϩούʔͷࢲ͕ίϛϡχςΟ಺ͷେ͖ͳاըʹࢀը࢝͠ΊΔ·ͰͷܦҢ
    +"846(඿দࢧ෦͕ओಋ
    ผͰɺߦ͖͚ͭͷళ͔Β૬ஊ΋͋Γ
    ࢢͷ)1ܝࡌ΍ϝσΟΞͷऔࡐ΋
    ˒पғʹࣗ෼͕औΓ૊ΜͰΔ͜ͱΛΞϐʔϧ͍ͯͨ͠

    View Slide

  11. +"84%":4SF$POOFDU
    ஍ํࡏॅͷσϕϩούʔͷࢲ͕ίϛϡχςΟ಺ͷେ͖ͳاըʹࢀը࢝͠ΊΔ·ͰͷܦҢ
    ॳ৺ऀࢧ෦΁ͷొஃ
    ৫ా͞Μ͕"NQMJGZؔ࿈Ͱ࿩ͤΔਓ͕͍Δ͔୳͍ͯͨ͠
    দҪͷ׆ಈΛ஌͍ͬͯͨপޱ͞Μ͕ܨ͛ͯ͘Εͨ
    %":4࣮ߦҕһΛ୳͍ͯͨ͠ࢁޱ͞Μ͔Β͓༠͍
    ৫ా͞Μ͔Βਪનͯ͠΋Βͬͨ
    ΩοΫΦϑͰʮ։ൃͳΒ͓໾ʹཱͯͦ͏ʯ
    ˒࠷ॳͷҰา͔ΒઇͩΔ·ࣜʹొஃػձ͕૿͑
    ਓͷ͝ԑ͕ͭͳ͕Γνϟϯε͕ಘΒΕͨ

    View Slide

  12. +"84%":4SF$POOFDU
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    νϟϯωϧಉ࣌഑৴
    αʔόʔϨε
    ίϛϡχςΟϝϯόʔͷΈͰߏங
    ਓ͍ۙࢹௌऀ

    View Slide

  13. 7JEFPKT*744%,ͷ໰୊
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    Ϗϧυ࣌ʹؚ·Εͳ͍ϑΝΠϧΛ
    $PQZ8FCQBDL1MVHJOͰίϐʔ
    ґଘϑΝΠϧΛͪΌΜͱ͖࣋ͬͯͯ
    ڧҾͳ%0.ૢ࡞Λഇࢭʂ

    View Slide

  14. *745JNFE.FUBEBUBͷ׆༻
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    EBUB
    ೚ҙͷσʔλΛΦʔσΟΦಈըϑϨʔϜʹ૬৐Γͤ͞Δ

    View Slide

  15. *745JNFE.FUBEBUBͷ׆༻
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    λΠτϧ΍આ໌จΛߋ৽
    ߋ৽ͷτϦΨʔͰ
    -BNCEBؔ਺Λݺͼग़͠
    5JNFE.FUBEBUBͱͯ͠
    λΠτϧ΍આ໌จΛૹ৴͢ΔΑ͏
    "NB[PO*74ʹϦΫΤετ
    5JNFE.FUBEBUBड৴ͷ
    ΠϕϯτΛϑοΫͯ͠
    λΠτϧͱઆ໌จΛදࣔʹ൓ө

    View Slide

  16. ௕ΊͷςΩετΛૹ৴͢Δ޻෉
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ݪจݪจݪจʜݪจ
    ෼ׂ
    அย,FZ45"35
    அย,FZ
    அย,FZ
    அย,FZ&/%
    ճʹ෼͚ͯ
    ϦΫΤετ
    ճʹ෼͚ͯ
    ૹ৴
    ෮ݩ
    ݪจݪจݪจʜݪจ
    அย,FZ45"35
    அย,FZ
    அย,FZ
    அย,FZ&/%
    όοΫΤϯυͰ
    จষΛ෼ׂ͠
    ϑϩϯτΤϯυଆͰ
    ෮ݩ
    ˒௕Ίͷઆ໌จʹ΋ରԠ

    View Slide

  17. ؅ཧը໘΋ࣗ࡞
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ӡӦϝϯόʔͷೝূ
    ηογϣϯλΠτϧ΍આ໌จͷߋ৽
    Ξϯέʔτͷ੍ޚ

    View Slide

  18. +"84%":4SF$POOFDU
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    τϥοΫಉ࣌഑৴ɺਓ͍ۙࢹௌऀ
    ϦΞϧλΠϜͳίϯςϯπߋ৽΍ΞϯέʔτͳͲػೳ໘΋ॆ࣮
    μ΢ϯλΠϜɺΠϯϑϥΦϖϨʔγϣϯ
    ഑৴ج൫ߏஙࣗମ͕ίϯςϯπͱͳΓɺҎ߱ͷΠϕϯτͷ໊෺ʹ

    View Slide

  19. "84TFSWFSMFTT)&30
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ˒͜Ε·Ͱͷ׆ಈ΍ίϛϡχςΟͰͷ
    ϢχʔΫͳΞ΢τϓοτ͕ධՁʹ

    View Slide

  20. +"841"/,3"5*0/
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ؅ཧը໘͸ࣗ࡞ͤͣʹ
    4QSFBETIFFUΛ"1*Խͯ͠࢖༻
    ഑৴ࢹௌऀ਺อଘɾදࣔͷ
    όοΫΤϯυ͸ίʔυ؅ཧͯ͠
    ࠓޙͷΠϕϯτʹ΋ྲྀ༻Մೳʹ
    ഑৴ΦϖϨʔλʔଆͰ
    શͯͷ৘ใΛ߹੒ͯ͠
    ಈը಺ʹؚΊΔ

    View Slide

  21. +"841"/,3"5*0/
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    શͯͷ৘ใΛ഑৴ಈըʹू໿
    ΦϖϨʔγϣϯͷ4BB4׆༻
    *B$Խ

    View Slide

  22. +"841"/,3"5*0/
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ߹੒
    ಈը
    ૹ৴
    ഑৴
    ഑৴؅ཧऀ ࢹௌऀ
    ؅ཧϖʔδ
    ొஃ৘ใ
    ࢹௌऀ਺
    ഑৴
    ຋༁ςΩετ
    ࢹௌϖʔδ
    ࢹௌऀ਺ॲཧ
    औಘ ૹ৴
    ఆظݺͼग़͠
    อଘ

    View Slide

  23. +"841"/,3"5*0/
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ࣌ؒͿͬ௨͠഑৴ɺμ΢ϯλΠϜ
    Χࠃ͔ΒਓҎ্ͷࢀՃऀɺΧࠃ͔Βਓͷొஃऀ
    ߏஙɾӡ༻ͷ؆ૉԽ
    ߏ੒ͷςϯϓϨʔτԽͱΞ΢τϓοτ

    View Slide

  24. "1"$$PNNVOJUZ"XBSET
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ˒ܧଓతͳίϛϡχςΟΠϕϯτͰͷ
    ഑৴؀ڥߏஙɾվળ͕ධՁʹ

    View Slide

  25. +"84%":44BUFMMJUFT
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏

    View Slide

  26. +"84%":44BUFMMJUFT
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ഑৴ؔ࿈৘ใͷ੩తԽ
    4USFBN:BSEͰ΋શͯͷ৘ใΛಈըʹຒΊࠐΈ

    View Slide

  27. 1"/,3"5*0/ͱͷൺֱ
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ߹੒
    ಈը
    ૹ৴
    ഑৴
    ഑৴؅ཧऀ ࢹௌऀ
    ؅ཧϖʔδ
    ొஃ৘ใ
    ࢹௌऀ਺
    ഑৴
    ຋༁ςΩετ
    ࢹௌϖʔδ
    औಘ ૹ৴

    View Slide

  28. +"84%":44BUFMMJUFT
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    Ծ૝ΧϝϥͰ
    ը໘ڞ༗
    ಈը
    ૹ৴ ഑৴
    ഑৴؅ཧऀ ࢹௌऀ
    ؅ཧϖʔδ
    ొஃ৘ใϚελʔ
    ࢹௌऀ਺
    ഑৴
    ࢹௌϖʔδ
    ࢹௌऀ਺ॲཧ
    औಘ ૹ৴
    ఆظݺͼग़͠
    อଘ
    ొஃ৘ใ+40/
    ఆظݺͼग़͠
    औಘ
    ߋ৽
    4IFFUT"1*
    ݺͼग़͠ճ਺
    ੍ݶΛճආ

    View Slide

  29. +"84%":44BUFMMJUFT
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    શࠃձ৔όʔνϟϧձ৔Ͱͷಉ࣌ࢹௌ
    Ϣʔβʔମݧͱ։ൃɾӡ༻ޮ཰ͷཱ྆
    *B$Խͷ༗༻ੑΛ࣮ূ

    View Slide

  30. ίϛϡχςΟ͚ͩͷྗͰ
    ։ൃɾӡ༻ɾอक
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    Ϋϥ΢υͷίϛϡχςΟ͔ͩΒΫϥ΢υͰ࣮ݱ͠Α͏
    αʔόʔϨε͔ͩΒૉૣ͘৴པੑͷߴ͍ج൫ߏங
    Ϋϥ΢υ͔ͩΒ஍ํओಋͰ։ൃɾߏஙͰ͖ͨ
    ˒Ϋϥ΢υY஍ํͷ૬ੑͷྑ͞

    View Slide

  31. ίϛϡχςΟͱݴ͏4BOECPY
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    "84SF*OWFOU%FWFMPQFS-PVOHFʹͯ
    ίϛϡχςΟͷ։ൃͬͯ4BOECPY
    ࣦഊΛڪΕͣνϟϨϯδͰ͖Δ
    ࣮ઓ౤ೖͷݕূ؀ڥʹͳΔ
    ˒։ൃऀͱͯؔ͠ΘΔ͜ͱͷ
    େ͖ͳϝϦοτ

    View Slide

  32. /FYU1"/,3"5*0/
    ΦϯϥΠϯେن໛Πϕϯτͷٕज़ࢹ఺Ͱͷ࣮ݱํ๏
    ˒ϦΞϧλΠϜ຋༁Λ
    ໛ࡧத

    View Slide

  33. 8FCɾΫϥ΢υʹܞΘΔҎલ
    ΩϟϦΞνΣϯδ͔Β୹ظؒͰͷΩϟονΞοϓͰҙࣝͨ͜͠ͱ
    ϓϩάϥϛϯάΛֶΜͰ͔Β
    ೥ۙ͘ܦ͍ͬͯͨ

    View Slide

  34. ࠓͷΩϟϦΞʹࢸΔܦҢ
    ΩϟϦΞνΣϯδ͔Β୹ظؒͰͷΩϟονΞοϓͰҙࣝͨ͜͠ͱ
    ֎஫͢Δ༧ࢉ΋಺੡͢Δਓ΋͍ͳ͍ˠֶशܦݧ͕͋ͬͨͷͰԡ͚ͭ͠ΒΕΔ
    ંΓ߹͍͕͔ͭͳ͘ͳΓ஍ݩʹ໭ΓΦϯϓϨϛεͷΤϯδχΞʹ
    Ϋϥ΢υ΍Γ͔ͨͬͨͷͰ·ͨ8FCΤϯδχΞʹ
    εΧ΢τ͕དྷͯݱ৬
    "84)&30
    ໿೥
    ˒։ൃͷָ͠͞΍Ϋϥ΢υͰ͖Ε͹ͳΜͰ΋࡞ΕΔͱ͍͏উࢉ͔Β
    ࠓ·ͰͰҰ൪ເதʹͳͬͨ೥ؒ

    View Slide

  35. ۤ࿑ͨ͜͠ͱɾҙࣝͨ͜͠ͱ
    ΩϟϦΞνΣϯδ͔Β୹ظؒͰͷΩϟονΞοϓͰҙࣝͨ͜͠ͱ
    ͲΕ͚ͩؤுͬͯ΋ίετηϯλʔͱ͔͠ೝࣝ͞Εͳ͔ͬͨελʔτΞοϓ
    ஍ݩʹ࢓ࣄ͕ͳ͘స৬Ͱۤ࿑͢Δ
    స৬ΤʔδΣϯτʹ΋ݟ์͞ΕΔ
    Α͏΍͘8FCܥͰब৬Ͱ͖͚ͨͲ΍Γ͍ͨ͜ͱ͕Ͱ͖ͣ੒Ռ΋ग़ͤͳ͍
    ˒ίϛϡχςΟͰ஥ؒ΍ϩʔϧϞσϧʹͳΔਓΛ
    ݟ͚ͭΒΕ͔ͨΒؤுΕͨ

    View Slide

  36. ίϛϡχςΟͰֶΜͩ͜ͱ͸
    ࢓ࣄʹ׆͖Δ͔
    ίϛϡχςΟͱΩϟϦΞͱࣗݾ࣮ݱʹ͍ͭͯ
    ίϛϡχςΟͰֶΜͩ͜ͱ͕
    ࣮ࡍʹ໾ʹཱͬͨܦݧ͸͋Γ·͔͢ʁ

    View Slide

  37. ίϛϡχςΟͰֶΜͩ͜ͱ͕
    ࢓ࣄʹ׆͖ͨࢲͷྫ
    ίϛϡχςΟͱΩϟϦΞͱࣗݾ࣮ݱʹ͍ͭͯ
    ίϛϡχςΟͰࢄʑࢼ͖ͯͨ͠"NQMJGZͷϗεςΟϯάΛ1SPEVDUJPO؀ڥʹಋೖ
    "84$%,ͷΩϟονΞοϓ͕ݱߦۀ຿ͷத৺తͳ಺༰ʹͭͳ͕Δ
    ίϛϡχςΟͷ׆ಈ͕స৬΍ΩϟϦΞΞοϓʹ༗རʹಇ͘
    ίϛϡχςΟͰग़ձͬͨํ͔Β͓࢓ࣄͷ૬ஊΛड͚Δ

    View Slide

  38. ίϛϡχςΟͰͷࢲͷ৺ߏ͑
    ίϛϡχςΟͱΩϟϦΞͱࣗݾ࣮ݱʹ͍ͭͯ
    ίϛϡχςΟͰֶΜͩ͜ͱ͕௚઀׆͔͞ΕΔׂ߹͸ׂׂ͔͔
    ଓ͚ΔࣄʹΑΓ࢓ࣄͷํ͔Βدׂ͖ͬͯͯ߹͕มΘͬͯ͘Δ
    ίϛϡχςΟΠϕϯτͰֶͿͱ͍͏ΑΓɺ৘ใऩूͯ͠ޙ͔ΒΈͬͪΓֶͿ
    ճͷࢀՃΑΓճͷొஃ

    View Slide

  39. ӽڥ͢Δ͜ͱͰੈք͕มΘΔ
    ίϛϡχςΟͱΩϟϦΞͱࣗݾ࣮ݱʹ͍ͭͯ
    Πϯϓοτ͔ΒΞ΢τϓοτ΁
    ࢀՃऀ͔Βొஃऀ΁ɺొஃऀ͔ΒӡӦଆ΁
    ஍ݩ͔Βଞ஍Ҭ΁ɺࠃ಺͔Βւ֎΁
    ˞ࣸਅ͸ΠϝʔδͰ͢

    View Slide

  40. ౒ྗͱͦͷՁ஋
    ʮͦΕͰ΋ʯͱݴ͍ଓ͚Ζ
    ʢҾ༻ػಈઓ࢜ΨϯμϜ6$FQʣ
    ৭ʑͳঢ়گʹৼΓճ͞Εɺৗʹ୭͔ʹίϯτϩʔϧ͞Ε͍ͯͨˠࣗ෼ͰίϯτϩʔϧͰ͖ΔΑ͏ʹ
    ΍Γ͍ͨ͜ͱ͔ͩΒύϑΥʔϚϯε͕ग़ͤΔɺ͞Βʹ΍Γ͍ͨ͜ͱ͕Ͱ͖Δɺ20-΋্͕Δ
    ίϛϡχςΟͱΩϟϦΞͱࣗݾ࣮ݱʹ͍ͭͯ

    View Slide

  41. ׆ಈΛ௨ͯ͠มΘͬͨ͜ͱ
    ٕज़ͷղ૾౓͕ͲΜͲΜ্͕ͬͨ
    ΠϯϓοτͱΞ΢τϓοτͷελΠϧཱ͕֬͞Εͨ
    νϟϯε͕ͲΜͲΜ૿͑Δ༷ʹͳͬͨ
    पғͷ໨͕มΘͬͨ
    ΩϟϦΞతʹ΋͏·͍ͬͨ͘
    ஥ؒͱαʔυϓϨΠε͕Ͱ͖ͨ
    Ըฦ͠ͷؾ͕࣋ͪੜͨ͡
    +"846(ͷ׆ಈΛ௨ͯ͠มΘͬͨ͜ͱɺมΘ͍ͬͯͳ͍͜ͱ

    View Slide

  42. ׆ಈલͱมΘͬͯͳ͍͜ͱ
    +"846(ͷ׆ಈΛ௨ͯ͠มΘͬͨ͜ͱɺมΘ͍ͬͯͳ͍͜ͱ
    ࣗ෼ͷڵຯʹରͯ͠ૉ௚ʹɺ΍Γ͍ͨ͜ͱΛ΍Δ
    ແཧ͠ͳ͍Ͱࣗ༝ʹΠϯϓοτɾΞ΢τϓοτ
    ΩϟϦΞʹϓϥεʹͳΔ͜ͱ΁ͷϞνϕʔγϣϯ΋͋Δ

    View Slide

  43. ࠓ೔͸ʜ
    ಉ͡τϐοΫͰ੝Γ্͕ΕΔ஥ؒΛݟ͚ͭΔ
    ʮ͋ͷਓʹ͜ͷ࿩Λฉ͔ͤΕͨΒʯΛ૝૾͢Δ
    ೋݩ࿦Ͱଊ͑ͳ͍

    View Slide

  44. 5IBOLZPV

    View Slide