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

phper-monitoring

 phper-monitoring

soudai sone

March 10, 2018
Tweet

More Decks by soudai sone

Other Decks in Technology

Transcript

  1. ࠓ͔ΒͰ΋ग़དྷΔ!
    WebαʔϏεϞχλϦϯά!!
    1)1FS,BJHJ

    View full-size slide

  2. ࠓ͔ΒͰ΋ग़དྷΔ!
    WebαʔϏεϞχλϦϯά!!
    1)1FS,BJHJ

    View full-size slide

  3. ಉҰͷ಺༰Ͱ͸͋Γ·ͤΜ

    View full-size slide

  4. PHPerͷͨΊͷ
    WebαʔϏεϞχλϦϯά!!!
    1)1FS,BJHJ

    View full-size slide

  5. What is it?
    ϞχλϦϯάͯ͠·͔͢ʁ

    View full-size slide

  6. What is it?
    ͳͥϞχλϦϯά͕ඞཁ͔

    View full-size slide

  7. What is it?
    1. ૉૣ͘ো֐ʹؾ෇ͨ͘Ί
    2. ૉૣ͘ো֐ݪҼΛڀ໌͢ΔͨΊ
    3. γεςϜͷৼΔ෣͍Λ༧ଌ͠ɺະવ
    ʹো֐Λ๷͙ͨΊ
    Լʹߦ͘΄ͲΑΓਫ਼౓ͷߴ͍؂ࢹ͕ඞཁ

    View full-size slide

  8. What is it?
    ࠓ೔͸࿩Λ͠ͳ͍͜ͱ

    View full-size slide

  9. What is it?
    γεςϜϝτϦοΫεͷ࿩
    ʢCPUͱ͔Memoryͷ஋ͷݟํʣ

    View full-size slide

  10. http://soudai.hatenablog.com/entry/2017/09/26/080117

    View full-size slide

  11. What is it?
    σʔλϕʔεͷ؂ࢹͷ࿩

    View full-size slide

  12. ݕࡧϫʔυ
    ͦʔ͍ͩͳΔΒ͕͖͘ா
    ʴ
    PostgreSQLͷ؂ࢹ
    MySQLͷ؂ࢹ
    InnoDBͷ؂ࢹ

    View full-size slide

  13. What is it?
    ࠓ೔͓࿩͢Δ͜ͱ

    View full-size slide

  14. What is it?
    WebαʔϏεʴPHPͷ؂ࢹ

    View full-size slide

  15. ࠓ͔ΒͰ΋ग़དྷΔ!
    WebαʔϏεϞχλϦϯά!!!

    View full-size slide

  16. ͋͐͡Μͩ
    ̍ɹࣗݾ঺հ
    ̎ɹWebαʔϏεΛݟΔ
    ̏ɹϞχλϦϯάͷצॴ
    ̐ɹPHPͷϞχλϦϯά
    ̑ɹ·ͱΊ

    View full-size slide

  17. ͋͐͡Μͩ
    ̍ɹࣗݾ঺հ
    ̎ɹWebαʔϏεΛݟΔ
    ̏ɹϞχλϦϯάͷצॴ
    ̐ɹPHPͷϞχλϦϯά
    ̑ɹ·ͱΊ

    View full-size slide

  18. ࣗݾ঺հ
    ໊લɿીࠜɹ૖େʢͦͶɹ͚ͨͱ΋ʣ
    ೥ྸɿ33ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ
    ৬ۀɿCustomer Reliability Engineering
    ॴଐɿגࣜձࣾ ͸ͯͳʢMackerelνʔϜʣ
    ɹɹɹ೔ຊPostgreSQLϢʔβձ
    ɹɹɹɹɹɹ ษڧձ୲౰
    ɹɹٕज़తʹ͸LLܥݴޠͱ͔RDB͕޷͖Ͱ͢

    View full-size slide

  19. ࣗݾ঺հ
    ໊લɿીࠜɹ૖େʢͦͶɹ͚ͨͱ΋ʣ
    ೥ྸɿ33ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ
    ৬ۀɿCustomer Reliability Engineering
    ॴଐɿגࣜձࣾ ͸ͯͳʢMackerelνʔϜʣ
    ɹɹɹ೔ຊPostgreSQLϢʔβձ
    ɹɹɹɹɹɹ ษڧձ୲౰
    ɹɹٕज़తʹ͸LLܥݴޠͱ͔RDB͕޷͖Ͱ͢

    View full-size slide

  20. ͸ͯͳ͸஥ؒΛ୳ͯ͠·͢
    curl -sIL mackerel.io | grep engineer

    View full-size slide

  21. ͸ͯͳ͸஥ؒΛ୳ͯ͠·͢
    curl -sIL mackerel.io | grep engineer
    ͜Εͩͱ$3&ग़ͯ͜ͳ͍ͷͰHSFQDSF͍ͯͩ͘͠͞ʂʂ

    View full-size slide

  22. ͋͐͡Μͩ
    ̍ɹࣗݾ঺հ
    ̎ɹWebαʔϏεΛݟΔ
    ̏ɹPHPͷϞχλϦϯά
    ̐ɹϞχλϦϯάͷצॴ
    ̑ɹ·ͱΊ

    View full-size slide

  23. WebαʔϏεΛݟΔ
    8FCαʔϏε͸ੜ͖෺

    View full-size slide

  24. WebαʔϏεΛݟΔ
    8FCαʔϏε͸ੜ͖෺
    ˣ
    ͔ͩΒৗʹมԽ͍ͯ͠Δ

    View full-size slide

  25. WebαʔϏεΛݟΔ
    8FCαʔϏε͸೉͍͠

    View full-size slide

  26. WebαʔϏεΛݟΔ
    8FCαʔϏε͸೉͍͠
    ˣ
    ৭ΜͳཁૉͷӨڹΛड͚Δ

    View full-size slide

  27. WebαʔϏεΛݟΔ
    ͔ͩΒϞχλϦϯά͕ඞཁ

    View full-size slide

  28. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ

    View full-size slide

  29. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ

    View full-size slide

  30. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ
    ࠷΋Θ͔Γ΍͍͢ྖҬ
    ϞχλϦϯά͢Δ͜ͱͰαʔϏεͷঢ়ଶΛ஌Δ

    View full-size slide

  31. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ
    ࠷΋Θ͔Γ΍͍͢ྖҬ
    ϞχλϦϯά͢Δ͜ͱͰαʔϏεͷঢ়ଶΛ஌Δ
    ϞχλϦϯάʹΑΔޮՌ͕ग़΍͍͢

    View full-size slide

  32. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ

    View full-size slide

  33. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ
    ίϯτϩʔϧͰ͖Δ͕ҙਤ͠ͳ͍͜ͱ΋ଟ͍

    View full-size slide

  34. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ
    ίϯτϩʔϧͰ͖Δ͕ҙਤ͠ͳ͍͜ͱ΋ଟ͍
    ϞχλϦϯά͠ͳ͍ͱݪҼ௥ٻग़དྷͳ͍

    View full-size slide

  35. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ

    View full-size slide

  36. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ
    զʑͰ͸ίϯτʔϧग़དྷͳ͍ྖҬ

    View full-size slide

  37. %/4
    #(1
    *41
    WebαʔϏεΛݟΔ
    αʔό
    ωοτϫʔΫ
    ΞϓϦέʔγϣϯ
    ௨৴͸ৗʹԟདྷ͍ͯ͠Δ
    ΫϥΠΞϯτ Πϯλʔωοτ αʔόαΠυ
    զʑͰ͸ίϯτʔϧग़དྷͳ͍ྖҬ
    ͔ͩΒͦ͜ϞχλϦϯά͕େࣄ

    View full-size slide

  38. WebαʔϏεΛݟΔ
    αʔόαΠυ
    w 04
    w ωοτϫʔΫ
    w ϛυϧ΢ΣΞ
    w ΞϓϦέʔγϣϯʜFUD

    View full-size slide

  39. WebαʔϏεΛݟΔ
    ΞϓϦέʔγϣϯ
    w ϓϩηε
    w εϨου
    w 'SBNFXPSL
    w ϩδοΫʜFUD

    View full-size slide

  40. WebαʔϏεΛݟΔ
    ΫϥΠΞϯταΠυ
    w ϒϥ΢β
    w +BWB4DSJQU
    w ϓϩτίϧ
    w ωοτϫʔΫʜFUD

    View full-size slide

  41. WebαʔϏεΛݟΔ
    Πϯλʔωοτ
    w ϨΠςϯγʔ
    w εϧʔϓοτ
    w ϨεϙϯεʜFUD

    View full-size slide

  42. WebαʔϏεΛݟΔ
    ͦΕͧΕͷৼΔ෣͍ΛՄࢹԽ͢Δ

    View full-size slide

  43. WebαʔϏεΛݟΔ

    View full-size slide

  44. WebαʔϏεΛݟΔ
    8FCαʔϏε͸ੜ͖෺

    View full-size slide

  45. WebαʔϏεΛݟΔ
    8FCαʔϏε͸ੜ͖෺
    ˣ
    αʔϏεࣗମ΋ՄࢹԽ͢Δ

    View full-size slide

  46. WebαʔϏεΛݟΔ
    αʔϏεͷՄࢹԽ
    w 17΍๚໰਺
    w μ΢ϯϩʔυ਺
    w Ϣʔβͷར༻ྔ
    w Ϋϥ΢υྉۚͷ՝ۚྔʜFUD

    View full-size slide

  47. WebαʔϏεΛݟΔ

    View full-size slide

  48. WebαʔϏεΛݟΔ
    αʔϏεͷมԽ͸
    γεςϜͷมԽͱ૬ؔ

    View full-size slide

  49. WebαʔϏεΛݟΔ
    ͔ͩΒ8FCαʔϏεΛݟΔ

    View full-size slide

  50. WebαʔϏεΛݟΔ
    ͔ͩΒ8FCαʔϏεΛݟΔ
    ˣ
    ϞχλϦϯά͢Δ

    View full-size slide

  51. ͋͐͡Μͩ
    ̍ɹࣗݾ঺հ
    ̎ɹWebαʔϏεΛݟΔ
    ̏ɹϞχλϦϯάͷצॴ
    ̐ɹPHPͷϞχλϦϯά
    ̑ɹ·ͱΊ

    View full-size slide

  52. ϞχλϦϯάͷצॴ
    ஌Γ͍ͨ͜ͱ͸Կͳͷ͔ʁ

    View full-size slide

  53. ϞχλϦϯάͷצॴ
    ஌Γ͍ͨ͜ͱ͸Կͳͷ͔ʁ
    ˣ
    αʔϏε͕ਖ਼͘͠ಈ͍͍ͯΔ͔

    View full-size slide

  54. ϞχλϦϯάͷצॴ
    γεςϜͷϞχλϦϯά͸
    ϦιʔεΛਖ਼͘͠࢖͑ͯΔ͔

    View full-size slide

  55. ϞχλϦϯάͷצॴ
    γεςϜͷϞχλϦϯά͸
    ϦιʔεΛਖ਼͘͠࢖͑ͯΔ͔
    Ϧιʔε͕ෆ଍ͯ͠΋༨Βͯ͠΋ବ໨

    View full-size slide

  56. ϞχλϦϯάͷצॴ
    ҙਤ͠ͳ͍ڍಈʹؾ෇͘

    View full-size slide

  57. ϞχλϦϯάͷצॴ
    αʔϏεͷมԽͷػඍʹؾ෇͘

    View full-size slide

  58. ϞχλϦϯάͷצॴ
    αʔϏεͷมԽͷػඍʹؾ෇͘
    ˣ
    มԽͷࠩ෼͕͋Δ͔Βؾ෇͚Δ

    View full-size slide

  59. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩγεςϜͷՄࢹԽ
    w ࣮ߦCBUDIͷδϣϒ਺
    w Ωϡʔ਺
    w อଘ͞ΕͯΔը૾਺
    w %/4΍/51ͷঢ়ଶ

    View full-size slide

  60. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩαʔϏεͷՄࢹԽ
    w ϢʔβͷϓϨΠঢ়گ
    w Πϯετʔϧ͞Εͨ04
    w Ϣʔβͷݕࡧϫʔυ
    w ਃ͠ࠐΈϘλϯͷΫϦοΫ਺

    View full-size slide

  61. ϞχλϦϯάͷצॴ
    γεςϜͷঢ়ଶΛՄࢹԽ͢Δ

    View full-size slide

  62. ϞχλϦϯάͷצॴ
    αʔϏεͷৼΔ෣͍ΛՄࢹԽ͢Δ

    View full-size slide

  63. ϞχλϦϯάͷצॴ
    ୭΋ݟͳ͍άϥϑʹҙຯ͸ແ͍

    View full-size slide

  64. ͋͐͡Μͩ
    ̍ɹࣗݾ঺հ
    ̎ɹWebαʔϏεΛݟΔ
    ̏ɹϞχλϦϯάͷצॴ
    ̐ɹPHPͷϞχλϦϯά
    ̑ɹ·ͱΊ

    View full-size slide

  65. PHPͷϞχλϦϯά
    1)1ͷৼΔ෣͍Λ஌Δ

    View full-size slide

  66. PHPͷϞχλϦϯά
    1)1ͷৼΔ෣͍Λ஌Δ
    ˣ
    ਖ਼͠͞Λ஌Βͳ͍ͱ
    ؒҧ͍ʹؾ෇͚ແ͍

    View full-size slide

  67. PHPͷϞχλϦϯά
    1)1ͷ࢓૊ΈΛ஌Δ

    View full-size slide

  68. PHPͷϞχλϦϯά
    ϓϩηεͱ1)1

    View full-size slide

  69. PHPͷϞχλϦϯά
    Πϕϯτͱ1)1

    View full-size slide

  70. PHPͷϞχλϦϯά
    ೥8FCαʔόΞʔΩςΫνϟং࿦
    Ώ͏͏͖ϒϩά
    IUUQCMPHZVVLJPFOUSZXFCTFSWFSBSDIJUFDUVSF

    View full-size slide

  71. PHPͷϞχλϦϯά
    1)1ͱΩϟογϡ

    View full-size slide

  72. PHPͷϞχλϦϯά
    01$BDIFͱ"1$V

    View full-size slide

  73. PHPͷϞχλϦϯά
    01$BDIFίʔυΩϟογϡ
    "1$VσʔλΩϟογϡ

    View full-size slide

  74. PHPͷϞχλϦϯά
    Ͳ͏΍ͬͯݟΔ͔ʁ

    View full-size slide

  75. PHPͷϞχλϦϯά
    "1$Vίϯτϩʔϧύωϧ
    IUUQTHJUIVCDPNLSBLKPFBQDV

    View full-size slide

  76. PHPͷϞχλϦϯά
    0QDBDIF$POUSPM1BOFM
    IUUQTHJTUHJUIVCDPNDLPO

    View full-size slide

  77. PHPͷϞχλϦϯά
    "QBDIF
    "QBDIF4FSWFS4UBUVT

    View full-size slide

  78. PHPͷϞχλϦϯά
    /(*/9
    OHJOY@TUBUVT

    View full-size slide

  79. PHPͷϞχλϦϯά
    ݕࡧϫʔυ
    ͦʔ͍ͩͳΔམॻ͖ா
    ʴ
    "QBDIFcc/(*/9
    ͷ؂ࢹ

    View full-size slide

  80. PHPͷϞχλϦϯά
    ͜ΕΒͷαʔϏεΛݟΔ

    View full-size slide

  81. PHPͷϞχλϦϯά
    ͜ΕΒͷαʔϏεΛݟΔ
    ˣ
    ৗʹݟଓ͚ΔΘ͚ʹ͸ߦ͔ͳ͍

    View full-size slide

  82. PHPͷϞχλϦϯά
    ࣌ܥྻͰσʔλΛ࣋ͭ

    View full-size slide

  83. PHPͷϞχλϦϯά
    ࣌ܥྻͰσʔλΛ࣋ͭ
    ˣ
    ͦͷมԽΛఆظతʹݟΔ

    View full-size slide

  84. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩγεςϜͷՄࢹԽ
    w ࣮ߦCBUDIͷδϣϒ਺
    w Ωϡʔ਺
    w อଘ͞ΕͯΔը૾਺
    w %/4΍/51ͷঢ়ଶ

    View full-size slide

  85. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩγεςϜͷՄࢹԽ
    w ࣮ߦCBUDIͷδϣϒ਺
    w Ωϡʔ਺
    w อଘ͞ΕͯΔը૾਺
    w %/4΍/51ͷঢ়ଶ
    1)1͕࢖͏ϝϞϦྔ΍࣮ߦ࣌ؒ΋ؾʹͳΔ

    View full-size slide

  86. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩγεςϜͷՄࢹԽ
    w ࣮ߦCBUDIͷδϣϒ਺
    w Ωϡʔ਺
    w อଘ͞ΕͯΔը૾਺
    w %/4΍/51ͷঢ়ଶ
    ը૾αΠζͷ߹ܭ͕NFNPSZ@MJNJUʹऩ·Δʁ

    View full-size slide

  87. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩαʔϏεͷՄࢹԽ
    w ϢʔβͷϓϨΠঢ়گ
    w Πϯετʔϧ͞Εͨ04
    w Ϣʔβͷݕࡧϫʔυ
    w ਃ͠ࠐΈϘλϯͷΫϦοΫ਺

    View full-size slide

  88. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩαʔϏεͷՄࢹԽ
    w ϢʔβͷϓϨΠঢ়گ
    w Πϯετʔϧ͞Εͨ04
    w Ϣʔβͷݕࡧϫʔυ
    w ਃ͠ࠐΈϘλϯͷΫϦοΫ਺
    "QBDIFͷNBYDMJFOUT͸௒͑ͳ͍ʁ

    View full-size slide

  89. ϞχλϦϯάͷצॴ
    ౿ΈࠐΜͩαʔϏεͷՄࢹԽ
    w ϢʔβͷϓϨΠঢ়گ
    w Πϯετʔϧ͞Εͨ04
    w Ϣʔβͷݕࡧϫʔυ
    w ਃ͠ࠐΈϘλϯͷΫϦοΫ਺
    ͲΕ͘Β͍ͷ42-͕࣮ߦ͞ΕΔʁ

    View full-size slide

  90. PHPͷϞχλϦϯά
    1)1ͱαʔϏεͷৼΔ෣͍͸
    දཪҰମ

    View full-size slide

  91. PHPͷϞχλϦϯά
    ͔ͩΒͦ͜ϞχλϦϯά͢Δ

    View full-size slide

  92. ͋͐͡Μͩ
    ̍ɹࣗݾ঺հ
    ̎ɹWebαʔϏεΛݟΔ
    ̏ɹϞχλϦϯάͷצॴ
    ̐ɹPHPͷϞχλϦϯά
    ̑ɹ·ͱΊ

    View full-size slide

  93. ·ͱΊ
    ·ͣ͸ՄࢹԽΛ͢Δ

    View full-size slide

  94. ·ͱΊ
    μΠΤοτ΋ମॏܭʹ৐Δ͠ɺ
    ݈߁਍அ΋݂ѹͳͲΛܭଌ͢Δ

    View full-size slide

  95. ·ͱΊ
    μΠΤοτ΋ମॏܭʹ৐Δ͠ɺ
    ݈߁਍அ΋݂ѹͳͲΛܭଌ͢Δ
    8FCαʔϏε΋Ұॹ

    View full-size slide

  96. ·ͱΊ
    ਪଌΑΓܭଌ

    View full-size slide

  97. ·ͱΊ
    ਪଌΑΓܭଌ

    ܭଌΑΓ؍ଌ

    View full-size slide

  98. ·ͱΊ
    ࣄ࣮ΛΑΓଟ͘ɺਖ਼͘͠஌Δ͜ͱͰ
    ະདྷΛਖ਼͘͠༧ଌͰ͖Δ

    View full-size slide

  99. https://papix.hatenablog.com/entry/2018/03/03/112532

    View full-size slide

  100. ·ͱΊ
    ΤϯδχΞʹ͸ࠜڌ͕ඞཁ

    View full-size slide

  101. ·ͱΊ
    ΤϯδχΞʹ͸ࠜڌ͕ඞཁ

    ͳΜͱͳ͘Ͱ࢓ࣄ͸ग़དྷͳ͍

    View full-size slide

  102. ·ͱΊ
    ςετίʔυ͸ϓϩάϥϜͷ඼࣭ͷՄࢹԽ
    ϞχλϦϯά͸αʔϏεͷ඼࣭ͷՄࢹԽ

    View full-size slide

  103. ·ͱΊ
    lߴ౓ʹൃୡͨ͠γεςϜͷҟৗ͸
    ਆͷౖΓͱݟ෼͚͕͔ͭͳ͍z
    ŠZ@VVLJ

    View full-size slide

  104. ·ͱΊ
    ମॏܭʹ৐Δ͚ͩͰ͸૫ͤͳ͍

    View full-size slide

  105. ·ͱΊ
    ମॏܭʹ৐Δ͚ͩͰ͸૫ͤͳ͍

    ඼࣭ΛՄࢹԽ͚ͨͩ͠Ͱ͸վળ͸͞Εͳ͍

    View full-size slide

  106. ·ͱΊ
    ΠνϩʔͷόοτΛ࢖ͬͯ΋
    Πνϩʔʹ͸ͳΕͳ͍

    View full-size slide

  107. ·ͱΊ
    lखΛಈ͔ͨ͠ਓ͚͕ͩੈքΛม͑Δz
    Š:BTVIJSP0OJTIJ

    View full-size slide

  108. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View full-size slide