Save 37% off PRO during our Black Friday Sale! »

ピクシブ新広告サーバー構築物語

 ピクシブ新広告サーバー構築物語

ピクシブ2014夏インターン講義資料
構成だけでなく失敗談なども書いてあります

C0ac34dd3f585ed25b2f79857e5b174d?s=128

Kaneko Tatsuya

September 05, 2014
Tweet

Transcript

  1. ϐΫγϒ৽޿ࠂαʔόʔ ߏங෺ޠ ʙԿΛߟ͑ɼԿͱઓͬͨͷ͔ʙ ϐΫγϒΠϯϑϥDBUBUTVZ

  2. ࣗݾ঺հ w DBUBUTVZͱ͍͏*%ͰΠϯλʔωοτ্Ͱ׆ಈ w ΧλπΠͱ͔ͬͯݺ͹Ε͍ͯΔ w ౦ژ޻ۀେֶ޻ֶ෦৘ใ޻ֶՊଔۀ w ʹେֶΛଔۀޙʹϐΫγϒೖࣾ w

    ΠϯϑϥͰमߦத w ࠓ೥ͷ৽ଔ w ޿ࠂαʔόʔͷΠϯϑϥ୲౰ʹ
  3. ࠓ೔࿩͢͜ͱ w ϐΫγϒ͕৽޿ࠂαʔόʔΛ࡞ͬͨཧ༝ w ϐΫγϒ৽޿ࠂαʔόʔͷ։ൃͱឯ༨ۂં w ϐΫγϒ৽޿ࠂ഑৴αʔόʔΠϯϑϥશମ૾ w ϐΫγϒ৽޿ࠂαʔόʔσϓϩΠ w

    ϐΫγϒ৽޿ࠂαʔόʔ؂ࢹํ๏
  4. ৽޿ࠂαʔόʔ։ൃϝϯόʔʢਓʣ CBTI$ ؅ཧɾ഑৴αʔόʔϓϩτλΠϓ࡞੒ ؅ཧɾ഑৴αʔόʔ։ൃ୲౰ QJYJWͷ։ൃ΋૯ׅ 3BJMTΤϯδχΞ ؅ཧαʔόʔ։ൃ୲౰ DBUBUTVZʢࣗ෼ʣ ؅ཧαʔόʔΠϯϑϥ୲౰ ഑৴αʔόʔ։ൃɾΠϯϑϥ୲౰

    ͳ͔ͥ؅ཧαʔόʔͷ+4΋ॻ͍ͨ
  5. ޿ࠂαʔόʔಛ௃ w ؅ཧαʔόʔͱ഑৴αʔόʔͷ͕ͭ͋Δ w ؅ཧαʔόʔ͸ϚʔένʔϜ͕޿ࠂΛೖߘ͢Δ w ഑৴αʔόʔ͸ೖߘ͞Εͨ޿ࠂΛ഑৴ͯ͠ΠϯϓϨογϣϯ ਺ʢදࣔ਺ʣͱΫϦοΫ਺Λܭଌ͢Δ w ഑৴αʔόʔ͸গͳ͍αʔόʔ୆਺ͰQJYJWͱಉఔ౓ͷΞΫ

    ηεʹ଱͑ͳ͍ͱ͍͚ͳ͍ w ॠ࣌ʹϨεϙϯεΛฦͤͳ͍ͱQJYJWͷϢʔβʔମݧͷ࣭͕ ௿Լ͢Δ
  6. ݱߦ޿ࠂαʔόʔ w %FCJBO1)1ͱࣾ಺Ͱ͸ϨΨγʔ؀ڥ w %FCJBO1)1͕ࣾ಺ඪ४؀ڥ w "1$ͱ͍͏ڞ༗ϝϞϦͷػߏΛϑϧ׆༻ͯ͠ߴ଎ʹϨεϙϯεΛฦ͢ w "1$͸1)1Ͱഇࢭ͞Ε͍ͯͯQJYJWͰ͸୅ସͷ"1$VΛ࢖༻ w

    ͔͠͠"1$V͸όΪʔͳͷͰQJYJWͰ͸ݶఆతʹ࢖༻ w ݱ޿ࠂαʔόʔ͸"1$ͷػೳΛ͔ͳΓ࢖͍ͬͯΔͨΊҠߦෆՄೳ w ΠϯϓϨογϣϯ਺ͷߋ৽͸͓͖࣌ؒͳͲ͔ͳΓׂΓ੾ͬͨઃܭͰߴ଎ͳϨεϙϯεΛ࣮ݱ w ΠϯϓϨογϣϯ਺͕ϦΞϧλΠϜʹ෼͔Βͳ͍ͱ໨ඪΠϯϓ਺ʹ౸ୡͤ͞Δͷ͕೉͍͠ w ࣗಈΠϯϓϨογϣϯ਺ௐઅػೳ΋ͳ͍ͷͰखಈରԠ w ػೳ֦ு΋΄΅ෆՄೳ
  7. ؅ཧαʔόʔ w ϚʔένʔϜ͕޿ࠂΛೖߘ͢Δͷͱ഑৴αʔόʔͷܭଌ݁ՌΛอଘͯ͠ݟΕ ΔΑ͏ʹ͢Δ w ࣾ಺ͷਓ͔ؒ͠৮Βͳ͍ͷͰϦιʔε͸͋·Γׂ͚ͳ͍͕ɼۀ຿ޮ཰ʹؔΘ ΔͷͰϚʔένʔϜͷػೳཁ๬ʹ͸ਝ଎ʹରԠ͢Δඞཁ͕͋Δ w ؅ཧαʔόʔ͕޿ࠂαʔόʔͷ୯Ұো֐఺ʹͳΒͳ͍Α͏ʹ͢Δඞཁ͕͋Δ w

    ؅ཧαʔόʔ͕ࢮΜͰ΋޿ࠂͷ഑৴͸΍Γଓ͚ΔΑ͏ʹ w 3VCZPO3BJMTͰগͳ͍ϦιʔεͰ"1*ΛؚΊͯ࡞੒͢Δ͜ͱʹ w 3BJMT͸ϑϧελοΫϑϨʔϜϫʔΫͰ࠷খݶͷ࣮૷Ͱ༷ʑͳػೳ͕࢖͑Δ w +40/ܗࣜͷ"1*΋3VCZͩͱ࡞Γ΍͍͢
  8. ؅ཧαʔόʔ w σʔλϕʔε͸.Z42-Λ࢖༻ w QJYJW͸.Z42-ͳͷͰେن໛.Z42-ӡ༻ͷϊ΢ϋ΢͕͋Δ w ޿ࠂσʔλ͸ফ͑Δͱ࠷ѱձ͕ࣾࢮ͵ͷͰ৴པੑͷߴ͍σʔλετΞΛ࢖͍͍ͨ w ࠓ·Ͱ.Z42-͕ݪҼͰσʔλΛফࣦͨ͜͠ͱ͕ແ͍ͷͰ৴པੑ͸ߴ͍ w

    ഑৴͢Δ޿ࠂσʔλΛ+40/ͷ"1*ܦ༝Ͱ഑৴αʔόʔʹ w ؅ཧαʔόʔ͕Ұ࣌తʹࢮΜͰ΋഑৴αʔόʔʹӨڹ͕ग़ͳ͍Α͏ʹ w ഑৴αʔόʔ͕දࣔɾΫϦοΫ਺ͷूܭ݁ՌΛ؅ཧαʔόʔͷ.Z42-ʹ௚઀ॻ͖ ࠐΉ w "1*ܦ༝Ͱ΋ྑ͔͕ͬͨ%#ʹ਺஋Λॻ͖ࠐΉ͚ͩͳͷͰͲͪΒͰ΋໰୊͸ͳ͍
  9. ؅ཧαʔόʔ w 3VCZPO3BJMT͸ࣾ಺Ͱ΋࠾༻ྫ͕ଟ͍ͷͰϊ΢ϋ΢͕͋Δ w #005)8PSME$PTQMBZQJYJWίϛοΫFUD w αʔόʔ͸6OJDPSOͰσϓϩΠ͸$BQJTUSBOP w ࣾ಺Ͱ΋࠾༻࣮੷͕͋Δ w

    $BQJTUSBOP͸3VCZ੡ͳͷͰ3VCZपΓͷػೳ͕ॆ࣮͍ͯ͠Δ w 6OJDPSO͸3BDLΞϓϦέʔγϣϯ޲͚ͷQSFGPSLܕαʔόʔ w ΠϯϑϥΤϯδχΞͱͯ͠޻෉ͨ͠ͱ͜Ζ͸ಛʹͳ͍ w ࣾ಺͔Β͔͠ΞΫηε͕དྷͳ͍ͷͰ3BJMTΞϓϦ͕ಈ͔ͤΕ͹े෼
  10. 3BDL$BQJTUSBOP6OJDPSO w 3BDL w 3VCZͷͨΊͷαʔόʔͱ8FCΞϓϦέʔγϣϯؒͷ΍ΓऔΓΛ୲౰ w 3BDLʹଇͬͯ࡞ΒΕͨ8FCΞϓϦέʔγϣϯ͸3BDL༻ͷαʔόʔͰಈ͔͢͜ͱ͕Մೳ w 3BJMT4JOBUSBͳͲओཁͳ3VCZͷ8FCϑϨʔϜϫʔΫ͸ରԠ w

    $BQJTUSBOP w σϓϩΠͳͲࣗಈԽ͍ͨ͠αʔόʔૢ࡞ΛࣗಈԽ͢Δπʔϧ w 3VCZ੡ͳͷͰ3VCZपΓͷػೳ͕ॆ࣮ w γΣϧεΫϦϓτͩͱԿ͔ΒԿ·Ͱࣗ෼Ͱॻ͔ͳ͍ͱ͍͚ͳ͍ͷͰָͰอकੑ΋ߴ͘ͳΔ w 6OJDPSO w ਓؾͷߴ͍3BDL༻αʔόʔ
  11. w ਌ϓϩηε͕ΞϓϦέʔγϣϯΛϩʔυͯ͠ιέοτϑΝΠϧΛ࡞੒͢Δ w GPSLͯ͠ࢠϓϩηεΛ࡞Δ w ͜Ε͕XPSLFSϓϩηεʹͳΔ w GPSLͳͷͰιέοτϑΝΠϧͷϑΝΠϧσΟεΫϦϓλͳͲͷϦιʔε͸ڞ༗͞ΕΔ w $PQZPO8SJUFͳͷͰࢠϓϩηε͕վΊͯΞϓϦέʔγϣϯΛϩʔυ͢Δඞཁ͸ͳ͍

    w ͋Β͔͡ΊGPSLΛ͓ͯ͘͠ͷͰQSFGPSLͱݺ͹ΕΔ w XPSLFS͕SFRVFTUΛҾ͖ड͚ͯऴྃ࣍ୈ࣍ͷϦΫΤετΛड͚Δ w XPSLFS͸͋Δఔ౓ͷϦΫΤετΛड͚ΔͱNBTUFSͱͷϝϞϦͷဃ཭͕େ͖͘ͳΓϝϞϦΛᷰ͏Α͏ʹ ͳΔͷͰNBTUFSϓϩηε͕XPSLFSΛఆظతʹLJMMͯ͠৽͘͠GPSL͢Δ unicorn(master) unicorn(worker) unicorn(worker) unicorn(worker) unicorn(worker) ਌ϓϩηε ࢠϓϩηε socket 'PSL 4PDLFU࡞੒ ϑΝΠϧ σΟεΫϦϓλ
  12. ഑৴αʔόʔ w ࠷΋ٕज़త՝୊͕େ͖͍ w গͳ͍αʔόʔ୆਺ͰQJYJWͱ΄΅ಉ͡ΞΫηε਺Λ͞͹͘ඞཁ͕͋Δ্ʹߴ଎ʹ޿ࠂσʔ λΛฦ͢ඞཁ͕͋Δ w ܭଌϛε͸͋ͬͯ͸ͳΒͳ͍ͷͰ৴པੑͷߴ͍γεςϜͰ͋Δඞཁ͕͋Δ w མͪͨΒͦͷ෼ձࣾͷऩӹ͕མͪΔ্ʹ௕࣌ؒ෮ؼͰ͖ͳ͍ͳΒิరͷඞཁ͕ग़ͯେ੺ࣈ

    w ΠϯϑϥΤϯδχΞͱͯ͠։ൃʹ΋ؔΘΔ w ϐΫγϒͰ͸ΠϯϑϥͰ΋ඞཁʹԠͯ͡։ൃ͢Δ w Πϯϑϥ͔ͩΒίʔυ͸ॻ͔ͳ͍Έ͍ͨͳձࣾ΋͋ΔΒ͍͕͠ɼϐΫγϒͰ͸ͦ͏͍͏ ͜ͱ͸ͳ͍ w ಛʹύϑΥʔϚϯεपΓ΍ϛυϧ΢ΣΞͷબ୒ͳͲ͸Πϯϑϥ͕ਂؔ͘ΘΔඞཁ͕͋Δ
  13. %/4 UZQFUBJM ޿ࠂ഑৴αʔόʔ ؅ཧαʔόʔ .Z42- qVFOUE qVFOUE /(*/9 ը૾ $"$)&

    LTLMPH NFNDBDIFE ޿ࠂσʔλ "QQMJDBUJPO (PMBOH දࣔ਺ ΫϦοΫ਺ 6/*9υϝΠϯιέοτ $JSDVT ޿ࠂσʔλ ܭଌ݁Ռ ϥ΢ϯυϩϏϯ 6/*9υϝΠϯιέοτ ϑΝΠϧσΟεΫϦϓλ
  14. ഑৴αʔόʔઃܭ w ܰྔͳ,74ʹ޿ࠂσʔλΛอଘ͓͍ͯͯ͠ϦΫΤετʹԠͯͦ͡ͷσʔλΛฦ ͢ΞϓϦέʔγϣϯ w ը૾σʔλ΋ಉ༷ʹ഑৴͢Δ͕Ωϟογϡ͓͖ͯ͠ը૾ੜ੒͕ෳ਺ճߦΘΕͳ ͍Α͏ʹ͢Δ w ը૾σʔλࣗମͷදࣔ਺ΛܭଌΛ͢Δ͜ͱ͸ͳ͍ w

    ը૾σʔλΛ౎౓ੜ੒ͨ͠Β͕͔͔࣌ؒΓ͗͢Δ w දࣔ΍ΫϦοΫ͕͞ΕΕ͹ϑΝΠϧʹॻ͖ࠐΉʢLTLMPHʣ w qVFOUEͰLTLMPHΛ؂ࢹͯ͠ܭଌ݁ՌΛ؅ཧαʔόʔͷ.Z42-ʹॻ͖ࠐΉ w άϩʔόϧ*1ͰϢʔβʔͷϦΫΤετΛ௚઀ड͚Δ͜ͱͰߴ଎ʹϨεϙϯεฦ٫
  15. qVFOUE w 3VCZ੡ͷϩάऩूιϑτ΢ΣΞ w %4-ͰॲཧΛॻ͍͍ͯ͘ w ϩάϑΝΠϧΛଞͷαʔόʔʹू໿ͤ͞Δ w ϩάΛղੳͯ݁͠ՌΛͲ͔͜ʹ౤͛Δ w

    ϓϥάΠϯ͕ॆ࣮͍ͯͯ͠ઃఆΛॻ͚ͩ͘Ͱ༷ʑͳػೳ͕ར༻Մೳ w ࣦഊ࣌ʹϦτϥΠͨ͠Γɼॏෳͯ͠ૹΒͳ͍ػೳͳͲ͕͋Δ w QJYJWͰ͸ओʹΞΫηεϩάɾΤϥʔϩάऩूΛͯ͠Ϣʔβʔͷಈ޲ ֬ೝ΍Τϥʔݕ஌ͳͲʹ࢖ΘΕΔ͜ͱ͕ଟ͍
  16. ωοτϫʔΫͷ৑௕Խ w άϩʔόϧ*1Ͱ௨৴͢ΔͷͰԿ͔͕ނোͯ͠௨৴Ͱ͖ͳ͘ͳΔͱҰ੾Կ΋Ͱ ͖ͳ͘ͳΔ w έʔϒϧͷஅઢɾ/*$ނোɾεΠονϙʔτނোɾεΠονނো w ͜͏͍ͬͨނো͸සൟʹى͜Δ w ނোͯ͠΋େৎ෉ͳΑ͏ʹ৑௕Խ͢Δඞཁ

    w ৑௕Խͱ͸Ұ෦ͷγεςϜো֐ʹඋ͑ͯ༧උ૷ஔͳͲΛ༻ҙ͓ͯ͘͜͠ͱ w ෳ਺ͷ/*$Λ༻ҙͯ͠ผͷεΠονʹ઀ଓ w ͦΕͧΕͷ/*$ʹಉ͡*1ΞυϨεΛ෇͚ͯยํ͕ނোͨ͠ΒࣗಈͰ੾Γସ ΘΔΑ͏ͳ࢓૊Έʹ͍ͨ͠
  17. #POEJOH w -JOVYΧʔωϧͷϞδϡʔϧͷͭ w ෳ਺ͷ/*$Λ·ͱΊͯͭͷ࿦ཧ/*$ͱͯ͠ѻ͑ΔΑ͏ʹͳΔ w ϐΫγϒͰ͸جຊతʹނো͢Δ·ͰͭΊͷ෺ཧ/*$ͷΈΛ࢖ͬͯނো࣌ʹ੾Γସ͑Δ BDUJWFCBDLVQΛ࢖༻ w ͜Ε͕Ұ൪ѻ͍΍͍͢Β͍͠

    w ݱࡏ.** .FEJB*OEFQFOEFOU*OUFSGBDF ؂ࢹΛ࢖ͬͯ෺ཧ/*$ͷ-JOL%PXOͯ͠ͳ͍ ͔؂ࢹ w ௿ίετʹ؂ࢹՄೳ w -JOL%PXOͯ͠ͳ͍ͷʹ௨৴Ͱ͖ͳ͍ঢ়گͰରԠ͕Ͱ͖ͳ͍ w "31؂ࢹΛ͢Ε͹௨৴Ͱ͖ͳ͍ঢ়گͰ΋೺ѲͰ͖Δ͕ߴίετ
  18. ഑৴αʔόʔϓϩτλΠϓ w ϓϩτλΠϓ͸3VCZͷϑϨʔϜϫʔΫ1BESJOP੡ͰσʔλετΞͱͯ͠(SPPOHBΛ࢖༻ w (SPPOHB͸શจݕࡧΤϯδϯͱͯ͠։ൃ͞Ε͓ͯΓܰྔͳ,74ͱͯ͠࢖͏ʹ͸޲͔ͳ͍ w ଎౓ɾ҆ఆੑɾ৴པੑతʹࠓճͷ഑৴αʔόʔʹ͸޲͔ͳ͍ͱ൑அ w ܰྔͳ,74ͱͯ͠NFNDBDIFEΛఏҊ w

    ొ࿥͞Ε͍ͯΔ޿ࠂσʔλ͸๲େ͕࣮ͩࡍʹͦͷ࣌഑৴͠ͳ͚Ε͹޿ࠂσʔλ͸গͳ ͍ w ݩσʔλ͸؅ཧαʔόʔ͕શ͍ͯ࣋ͬͯΔͷͰ഑৴αʔόʔ্ʹӬଓσʔλΛ࣋ͭඞ ཁ͸ͳ͍ w େن໛ͳ8FCΞϓϦέʔγϣϯͰ΋࠾༻ྫ͕ଟ͘ɼ଎౓ɾ҆ఆੑɾ৴པੑͲΕ΋ߴ ͍
  19. 1BESJOP w 4JOBUSBϕʔεͷ8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫ w 4JOBUSB͸ඇৗʹγϯϓϧͳ3BDLϕʔεͷ8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫ w جຊతʹ%4-ͰϧʔςΟϯάͷΈΛߦ͏ w ੔ͬͨ4JOBUSBͱ͍͏ײ͡ w

    4JOBUSBͷ஌ࣝ͸΄΅ͦͷ··׆͔ͤΔ w 3BJMTΑΓ΋ػೳ͸গͳ͍͕΄ͱΜͲͷ৔߹ࠔΒͳ͍ͱࢥ͏ w ࠓճ͸αʔόʔʹ6OJDPSOΛ࢖༻ w 3BJMTΞϓϦͰࣾ಺Ͱ΋ಋೖ࣮੷͕͋Δ w ؅ཧαʔόʔͰ΋࢖͍ͬͯΔ
  20. NFNDBDIFE w ,74ͱͯ͠ͱͯ΋ஶ໊Ͱ࠾༻ྫ΋ଟ͍ w ,FZ7BMVF4UPSF w NFNDBDIFE͸Ωʔ΋όϦϡʔ΋จࣈྻͷΈ w 'BDFCPPL(PPHMFͳͲ౤ೖ࣮੷͸਺஌Εͣ w

    ϝϞϦΩϟογϡͳͷͰӬଓσʔλ͸อଘͰ͖ͳ͍ w ऴྃͨ͠Βσʔλ͸ফ͑ͯ͠·͏ w อଘͰ͖Δ༰ྔ͸ϝϞϦΩϟογϡͳͷͰগͳ͍ w ઃఆʹΑΔ͕౥ࡌϝϞϦҎ্͸อଘͰ͖ͳ͍ w ߴ଎͔ͭ҆ఆ͍ͯ͠ΔͷͰΩϟογϡͱͯ͠Α͘ར༻͞ΕΔ
  21. 3VCZʹΑΔ഑৴αʔόʔ w 1BESJOP੡Ͱ,74ͱͯ͠NFNDBDIFEΛ࢖༻ͯ͠ݕূ w ϓϩϑΝΠϦϯάΛऔΓͳ͕ΒϘτϧωοΫΛͳ͍ͯ͘͘͠ w ϓϩϑΝΠϦϯάʹϑϨʔϜϫʔΫ૚͔͠ग़ͯ͜ͳ͘ͳ͖ͬͯͨͷͰ1BESJOPґଘΛ֎͠ ͯ4JOBUSBΞϓϦʹ w BC

    "QBDIF#FODI "QBDIF+.FUFSΛ࢖ͬͯੑೳΛνΣοΫ w ͦΕͰ΋໨ඪͷੑೳ͕ग़ͤͣɼ6OJDPSOҎ֎ͷαʔόʔͰݕূ w 6OJDPSO͕΋ͬͱ΋ੑೳ͕ߴ͍ͱ͍͏݁Ռʹ w +3VCZͰಈ͘Α͏ʹϦϥΠτͯ͠+3VCZ༻ͷଞͷαʔόʔ΋ݕূ w ݁ہ6OJDPSOΛ௒͑ΔੑೳΛग़ͤͣ3VCZʹΑΔ࣮૷Λஅ೦ w ࠓճͷ޿ࠂ഑৴αʔόʔͰͷ࿩ͰҰൠతʹ6OJDPSO͕଎͍ͱ͍͏Θ͚Ͱ͸ͳ͍
  22. (PMBOHͰϦϥΠτ w ύϑΥʔϚϯεΛٻΊͯ(PݴޠͰͷϦϥΠτ w (Pݴޠ͸(PPHMF͕࡞ͬͨ৽͍͠ϓϩάϥϛϯάݴޠ w --ΑΓ΋$ݴޠʹ͍ۙ w ίϯύΠϧܕ w

    (PSPVUJOFTΛ࢖͏ͱ؆୯ʹϚϧνεϨουʹ w (PSPVUJOFTΛ࢖ͬͯϚϧνεϨουͳαʔόʔΛ࣮૷ w ୯७ʹϦϥΠτ͚ͩͰ଎͘ͳΔΘ͚Ͱ͸ͳ͔ͬͨ w NFNDBDIFEΛ࢖͏఺ͳͲجຊతͳ෦෼͸શͯ౿ऻ w αʔόʔͱͯ͠ͷ౤ೖ͸౰࣌ࣾ಺ॳ
  23. ௒ࢲత1)1WT3VCZWT(P w 1)1͸"QBDIF্Ͱಈ͘ศརςϯϓϨʔτΤϯδϯΛॻ͘ײ͡ w ศརؔ਺͸QIQOFUͰݕࡧ͢Ε͹ḿΔ w 3VCZ͸ϑϨʔϜϫʔΫΛ௨ͯ͡3BDLΞϓϦέʔγϣϯΛॻ͘ײ͡ w ϑϨʔϜϫʔΫͷίʔυΛಡΉ͜ͱ͕ଟ͍ w

    ίʔυΛॻ͘ͱ͖͸3BDLΑΓԼͷ͜ͱΛҙࣝ͢Δ͜ͱ͸͋·Γͳ͍ w (P͸JNQPSUbOFU`ͱ͔͢Δͱ਺ߦͰαʔόʔΛىಈͰ͖ΔͷͰޙ͸Α͠ͳʹ Ͱ͖Δ w HPEPD͕෼͔Γ΍͍͢ͷͰͦΕΛಡΉ w جຊతʹඞཁͳॲཧΛશ෦ࣗ෼Ͱॻ͘ඞཁ͕͋Δ
  24. /HJOYͱ(PΛܨ͙ w ϢʔβʔͷϦΫΤετΛ௚઀(P͕ड͚ΔͷͰ͸ͳ͘/HJOYͰड͚͍ͨ w ϢʔβʔͷϦΫΤετΛόοϑΝϦϯάͯ͘͠ΕΔͷͰίωΫγϣϯͷอ࣋ͳͲ໘౗ͳ ͜ͱΛߟ͑Δඞཁ͕ͳ͘ͳΔ w (PͰ͸௿஗ԆͰϨεϙϯεΛฦ͢͜ͱ͚ͩΛߟ͑Ε͹Α͍ w ΞΫηεϩάͳͲ͕؆୯ʹ࢒ͤΔ

    w ΞΫηε੍ޚͳͲ؆୯ w ΩϟογϡͷػߏͳͲ͕؆୯ʹ࢖͑Δ w ࣾ಺ʹϊ΢ϋ΢͕ଟ͋͘Δ w (PͰUDQΛMJTUFOͯ͠ىಈͨ͠αʔόʔʹରͯ͠QSPYZ@QBTT͢Δͱ஗͗͢Δ w 6/*9EPNBJOTPDLFUΛMJTUFOͯ͠αʔόʔΛىಈ͢Δඞཁ͕͋Δ
  25. 6/*9EPNBJOTPDLFU w ϓϩηεؒ௨৴ w ಉҰϚγϯ্ͳΒ਌ࢠؔ܎ͳͲ͕ແͯ͘΋௨৴͕Ͱ͖Δ w UDQͳͲΑΓ΋҆ఆɾߴ଎ʹಈ͘ w NFNDBDIFEͱͷ௨৴ʹ΋࢖༻͢Δͱߴ଎͔ͭ҆ఆతʹಈ࡞ͤ͞Δ͜ͱ͕ Ͱ͖Δ

    w ΋ͪΖΜ࢖༻͍ͯ͠Δ w ϐΫγϒࣾ಺Ͱ͸গͳ͍ϦιʔεͰେྔͷΞΫηεΛߴ଎ʹ͞͹ͨ͘Ίʹࢸ Δͱ͜ΖͰ࠾༻͞Ε͍ͯΔ w (Pͷ৔߹OFU-JTUFO VOJY QBUI ͷΑ͏ʹ͢Ε͹Α͍
  26. IPUEFQMPZ w %/4ϥ΢ϯυϩϏϯͷͨΊִ཭͕ࠔ೉ w ޿ࠂαʔόʔ͸"84Ͱ͸ͳ͍ͷͰ&-#͸࢖͑ͳ͍ w QJYJWपลαʔϏε͸ίετ໘͔Β"84Λ࢖Θͳ͍ w ௒େྔֆഅɾQJYJWࣣ༦୹࡭ࡇͳͲظؒݶఆͷ΋ͷʹ͸"84͸࢖ ΘΕ͍ͯΔ

    w ݱࡏͷ޿ࠂۀքͰ͸"84Λ࢖͏ͷ͕ଟ͍ͷͰ&-#Λ࢖ͬͯ IPUEFQMPZΛ࣮ݱ͍ͯ͠Δձ͕ࣾଟ͍ w ޿ࠂαʔόʔͳͷͰσϓϩΠ࣌ʹμ΢ϯλΠϜ͕ൃੜͯ͠͸͍͚ͳ͍
  27. $JSDVT w .P[JMMB͕࡞ͬͨ1ZUIPO੡ͷϓϩηε؅ཧπʔϧ w $JSDVTࣗମ͕ιέοτϑΝΠϧΛ࣋ͬͯɼΞϓϦέʔγϣϯ͸ϑΝΠϧσΟε ΫϦϓλΛ-JTUFOͤͯ͞ىಈ͢Δ w OFU'JMF-JTUFOFS PT/FX'JMF VJOUQUS

    GE  ͷΑ͏ʹ͢Δ w σϓϩΠ࣌ʹ৽͍͠ϓϩηε͕ىಈ͔ͯ͠Βݹ͍ϓϩηεΛLJMM͢Δ w μ΢ϯλΠϜͳ͠ͰΞϓϦέʔγϣϯΛೖΕସ͑Δ͜ͱ͕Ͱ͖Δ w ઃఆϑΝΠϧΛॻ͘ͱ͍͍ײ͡ʹىಈͯ͘͠ΕΔ w DJSDVTDUMͱ͍͏ίϚϯυπʔϧܦ༝Ͱૢ࡞͢Δ w %FCJBOͷઃఆϑΝΠϧ͸ެࣜ(JU)VCϦϙδτϦʹ͋Δ
  28. $JSDVT΁ϓϧϦΫ w $JSDVT͸(JU)VCͰ։ൃ͞Ε͍ͯΔ w %FCJBOͷJOJUEεΫϦϓτ͸$JSDVTࣗମͷϩάΛग़ྗ͠ͳ͔ͬͨ w ग़ྗͰ͖ΔΑ͏ʹมߋͯ͠ϓϧϦΫ΋ͯ͠ΈΔ w NFSHF͞Εͨ w

    ϐΫγϒͰ͸ࣾ಺Ͱ࢖༻͍ͯ͠ΔΦʔϓϯιʔεϓϩμΫτʹύονΛૹΔ ͷ͸ਪ঑͞Ε͍ͯΔ w ༗໊ͳϓϩμΫτͰ΋ࡉ͔͍෦෼͸ద౰ͳ͜ͱ͕ଟ͍ w .P[JMMBͷϓϩηε؅ཧπʔϧDJSDVTʹϓϧϦΫͨ͠࿩DBUBUTVZͱ͸ IUUQDBUBUTVZIBUFCMPKQFOUSZ
  29. socket TPDLFU࡞੒ ϑΝΠϧ σΟεΫϦϓλ FYFD socket ϑΝΠϧ σΟεΫϦϓλ ϓϩηε؂ࢹ DJSDVT͸ϓϩηε؂ࢹ͚ͩ

    ͰϦΫΤετ͸ײ஌͠ͳ͍ BQQ͸ϑΝΠϧσΟεΫϦϓλΛ -JTUFO͢ΔαʔόʔͰ͋Δඞཁ͕͋Δ αʔόʔىಈ࣌ αʔόʔىಈޙ circus app circus app
  30. circus socket ϑΝΠϧ σΟεΫϦϓλ app_old FYFD app_new ϓϩηε؂ࢹ αʔόʔϦϩʔυ αʔόʔϦϩʔυ

    BQQ@OFX͕ىಈ͢Δ·Ͱ଴ͭ BQQ@OFX͕ىಈͨ͠Β BQQ@PMEΛLJMM͢Δ circus socket ϑΝΠϧ σΟεΫϦϓλ app_old app_new ϓϩηε؂ࢹ LJMM
  31. ΩϟογϡԽ w ΞΫηεͷ౓ʹNFNDBDIFEʹΞΫηεΛͨ͠Β஗্͍ʹ$16࢖༻཰΋্͕ͬͯ͠·ͬͨ w NFNDBDIFEͷऔಘ݁ՌΛΞϓϦέʔγϣϯଆͰඵؒΩϟογϡ͢Δ͜ͱʹ w ௕͗͢Δͱ޿ࠂσʔλͷ൓ө͕஗ΕΔ w ΩϟογϡԽ͸ۜͷ஄ؙͰ͸ͳ͍ w

    JGจ͸δϟϯϓ໋ྩͳͷͰҋӢʹ࢖͏ͱ஗͘ͳΔ w ܭࢉ݁ՌͷΩϟογϡͳͲ΋෼ذ༧ଌ͕౰ͨΓʹ͍͘ܗͩͬͨΓ͢Δͱ౎౓ܭࢉͤͨ͞ ํ͕଎͍ࣄ͕ଟ͍ w ΞϓϦέʔγϣϯͷෳࡶ౓Λ্͛Δ w ΩϟογϡԽ͸ଌఆͯ͠ޮՌ͕͋Δ෺Ҏ֎͸࢖༻͠ͳ͍ w ਪଌ͢ΔͳܭଌͤΑ
  32. +40/ͱ.FTTBHF1BDL w NFNDBDIFEͷόϦϡʔʹ+40/ΛೖΕͯ(PଆͰQBSTF͍͕ͯͨ͠ϓϩϑΝΠ Ϧϯά͔ΒQBSTFʹ͕͔͔͍࣌ؒͬͯΔ͜ͱ͕൑໌ w +40/ͱಉ͡Α͏ʹѻ͍΍͘͢ߴ଎ʹQBSTFͰ͖Δ.FTTBHF1BDLΛ࢖༻͢Δ ͱߴ଎ʹಈ࡞ͨ͠ w qVFOUEͷ಺෦Ͱ΋.FTTBHF1BDL͸࢖ΘΕ͍ͯΔ w

    (P͸+40/पΓͷػೳ͕ॆ࣮͍ͯ͠Δ͚ͩ஗͍ w ஗͔ͬͨΒϓϩϑΝΠϦϯάΛऔΓϘτϧωοΫΛݟ͚ͭͯରࡦΛߟ͑Δ΂͖ w (Pʹͨ͠Βඞͣ଎͘ͳΔͱ͍͏͜ͱ͸ͳ͍ w ਪଌ͢ΔͳܭଌͤΑ
  33. σϓϩΠ w ࣾ಺σϓϩΠπʔϧʹ৐͔ͬΔ w ϒϥ΢β͔Βద౰ʹΫϦοΫ͢ΔͱσϓϩΠαʔόʔ্ͰγΣϧεΫϦϓτ Λ࣮ߦͰ͖Δ w ࣾ಺ͷαʔϏε͸$BQJTUSBOP͔͜ͷσϓϩΠπʔϧ͕࢖ΘΕΔ͜ͱ͕ଟ͍ w qVFOUE͸)61γάφϧΛૹΔͱϦϩʔυͰ͖Δ

    w JOJUEεΫϦϓτΛࣗલͰ࡞੒ w (P͸ϥΠϒϥϦʹґଘ͠ͳ͍࣮ߦόΠφϦΛίϯύΠϧͰੜ੒ w σϓϩΠαʔόʔͰίϯύΠϧ֤ͯ͠αʔόʔ΁όΠφϦΛ഑෍
  34. git clone go build rsync circusctl reload && fluentd reload

    deploy server application server
  35. ϓϩηε؂ࢹ w ΞϓϦέʔγϣϯ͸$JSDVT w NFNDBDIFE qVFOUE͸NPOJUΛར༻ w NPOJU͸QJEϑΝΠϧΛ࡞ΔJOJUEεΫϦϓτ͕͋ ΔͳΒ؆୯ʹϓϩηε؂ࢹ͕Ͱ͖Δ w

    NFNDBDIFE͸JOJUEεΫϦϓτ͕طʹ͋ͬͨ w qVFOUE͸SFMPBE࣌ʹ)61γάφϧΛૹΔͨΊ ʹJOJUEεΫϦϓτΛࣗ࡞͍ͯͨ͠
  36. ࢮ׆؂ࢹ w ϐΫγϒ͸/BHJPTΛ࢖͍ͬͯΔͷͰ/BHJPTͰ؂ࢹ w ΞϓϦέʔγϣϯ͸εςʔλείʔυ൪Λฦ͚ͩ͢ͷϧʔςΟϯάΛ༻ ҙͯ͠؂ࢹ w qVFOUE͸NPOJUPS@BHFOUΛ࢖ͬͯ؂ࢹ w /HJOY͸TUVC@TUBUVTΛ࢖ͬͯ؂ࢹ

    w $JSDVT͸DJSDVTDUMTUBUVTͷ݁Ռ͔Β؂ࢹ w NFNDBDIFE͸UDQ͕ૄ௨͍ͯ͠Δ͔Ͳ͏͔Λ؂ࢹ w NFNDBDIFE͸ύονΛ౰ͯΔͱ5$1ιέοτͱ6/*9υϝΠϯιέοτ Λಉ࣌ʹMJTUFOͰ͖Δ
  37. Նʹඞݟʂ ىͬͨ͜τϥϒϧɾ՝୊ͱ ղܾࡦ

  38. ഑৴தͷ޿ࠂσʔλ͕৽͍͠ ޿ࠂΛೖߘ్ͨ͠୺ʹফ͑ͨ

  39. ഑৴தͷ޿ࠂσʔλ͕৽͍͠ ޿ࠂΛೖߘ్ͨ͠୺ʹফ͑ͨ w UFMOFUMPDBMIPTUͰϙʔτͰىಈ͍ͯ͠ΔNFNDBDIFEͱձ࿩Ͱ͖Δ w TUBUTͰىಈதͷNFNDBDIFEͷঢ়ଶΛ֬ೝͰ͖Δ w FWJDUJPOT͕େྔൃੜ w ༰ྔෆ଍ͰNFNDBDIFE͕௥͍ग़ͨ͠ճ਺

    w MJNJU@NBYCZUFT͕૝ఆΑΓ͔ͳΓখ͍͞ w ࠷େ༰ྔ͕খ͍͞ͷͰ௥͍ग़͞Ε͍ͯͨ w ઃఆ஋ͷ༩͑ํΛؒҧ͍͑ͯͨ w ઃఆΛมߋͨ͠Β൓ө͞Ε͍ͯΔ͔֬ೝ͢Δ͜ͱ w ΦϯϝϞϦܕͷϛυϧ΢ΣΞ͸ϝϞϦ࢖༻཰Λ؂ࢹ͢΂͖
  40. /HJOYͰ഑৴͍ͯ͠Δ޿ࠂͷ ը૾ΛϢʔβʔͷϒϥ΢β͕ Ωϟογϡͯ͘͠Εͳ͍

  41. /(*/9 ը૾ $"$)& ը૾͍ͩ͘͞ʂ ը૾͋͛Δ͚Ͳ Ωϟογϡͯ͠Ͷ application ը૾͕ͳ͍ͷͰ ը૾͍ͩ͘͞ ը૾ૹΓ·͢

    /(*/9 ը૾ $"$)& ͜ͷը૾ͷΩϟογϡΛ ࣋ͬͯΔ͚Ͳߋ৽͋Δʁ ߋ৽ͳ͍͔Β ͦͷ··࢖ͬͯʂ application Ұ౓ը૾ΛૹͬͨΒ ͠͹Β͘Ωϟογϡ͞ΕΔ ͷͰϦΫΤετ͞Εͳ͍ ճ໨ ճ໨ ͱͳΔ͸͕ͣ໰౴ແ༻Ͱ ը૾ΛૹΓ͚͍ͭͯͨʜ ࠷ॳͷճ͚ͩͰͦͷޙ͸ ը૾Ωϟογϡ͕ฦ͢ͷͰ ϦΫΤετ͞Εͳ͍
  42. /HJOYͰ഑৴͍ͯ͠Δ޿ࠂͷը૾ΛϢʔβʔ ͷϒϥ΢β͕Ωϟογϡͯ͘͠Εͳ͍ w ϒϥ΢βʹΩϟογϡͯ͠ཉ͍͠ͳΒ)551ͷϨεϙϯεϔομʔʹ-BTU .PEJpFE&YQJSFT$BDIF$POUSPMΛ෇͚Δ w ϒϥ΢β͸ಉ͡63-΁ͷϦΫΤετͷϔομʔʹ*G.PEJpFE4JODFΛ෇͚ͯ ϒϥ΢β͕औಘͨ͠೔࣌Λ஌Βͤͯ͘ΕΔ w *G.PEJpFE4JODFΑΓޙʹߋ৽͞Ε͍ͯΕ͹৽͍͠σʔλΛɼߋ৽͕ͳ͚Ε

    ͹εςʔλείʔυ /PU.PEJpFE Λฦͯ͠ΩϟογϡΛͦͷ··࢖ͬ ͯ΋Β͏ w ࠓճͷ޿ࠂαʔόʔͰ͸ը૾͕มΘΕ͹63-͕มΘΔͨΊը૾σʔλʹߋ৽ ͕ೖΔ͜ͱ͸ͳ͍ w ͦ΋ͦ΋ը૾͸/HJOYଆͰΩϟογϡ͞Εͯ͠·͏ͷͰΞϓϦέʔγϣϯͷ Ϩεϙϯε಺༰͕มΘ͍ͬͯͯ΋/HJOY͸ؾ෇͔ͳ͍
  43. /HJOY͕ϑΝΠϧͷߋ৽༗ແΛͲ͏൑அ͢Δͷ͔ w *G.PEJpFE4JODFΛݟ͔͔ͯΛ൑அ͢ΔͷͰ/HJOY͕ը૾σʔλͷλΠϜελϯϓ Λ೺Ѳ͍ͯ͠ͳ͍ͱμϝͰ͸ʁ w (Pͷαʔόʔ͕ฦ͢ͳΒλΠϜελϯϓͰ͸ͳ͘-BTU.PEJpFEϔομʔͰ൑அ͍ͯ͠Δʁ w NFNDBDIFEʹ޿ࠂσʔλ͕͍ͭೖߘ͞Εͨͷ͔ͷ৘ใΛೖΕͯͳ͔ͬͨͷͰʹ w ͋·Γྑ͘ͳ͍͕ը૾σʔλ͕มΘΕ͹63-͕มΘΔͷͰ࣮༻্໰୊͸ͳ͍

    w ͜ͷͨΊʹNFNDBDIFEʹ֨ೲ͢ΔσʔλΛ૿΍͢ͷ͸खؒΛߟ͑Δͱׂʹ߹Θͳ͍ w FQPDI5JNFͷͩͱόάͩͱࢥΘΕΔՄೳੑ͕͋ΔͷͰආ͚ͨ w /HJOYͷΩϟογϡ͕ݹ͍··ͰҰ෦ͷը૾ͰΩϟογϡ͞Εͣ w ΩϟογϡΛ࡟আͨ͠Βશը૾Ͱ૝ఆ௨Γͷಈ͖ʹ w যΒͣʹҰͭҰͭ֬ೝͯ͠ঢ়گΛ೺Ѳ͠ͳ͕Β࢓༷Λௐ΂Δ͜ͱ
  44. (PͷΤϥʔϩάʹϢʔβʔͷ *1ΞυϨεΛද͍ࣔͨ͠

  45. (PͷΤϥʔϩάʹϢʔβʔͷ *1ΞυϨεΛද͍ࣔͨ͠ w ߈ܸ͞Ε͍ͯΔՄೳੑ͕͋ΔͷͰΤϥʔΛى͍ͯ͜͠ΔϢʔβʔͷ*1ΞυϨεΛ஌Γ͍ͨ w ϑϩϯτ͕/HJOYͰQSPYZͯ͠(Pଆʹ౉͢ w ϢʔβʔͷϦΫΤετ͕ͦͷ··౉ΔΘ͚Ͱ͸ͳ͍ w ૹ৴ݩ*1ΞυϨε͸ϢʔβʔͰ͸ͳ͘/HJOY͕ಈ͍͍ͯΔαʔόʔ

    w QSPYZ@TFU@IFBEFSͰϢʔβʔͷ*1ΞυϨεΛผͷϔομʔʹ෇͚Δ w 93FBM*1΍9'PSXBSEFE'PSʹ෇͚Δ w (PଆͰϔομʔΛ͏·͘ಡΊͳ͍ w (Pͷίʔυʹ໰୊͕͋Δͷ͔/HJOYͷઃఆʹ໰୊͕͋Δͷ͔੾Γ෼͚͕Ͱ͖ͳ͍ w UDQͳΒUDQEVNQΛ͢Ε͹ϦΫΤετͷύέοτ͕௚઀ݟ͑ΔͷͰ੾Γ෼͚͕Ͱ͖Δ͕ /HJOYͱ(Pͷ௨৴ʹ࢖͍ͬͯΔ6/*9υϝΠϯιέοτ͸؆୯ʹݟΕͳ͍
  46. TUSBDFͰγεςϜίʔϧΛݟΔ w 6/*9υϝΠϯιέοτͰ΍ΓऔΓ͢ΔͳΒγεςϜίʔϧͷXSJUF͸૸Δ w γεςϜίʔϧ͕૸ΔͳΒTUSBDFΛ࢖͑͹ݟΕΔ w TUSBDFͰ΋ྲྀΕͳ͍ʜ w ϢʔβʔͷϦΫΤετΛड͚͍ͯΔͷ͸(PSPVUJOFͰεϨουͰಈ͍͍ͯΔ w

    TUSBDFͷGΦϓγϣϯΛ࢖͏ͱεϨου΋τϨʔεͯ͘͠ΕΔ w TΦϓγϣϯͰ௕͍ϦΫΤετͰ΋શ෦ݟΕΔΑ͏ʹͳΔ w ໰୊͕ىͬͨ͜Β·ͣݪҼΛ੾Γ෼͚Δ w OHJOY6/*9υϝΠϯιέοτ௨৴ͷ಺༰Λݟ͍ͨ2JJUBIUUQRJJUBDPN DBUBUTVZJUFNTFFCECF
  47. ͏ΘͬʜࢲͷϖʔδΩϟογϡ ૿͑͗͢ʜʁ

  48. ͏ΘͬʜࢲͷϖʔδΩϟογϡ ૿͑͗͢ʜʁ w ࠓճͷ޿ࠂαʔόʔ͸େྔͷϩάΛग़ྗ͢Δ w ࢖༻͍ͯ͠ͳ͍ϩά΋ϖʔδΩϟογϡʹࡌ͍ͬͯΔͷͰ࢖༻͠ͳ͍ϩ άϑΝΠϧ͸DSPOͰఆظతʹϖʔδΩϟογϡ͔Β࡟আ͢Δඞཁ͋Γ w DQBOϞδϡʔϧͷ4ZT1BHF$BDIFͰ࡟আͰ͖Δ w

    ͜ΕͰϖʔδΩϟογϡΛ཈͍͑ͯͨ͸͕ͣNVOJOͷάϥϑΛݟΔͱ ͋Δ͔࣌Βಥવ૿͍͑ͯΔ w ϖʔδΩϟογϡ͕૿͑͗͢ΔͱTXBQͯ҆͠ఆՔಇʹ໰୊͕ग़ΔՄೳ ੑ͕ߴ͘ରԠ͕ඞཁ w ͲͷϩάϑΝΠϧ͕ϖʔδΩϟογϡΛ͍ᷰͬͯΔͷ͔෼͔Βͳ͍
  49. None
  50. find / -type f -name "*" -size +1000k -mmin -60

    2> /dev/null \ | xargs sudo pagecache-check.pl 2> /dev/null \ | perl -ne 'if ((m{(.*?)\s.*cached/total_pages=(.*)/.*}) && ($2 > 0)) { print $2, "\t", $1, "\n"; }' \ | sort -nr w 6/*9Β͘͠ίϚϯυΛ૊Έ߹ΘͤͯQFSMͰ੔ܗ͢Δ w ϩάϩʔςʔτͷࣦഊɾϩάΛ΄ͱΜͲग़ྗ͍ͯ͠ͳ͔ͬͨΞϓϦ έʔγϣϯ͕ಥવϩάΛ͍͢͝੎͍Ͱग़ྗ͢Δ͜ͱ͕ݪҼͩͬͨ w άϥϑͳͲͰҧ࿨ײΛײͨ͡ΒઈରʹԿ͔͋ΔͷͰೲಘͷ͍͘·Ͱ ௐ΂Δ͜ͱ ϖʔδΩϟογϡΛᷰ͏ϩάΛݟ͚ͭΔ
  51. ϩάղੳ༻ͷqVFOUE ͱͷ֨ಆ

  52. ϩάղੳ༻ͷqVFOUEͱͷ֨ಆ w ࠓճ͸ΞϓϦέʔγϣϯʹ΋qVFOUEΛ࢖͍ͬͯΔ͕ϐΫγϒࣾ಺తʹ͸ϩάղੳ༻్ʹ࢖ ΘΕΔ w ΞϓϦέʔγϣϯͷΤϥʔϩάΛૹΔ࢓૊Έ w Ϣʔβʔղੳ༻ʹΞΫηεϩάΛऩू͢Δ࢓૊Έ w ޿ࠂ഑৴αʔόʔʹҟৗ͕ͳ͍͔/HJOYͷϩά͔Β؂ࢹ͍ͨ͠

    w εςʔλείʔυ൪୆͕ಥવ૿͑ͨͳͲ w ϨεϙϯελΠϜʹҟৗ͕ͳ͍͔؂ࢹ͍ͨ͠ w ͜͜਺೔Ͱҟৗʹ଎౓͕མ͍ͪͯΔͳͲ w ֤഑৴αʔόʔͷ/HJOYͷϩάΛղੳͯ͠άϥϑԽ w άϥϑԽʹ͸σʔλΛ1045͚ͨͩ͠Ͱάϥϑʹͯ͘͠ΕΔ(SPXUI'PSFDBTUͰ
  53. qVFOUEͰϩάΛղੳ͢Δ w JO@UBJMϓϥάΠϯΛ࢖༻͢ΔͱϩάϑΝΠϧΛUBJMͰ͖Δ w ਖ਼نදݱͳͲͰϩάϑΝΠϧΛղੳͤͯ݁͞ՌΛ(SPXUI'PSFDBTUʹ1045 w શϩάΛਖ਼نදݱͰղੳ͍ͯ͠ΔͷͰ$16ύϫʔΛ࢖͏ w ޿ࠂ഑৴αʔόʔ͸ϢʔβʔͷϦΫΤετΛड͚ΔͨΊ$16ύϫʔΛ࢖͍ͨ͘ͳ͍ w

    ϢʔβʔͷϦΫΤετΛड͚͍ͯͳ͍ผαʔόʔʹϩάΛૹͬͯͦ͜Ͱղੳ͍ͨ͠ w ͦͷࡍʹͲ͜ͷαʔόʔͷϩά͔͸෼͔ΔΑ͏ʹ͍ͨ͠ w ϗετ໊΋ؚΊͯૹͬͯ͏·͘ϩάͰղੳ͢Δඞཁ͕͋Δ w ଓ͖͸8FCͰ w qVFOUEͰϗετ໊෇͖ͰϩάΛड͚औͬͯղੳͯ͠άϥϑʹ͍ͨ͠2JJUBIUUQ RJJUBDPNDBUBUTVZJUFNTBBBDE
  54. ࢀߟ63- w ;FOE0QDBDIFͱ"1$VͰ͸͡ΊΔϋΠύϑΥʔϚϯε1)1QJYJWFOHJOFFSJOHCMPH w IUUQJOTJEFQJYJWOFUFOUSZ w <'MVFOUE"EWFOU$BMFOEBS>޿ࠂ഑৴ʹ'MVFOUEΛ࢖͍ͬͯ·͢ͱ͍͏࿩!LBU[DIBOHHJTU w IUUQTHJTUHJUIVCDPNLBU[DIBOH w

    (PͰॻ͍ͨαʔόʔΛ؅ཧ͢Δʹ͸DJSDVT͕ศརNFUIBOFͷϒϩά w IUUQNFUIBOFIBUFOBCMPHKQFOUSZ(P@Ͱॻ͍ͨαʔόʔΛ؅ཧ͢Δʹ͸@DJSDVT@͕ศར w 4FSWFS4UBSUFS͔ΒֶͿIPUEFQMPZͷ࢓૊ΈTIJCBZVCMPH w IUUQTIJCBZVIBUFOBCMPHDPNFOUSZ w 'SFRVFOUMZ"TLFE2VFTUJPOTŠ$JSDVTEPDVNFOUBUJPO w IUUQDJSDVTSFBEUIFEPDTPSHFOMBUFTUGBR w QJYJWͷ։ൃɾσϓϩΠ؀ڥͷมભʢ೥य़൛ʣQJYJWFOHJOFFSJOHCMPH w IUUQJOTJEFQJYJWOFUFOUSZ w NFNDBDIFE͔Β,ZPUP5ZDPPO΁ w IUUQXXXTMJEFTIBSFOFUDVCJDEBJZBNFNDBDIFELZPUPUZDPPOLFZ
  55. ·ͱΊ w ݱߦ޿ࠂαʔόʔ͸ػೳ໘ɾػೳ֦ு໘ɾόʔδϣϯΞοϓɾ৽॓%$ͷεϖʔεͷ໰୊ͳͲଟ͘ ͷ໰୊Λ๊͍͑ͯͨ w ϐΫγϒ৽޿ࠂαʔόʔͷΠϯϑϥߏ੒ʹ৽ଔΠϯϑϥΤϯδχΞ͕௅Μͩ w ϕϯνϚʔΫ΍ϓϩϑΝΠϦϯάΛऔΓͳ͕Β։ൃ͍ͯͨ͠Β3VCZʹΑΔ഑৴αʔόʔ͸ࠔ೉ ͕ଟ͔ͬͨ w

    ࣾ಺ॳͷ(PͰαʔόʔΛཱͯΔ͜ͱʹ w $JSDVTΛ࢖ͬͯ(PͷΞϓϦέʔγϣϯΛIPUEFQMPZ w ඵ΋མͱͤͳ͍޿ࠂαʔόʔʹඞਢͷ࢓૊Έ w (PͳΒϏϧυͨ͠΋ͷΛ഑෍͢Δ͚ͩͰσϓϩΠͰ͖Δ w /BHJPTͰࢮ׆؂ࢹ w ։ൃΛ͢Δ্Ͱ໰୊͸ͨ͘͞Μ͋ΔͷͰҰͭҰͭղফ͢Δඞཁ͕͋Δ
  56. ݸਓత͓͢͢Ίຊʢશһʣ w ମܥతʹֶͿ҆શͳ8FCΞϓϦέʔγϣϯͷ࡞Γํʢಙؙຊʣ w ಡ·ͣʹ8FCΞϓϦ։ൃෆՄೳ w Ϧʔμϒϧίʔυ w ձࣾͷίʔυΛ৮ΔͳΒಡΉ΂͖ w

    ϋΠύϑΥʔϚϯε8FCαΠτ w ߴ଎ʹ8FCαΠτΛදࣔ͢Δํ๏͕جຊ͔Βॻ͍ͯ͋Δ w 42-Ξϯνύλʔϯ w 42-Ͱ΍ͬͯ͸͍͚ͳ͍΂͔Βͣू w QJYJW͸ΞϯνύλʔϯͩΒ͚ w 5FBN(FFL w ٕज़ॻͰ͸ͳ͍͕άϧʔϓ։ൃʹ͓͚Δ৺ߏ͑ͳͲ
  57. ݸਓత͓͢͢Ίຊʢݸผʣ w αʔόΠϯϑϥΛࢧ͑Δٕज़ w গ͠ݹ͍͕ࠓճͷ࿩ʹڵຯ͕͋Ε͹ w ͳΔ΄Ͳ6OJYϓϩηε3VCZͰֶͿ6OJYͷجૅ w QSFGPSLͳͲϓϩηεʹ͍ͭͯ w

    ΠϯϑϥωοτϫʔΫΤϯδχΞͷͨΊͷωοτϫʔΫٕज़ˍઃܭೖ໳ w Πϯϑϥͷ࢓ࣄ಺༰͕஌Γ͍ͨਓʹ w αʔόΠϯϑϥΤϯδχΞཆ੒ಡຊϩάऩूdՄࢹԽฤ w qVFOUEͳͲʹڵຯ͕͋Ε͹