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

PHPアプリケーションだってモニタリングしたい / Monitoring PHP application

PHPアプリケーションだってモニタリングしたい / Monitoring PHP application

PHPConference 2021での発表資料です。

F075c5dfe92334b5031d4da5dc0c9251?s=128

Yuichi Sugiyama

October 02, 2021
Tweet

Transcript

  1. PHPΞϓϦέʔγϣϯͩͬͯ 
 ϞχλϦϯά͍ͨ͠ɻ PHPConference 2021 αΠϘ΢ζגࣜձࣾɹਿࢁ ༞Ұ @oogFranz #phpcon2021 #track3

    
 Discord Channel: #track3-2-a-php-monitor
  2. Whoami • ਿࢁ ༞Ұ @oogFranz • αΠϘ΢ζ7೥໨ΤϯδχΞ • େاۀ޲͚άϧʔϓ΢ΣΞGaroon(Ψϧʔϯ) ࡞ͬͯΔ

    • ෳۀδϟζϛϡʔδγϟϯ@MASHݭָஂ 
  3. αΠϘ΢ζ Garoon • େاۀ޲͚ͷάϧʔϓ΢ΣΞ • ੜ࢈ੑɾνʔϜϫʔΫ޲্ͷࢧԉ • ύοέʔδ൛ͱΫϥ΢υ൛͕͋Δ 

  4. We're sorry for...

  5. We're sorry for... • ো֐ʹͯ͝໎࿭Λ͓͔͚ͨ͠Έͳ͞·ɺ͝ΊΜͳ͍͞ • ؂ࢹɾରࡦɾௐࠪɾମ੍Λ೔ʑվળ • վળ͸·ͩ·ͩಓ൒͹ •

    αΠϘ΢ζͱGaroonΛ຤௕͘ΑΖ͓͘͠ئ͍͠·͢ • ͜ͷൃද಺ͷάϥϑ΍ίʔυ͸ɺ಺෦৘ใΛؚ·ͳ͍Α͏ʹ͢ΔͨΊɺ 
 ·ͨઆ໌ͷͨΊʹɺ࣮ࡍͷ΋ͷͱ͸Ұ෦ҟͳΔ఺͕͋Γ·͢ɻ
  6. cybozu.comͷαϒυϝΠϯ  mash.cybozu.com bluegrass.cybozu.com banana.cybozu.com monopockle.cybozu.com

  7. cybozu.comͷαϒυϝΠϯ  mash.cybozu.com bluegrass.cybozu.com banana.cybozu.com monopockle.cybozu.com Ϣʔβʔ͝ͱʹαϒυϝΠϯΛ෼͚ΒΕΔ

  8. cybozu.comͷߏ੒ • ΞϓϦέʔγϣϯΛෳ਺ͷαʔόʔ(VM)Ͱಈ͔͍ͯ͠Δ 
 ʢΞϓϦέʔγϣϯɾσʔλϕʔεɾϑΝΠϧɾetc.ʣ • Ϛϧνςφϯτͷߏ੒ • ෳ਺ͷαʔόʔͷηοτͰෳ਺ͷυϝΠϯΛಈ͔͍ͯ͠Δ 

  9. cybozu.comͷαϒυϝΠϯ 9 mash.cybozu.com bluegrass.cybozu.com banana.cybozu.com monopockle.cybozu.com /HJOY͕֤αΠϘ΢ζ੡඼ʹϦόʔεϓϩΩγ͍ͯ͠Δ

  10. cybozu.comͷαϒυϝΠϯ  mash.cybozu.com bluegrass.cybozu.com banana.cybozu.com monopockle.cybozu.com ো֐ൃੜʂ

  11. cybozu.comͷαϒυϝΠϯ  mash.cybozu.com bluegrass.cybozu.com banana.cybozu.com monopockle.cybozu.com ো֐ൃੜʂ ো֐͕ൃੜ͢ΔͱͲ͏ͳΔʁ

  12. Ϣʔβʔ͔Β ి࿩͕͘Δ

  13. Ϣʔβʔ͔Βి࿩Λ͍ͨͩ͘·Ͱ  ΤϯυϢʔβʔ ؅ཧऀ ΧελϚʔαϙʔτ ։ൃνʔϜ αΠϘ΢ζ Ϣʔβʔاۀ ো֐ൃੜʂ

  14. Ϣʔβʔ͔Βి࿩Λ͍ͨͩ͘·Ͱ  ΤϯυϢʔβʔ ؅ཧऀ ΧελϚʔαϙʔτ ։ൃνʔϜ αΠϘ΢ζ Ϣʔβʔاۀ ΤϯυϢʔβʔ͸؅ཧऀʹ͓໰͍߹ΘͤΛ͢Δ

  15. Ϣʔβʔ͔Βి࿩Λ͍ͨͩ͘·Ͱ  ΤϯυϢʔβʔ ؅ཧऀ ΧελϚʔαϙʔτ ։ൃνʔϜ αΠϘ΢ζ Ϣʔβʔاۀ ؅ཧऀ͸αϙʔτʹ͓໰͍߹ΘͤΛ͢Δ

  16. Ϣʔβʔ͔Βి࿩Λ͍ͨͩ͘·Ͱ  ΤϯυϢʔβʔ ؅ཧऀ ΧελϚʔαϙʔτ ։ൃνʔϜ αΠϘ΢ζ Ϣʔβʔاۀ αϙʔτ͸։ൃνʔϜʹΤεΧ͢Δ

  17. ి࿩Ͱো֐ʹؾ͕ͭ͘·Ͱʹ΋ • ΤϯυϢʔβʔ͸࣌ؒΛ͓͍ͯ΋͏Ұ౓ࢼͦ͏ͱߟ͑Δ͔΋͠Εͳ͍ • ؅ཧऀ͸ͨ͘͞ΜͷΤϯυϢʔβʔ͔Βͷ໰͍߹ΘͤΛ·ͱΊͯ͘Ε͍ͯΔ͔΋͠Εͳ͍ • ؅ཧऀ͸ࣗࣾଆͷ໰୊Ͱ͸ͳ͍͔֬ೝ͔ͯ͠Β 
 αϙʔτʹ໰͍߹ΘͤΑ͏ͱߟ͑Δ͔΋͠Εͳ͍ •

    αϙʔτ͸࠶ݱͰ͖Δෆ۩߹͔Λௐࠪ͢Δ͕͔͔࣌ؒΔ • αϙʔτ͸طଘͷෆ۩߹Ͱͳ͍͔Λௐࠪ͢Δ͕͔͔࣌ؒΔ • etc. 
  18. ి࿩Ͱো֐ʹؾ͕ͭ͘·Ͱʹ΋ • ΤϯυϢʔβʔ͸࣌ؒΛ͓͍ͯ΋͏Ұ౓ࢼͦ͏ͱߟ͑Δ͔΋͠Εͳ͍ • ؅ཧऀ͸ͨ͘͞ΜͷΤϯυϢʔβʔ͔Βͷ໰͍߹ΘͤΛ·ͱΊͯ͘Ε͍ͯΔ͔΋͠Εͳ͍ • ؅ཧऀ͸ࣗࣾଆͷ໰୊Ͱ͸ͳ͍͔֬ೝ͔ͯ͠Β 
 αϙʔτʹ໰͍߹ΘͤΑ͏ͱߟ͑Δ͔΋͠Εͳ͍ •

    αϙʔτ͸࠶ݱͰ͖Δෆ۩߹͔Λௐࠪ͢Δ͕͔͔࣌ؒΔ • αϙʔτ͸طଘͷෆ۩߹Ͱͳ͍͔Λௐࠪ͢Δ͕͔͔࣌ؒΔ • etc.  ։ൃνʔϜ͕ো֐ʹؾ͕ͭ͘·Ͱʹ͸λΠϜϥά͕ൃੜ͢Δ
  19. ো֐ʹؾ͕ͭ͘ͷ͕஗ΕΕ͹ • ରԠ͸஗ΕΔ • ෮چ·Ͱͷ࣌ؒ΋ԆͼΔ • ಉ͡ো֐ʹ౰ͨΔϢʔβʔ͕૿͑Δ • ໰͍߹Θͤ΋ͦͷ෼૿͑Δ •

    ॳΊʹো֐ʹ௚໘ͨ͠Ϣʔβʔ͸ͣͬͱαʔϏε͕ར༻Ͱ͖ͳ͍ 
  20. ো֐ʹؾ͕ͭ͘ͷ͕஗ΕΕ͹ • ରԠ͸஗ΕΔ • ෮چ·Ͱͷ࣌ؒ΋ԆͼΔ • ಉ͡ো֐ʹ౰ͨΔϢʔβʔ͕૿͑Δ • ໰͍߹Θͤ΋ͦͷ෼૿͑Δ •

    ॳΊʹো֐ʹ௚໘ͨ͠Ϣʔβʔ͸ͣͬͱαʔϏε͕ར༻Ͱ͖ͳ͍  ࣄޙରԠͰϢʔβʔʹ໎࿭Λ͔͚ͯ͠·͏
  21. ো֐ʹؾ͕ͭ͘ͷ͕஗ΕΕ͹ • ରԠ͸஗ΕΔ • ෮چ·Ͱͷ࣌ؒ΋ԆͼΔ • ಉ͡ো֐ʹ౰ͨΔϢʔβʔ͕૿͑Δ • ໰͍߹Θͤ΋ͦͷ෼૿͑Δ •

    ॳΊʹো֐ʹ௚໘ͨ͠Ϣʔβʔ͸ͣͬͱαʔϏε͕ར༻Ͱ͖ͳ͍  αʔϏεΛ؂ࢹͯ͠ɺো֐ʹઌʹૣ͘ؾ͕ͭ͜͏
  22. ͦ΋ͦ΋ো֐ͱ͸ʁ

  23. Ϣʔβʔ໨ઢͰͷো֐ͷ෼ྨ • ར༻Ͱ͖ͳ͍ൣғ • ͳʹ΋͔ͭ͑ͳ͍ • ಛఆͷػೳͷΈ • ಛఆͷૢ࡞ͷΈ •

    ಛఆͷ࣌ؒଳͷΈ  • ར༻Ͱ͖ͳ͍ঢ়گ • ϨεϙϯελΠϜ͕஗͍ • Τϥʔ͕ฦͬͯ͘Δ • εϧʔϓοτ͕Ͱͳ͍ • ૝ఆͨ͠ಈ࡞͕ฦͬͯ͜ͳ͍
  24. ։ൃ໨ઢͰͷো֐ͷ෼ྨ • ൃੜൣғ • શαʔϏε • ಛఆαʔόʔ • ಛఆυϝΠϯ •

    ಛఆϢʔβʔ  • ൃੜݪҼ • ϋʔυ΢ΣΞো֐ʢߴෛՙɾαʔόμ΢ϯʣ • ιϑτ΢ΣΞো֐ʢෆ۩߹ɾ࢓༷ɾ૝ఆ֎ͷར༻ʣ • σʔλىҼͷো֐ • ࡞ۀϛε
  25. ো֐ͱҰޱʹݴͬͯ΋ • Ͳͷঢ়ଶ͕ো֐ʹͳΔ͔͸αʔϏεʹΑͬͯҟͳΔ • ϞχλʔɾϩάɾϝτϦΫε΁ͷݱΕํ΋ҟͳΔ 

  26. ো֐ͱҰޱʹݴͬͯ΋ • Ͳͷঢ়ଶ͕ো֐ʹͳΔ͔͸αʔϏεʹΑͬͯҟͳΔ • ϞχλʔɾϩάɾϝτϦΫε΁ͷݱΕํ΋ҟͳΔ  ݕ஌͍ͨ͠ো֐ʹ߹Θͤͯ؂ࢹΛ࢝ΊΑ͏

  27. SLO (Service Level Objective) • cybozu.comʹ͸Քಇ཰99.99%ͱ͍͏SLO͕͋Δɻ • ͔͠͠ͳ͕ΒɺGaroonϨϕϧͰ͸SLO͸ͳ͔ͬͨ • ʮGaroon͕஗͍ʯͱ͍͏͓໰͍߹Θ͕ͤ͋ͬͯ΋ɺ

    
 ো֐ͳͷ͔ͷ൑அ͕͙͢ʹͰ͖ͳ͍ɻ • SRE΍αϙʔτɺӦۀͱ͍ͬͨଞͷνʔϜͱ΋ɺ 
 Ͳͷ͘Β͍ٸ͍ͰରԠ͢΂͖͔ɺͷೝ͕ࣝἧ͑ΒΕͳ͍  https://www.cybozu.com/jp/infrastructure/slo.html
  28. ʮຖே࢝ۀ௚ޙʹϝʔϧΛ։͜͏ͱ͢ΔͱɺҰ෦ͷࣾһ͚ͩ 
 ΊͪΌͪ͘Ό஗͘ͳΔͷ͚ͩͲʯ  ྫ͑͹͜Μͳ͓໰͍߹Θͤ

  29. ʮຖே࢝ۀ௚ޙʹϝʔϧΛ։͜͏ͱ͢ΔͱɺҰ෦ͷࣾһ͚ͩ 
 ΊͪΌͪ͘Ό஗͘ͳΔͷ͚ͩͲʯ  ྫ͑͹͜Μͳ͓໰͍߹Θͤ ಛఆͷ࣌ؒଳͷΈ

  30. ʮຖே࢝ۀ௚ޙʹϝʔϧΛ։͜͏ͱ͢ΔͱɺҰ෦ͷࣾһ͚ͩ 
 ΊͪΌͪ͘Ό஗͘ͳΔͷ͚ͩͲʯ  ྫ͑͹͜Μͳ͓໰͍߹Θͤ ಛఆͷ࣌ؒଳͷΈ ಛఆͷૢ࡞ͷΈ

  31. ʮຖே࢝ۀ௚ޙʹϝʔϧΛ։͜͏ͱ͢ΔͱɺҰ෦ͷࣾһ͚ͩ 
 ΊͪΌͪ͘Ό஗͘ͳΔͷ͚ͩͲʯ  ಛఆͷ࣌ؒଳͷΈ ಛఆͷૢ࡞ͷΈ ಛఆͷϢʔβʔͷΈ ྫ͑͹͜Μͳ͓໰͍߹Θͤ

  32. ಛఆͷૢ࡞ͷΈ ಛఆͷ࣌ؒଳͷΈ ʮຖே࢝ۀ௚ޙʹϝʔϧΛ։͜͏ͱ͢ΔͱɺҰ෦ͷࣾһ͚ͩ 
 ΊͪΌͪ͘Ό஗͘ͳΔͷ͚ͩͲʯ  ಛఆͷϢʔβʔͷΈ ϨεϙϯελΠϜ͕஗͍ ྫ͑͹͜Μͳ͓໰͍߹Θͤ

  33. ಛఆͷૢ࡞ͷΈ ಛఆͷ࣌ؒଳͷΈ ʮຖே࢝ۀ௚ޙʹϝʔϧΛ։͜͏ͱ͢ΔͱɺҰ෦ͷࣾһ͚ͩ 
 ΊͪΌͪ͘Ό஗͘ͳΔͷ͚ͩͲʯ  ಛఆͷϢʔβʔͷΈ ϨεϙϯελΠϜ͕஗͍ ྫ͑͹͜Μͳ͓໰͍߹Θͤ ΞΫηεϩάͰ൑ผ͸Ͱ͖ͦ͏

  34. cybozu.comͷΞΫηεϩά • ϩάͷղੳʹ෼ࢄΫΤϦΤϯδϯͷPresto Λ • UIͰΫΤϦΛ࣮ߦ͢ΔͨΊ Redash Λར༻͍ͯ͠Δ  αΠϘ΢ζͷϩάج൫

    2018೥൛ΑΓ https://blog.cybozu.io/entry/2018/03/19/080000
  35. ো֐ൃੜ࣌ͷαʔόʔ͝ͱͷ 
 ϨεϙϯελΠϜͷਪҠΛΈΔ 

  36.  server 11 server 24 server 41 server 59 server

    13 server 21 server 32 server 17 server 12 server 98 ো֐ൃੜ࣌ͷαʔόʔ͝ͱͷ 
 ϨεϙϯελΠϜͷਪҠΛΈΔ
  37.  server 11 server 24 server 41 server 59 server

    13 server 21 server 32 server 17 server 12 server 98 ো֐ൃੜ࣌ͷαʔόʔ͝ͱͷ 
 ϨεϙϯελΠϜͷਪҠΛΈΔ ো֐ͩʂ
  38. • σʔλΛঢॱʹฒ΂ͨͱ͖ʹɺશମͷN ˋͷҐஔʹ͋Δ஋ • ֎Ε஋Λແࢹͯ͠େ෦෼ͷϢʔβʔʹͲ͏͔ͩͬͨΛݟΔͷʹ ޲͍͍ͯΔ • Presto ʹ͸ύʔηϯλΠϧͷ֓ࢉΛૉૣ͘ٻΊΔؔ਺͕͋Δ ύʔηϯλΠϧ

     approx_percentile(response_time, 0.95)
  39. ύʔηϯλΠϧΛͲ͜ʹઃఆ͢Δ͔ʁ • ো֐Λݕ஌͢Δ͚ͩͳΒߴ͍਺஋ͷ΄͏͕ɺݕ஌͠΍͍͢ • γεςϜ͕݈શʹಈ࡞͍ͯ͠Δ͜ͱΛ஌Γ͍ͨͷͰ͋Ε͹ ௿͍਺஋ͷํ͕ద͍ͯ͠Δ͜ͱ΋͋Δ • ࠓͷGaroonͰ͸99%λΠϧͰ30ඵɺ95ˋλΠϧͰ4ඵɺ 85%λΠϧͰ2ඵɺͱ͍͏Α͏ʹઃఆ͍ͯ͠Δ 

  40. ୯७ͳᮢ஋Ͱো֐ΛΈ͚ͭΒΕΔ͔ʁ • ୯७ʹᮢ஋Λ௒͑ͨͱ͜Ζ͔Βো֐Λݕ஌͠Α͏ͱ͢Δ ͱɺِཅੑ͕ଟ͘ͳΔ • ूܭൣғ͕ͤ·͍ͱগ਺ͷΞΫηεʹҾͬுΒΕͯ͠·͏ • ஗͘ͳΓ΍͍͢ΞΫηε΋ଘࡏ͢Δ 

  41. ूܭൣғ • 95%λΠϧͰ͸ूܭൣғʹ20ΞΫηε͔͠ͳ͚Ε͹ɺ 1൪஗͍ΞΫηεͷ஋͕༻͍ΒΕΔ • ूܭൣғ͕ڱ͍ͱɺগͳ͍ΞΫηεʹҾͬுΒΕΔ • ΞΫηε਺͕গͳ͍৔߹͸ͦ΋ͦ΋ແࢹ͢Δͷ΋͋Γ 

  42. Ͳͷ࣌ؒ΢Πϯυ΢෯Ͱूܭ͢Δ͔ʁ • ୹͍΢Πϯυ΢෯Ͱूܭ͢Δɿ • ͢͹΍͘ো֐Λݕ஌Ͱ͖Δ • ॠஅͷো֐΋ݕ஌Ͱ͖Δ • গͳ͍ΞΫηεʹҾͬுΒΕ ΍͍͢

     • ௕͍΢Πϯυ΢෯Ͱूܭ͢Δɿ • ো֐ݕ஌࣌ؒʹϥά͕ͰΔ • ॠஅͷো֐Λݕ஌Ͱ͖ͳ͘ͳΔ • গͳ͍ΞΫηεʹӨڹ͞Εͳ͘ ͳΔ
  43. ूܭൣғ • αʔϏεશମ • αʔόʔ͝ͱ • υϝΠϯ͝ͱ • Ϣʔβʔ͝ͱ 

  44. ूܭൣғ • αʔϏεશମ • αʔόʔ͝ͱ • υϝΠϯ͝ͱ • Ϣʔβʔ͝ͱ 

    খ͍͞ൣғͰͷো֐͕ 
 ݕ஌͠ʹ͍͘ খ͍͞ൣғͰͷো֐͕ 
 ݕ஌Մೳ ϊΠζ͕ଟ͘ͳΔ ϊΠζ͕গͳ͘ͳΔ
  45. ஗͘ͳΓ΍͍͢ΞΫηε • ஗ͯ͘΋໰୊ͷͳ͍ΞΫηε͸͋Δ • ϑΝΠϧΞοϓϩʔυɾμ΢ϯϩʔυ • APIͰͷҰׅऔಘ • CSVॻ͖ग़͠ •

    etc... 
  46. ஗͘ͳΓ΍͍͢ΞΫηε • ஗ͯ͘΋໰୊ͷͳ͍ΞΫηε͸͋Δ • ϑΝΠϧΞοϓϩʔυɾμ΢ϯϩʔυ • APIͰͷҰׅऔಘ • CSVॻ͖ग़͠ •

    etc...  ੑ࣭͝ͱʹผʑʹ؂ࢹ͢Δඞཁ͕͋Δ
  47. ো֐Λ࢒ͣ͞ݕ஌Ͱ͖Δ͔ʁ • ϨεϙϯελΠϜ͸͋͘·Ͱ਺஋ɻ • ݕ஌͍ͨ͠ͷ͸Ϣʔβʔʹෆརӹͳঢ়گ͕ൃੜ͍ͯ͠ ͳ͍͔Ͳ͏͔ • ϢʔβʔͷͨΊʹͳΔ൑அج४͕ඞཁ 

  48. Apple Watch • ߴ৺ഥ਺ɾ௿৺ഥ਺ɾෆنଇͳ৺ഥΛ௨஌ͯ͘͠ΕΔ • ৺๪ࡉಈʹΑΔෆنଇͳ৺ഥΛૣظʹݟ͚ͭΒΕΔ͜ ͱ͕ظ଴Ͱ͖Δ  https://support.apple.com/ja-jp/HT208931

  49. Apple Watch • ߴ৺ഥ਺ɾ௿৺ഥ਺ɾෆنଇͳ৺ഥΛ௨஌ͯ͘͠ΕΔ • ৺๪ࡉಈʹΑΔෆنଇͳ৺ഥΛૣظʹݟ͚ͭΒΕΔ͜ ͱ͕ظ଴Ͱ͖Δ  https://support.apple.com/ja-jp/HT208931

  50. Apple Watch • ߴ৺ഥ਺ɾ௿৺ഥ਺ɾෆنଇͳ৺ഥΛ௨஌ͯ͘͠ΕΔ • ৺๪ࡉಈʹΑΔෆنଇͳ৺ഥΛૣظʹݟ͚ͭΒΕΔ͜ ͱ͕ظ଴Ͱ͖Δ  https://support.apple.com/ja-jp/HT208931 ো֐ݕ஌ʹ͓͍ͯ΋ɺ׬શͳݕ஌͸ͳ͍ͱ೦಄ʹஔ͘ඞཁ͸͋Δ

  51. ো֐ީิΛه࿥  ఆظతʹ3FEBTIͰΫΤϦΛ࣮ߦ ᮢ஋Λӽ͑ͨΞΫηεΛ 
 ো֐ީิͱͯ͠ه࿥

  52. RedashͷRefresh Schedule • Redash ͷΫΤϦΛఆظతʹ 

  53. Garoon PerformanceΞϓϦ 

  54. Garoon PerformanceΞϓϦ  ͲͷαʔόʔͰͲͷ͘Β͍Քಇঢ়گ͕ѱԽ͍ͯ͠Δ͔͕Θ͔Δ

  55. 

  56. ·ͱΊ • αʔόʔϨϕϧͰ͸ͳ͘ΞϓϦέʔγϣϯϨϕϧͰ΋ ؂ࢹΛ͸͡ΊΑ͏ • SLO͸ϢʔβʔͷͨΊʹཱͯΔ • ؂ࢹ͢Δൣғ͸޿͗ͣ͢ɾڱ͗ͣ͢ߦ͓͏ • ো֐͸σʔλΛ΋ͱʹٞ࿦Λ͠Α͏

    
  57. ΤϥʔΛݕ஌ • ϦϦʔε௚ޙʹ৽ͨͳΤϥʔ͕ൃੜ͢Δέʔε͕ଟൃ • Garoon ͸PHPΤϥʔ͕͋Δͱɺ༧ظͤ͵Τϥʔͱ͢Δ • σʔλෆ੔߹ͳͲͰɺ༧ظͤ͵ΤϥʔΛ׬શʹͳ͘͢ͷ͸ ࠔ೉ 9

  58. ΤϥʔͷൃੜΛϩάʹه࿥ • Τϥʔൃੜ࣌͸ Header ʹ Τϥʔ൪߸Λه࿥ • Nginx ͰΞΫηεϩάʹు͘Α͏ʹ͢Δ •

    RedashͰͷղੳ͕ՄೳʹͳΔ 9
  59. ৽ͨͳΤϥʔΛݕ஌ 9 ఆظతʹΫΤϦΛ࣮ߦ ͍··Ͱݕ஌ͨ͜͠ͱͷͳ͍ 
 Τϥʔ͕͋ͬͨΒLJOUPOFʹొ࿥