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

SAMPLE: The Database Times vol.2

SAMPLE: The Database Times vol.2

コミックマーケットC83で頒布予定の The Database Times vol.2 の見本です。
詳細はこちら: http://hayamiz.com/~hotchpotch/?p=95

Yuto Hayamizu

December 13, 2012
Tweet

More Decks by Yuto Hayamizu

Other Decks in Programming

Transcript

  1. ໨࣍ ·͕͖͑ iii Hadoop ͔ͭͬͨΒෛ͚͔ͳͱࢥͬͯΔ 1 IRR ͷา͖ํ 7 DNS

    ͦͷ߈ܸख๏ 17 C ݴޠɺLLVMɺΫϥ΢υɻ 23 ύλʔϯೝࣝͷʮߏ଄ͱྗʯ—ಀ૸࿦Λ௒͑ͯ— 25 Munin ͸෣͍߱Γͨ - The Munin has landed - 39 PgDay 2012 Japan Ϩϙʔτ 43 ࡶஊ 47 – iv–
  2. 1 Hadoop͔ͭͬͨΒෛ͚͔ͳͱࢥͬͯΔ ͸΍Έͣ § 1 MapReduce ͱ Hadoop 2012 ೥ݱࡏɼେن໛ͳσʔλॲཧʹؔΘΔٕज़ऀͷͳ͔ͰɼMapReduce

    ͋Δ͍͸ Hadoop ͱ ͍͏ݴ༿Λฉ͍ͨ͜ͱ͕ͳ͍ํ͸͍ͳ͍Ͱ͠ΐ͏ɻ MapReduce ͸ 2004 ೥ʹ Google ʹΑͬͯఏএ͞Εͨɼେن໛σʔλΛฒྻ෼ࢄॲཧ͢ΔͨΊ ͷϑϨʔϜϫʔΫͰ͢ɻGoogle ͸࣮ࡍʹࣾ಺Ͱ MapReduce Λ࢖͍ͬͯͨΒ͍͠Ͱ͕͢ɼιϑτ ΢ΣΞࣗମ͸ެ։͞Ε͓ͯΒͣɼ࣮ࡍʹ MapReduce Λ୭΋͕࢖͑Δͱ͍͏ঢ়گʹ͸͋Γ·ͤΜͰ ͨ͠ɻ ͦͷঢ়گΛม͑ͨͷ͕ Hadoop ͷొ৔Ͱ͢ɻ୺తʹݴ͏ͱɼHadoop ͱ͸ Java ʹΑΔ MapRe- duce ͷ࣮૷Ͱ͢ɻHadoop ͸ Apache Nutch ͱ͍͏શจݕࡧΤϯδϯج൫ͷͨΊʹ࣮૷͞Ε࢝ Ίͨ΋ͷͰ͕͢ɼ2006 ೥ʹ Apache Hadoop ϓϩδΣΫτͱͯ͠ಠཱ͠·͢ɻͦͯ͠΋ͱ΋ͱ͸ MapReduce Λग़ൃ఺ͱͯ͠։ൃ͕࢝·ͬͨ Hadoop Ͱ͕͢ɼMapReduce Ҏ֎ͷϑϨʔϜϫʔΫ ͰσʔλॲཧΛߦ͏͜ͱ΋ՄೳͱͳΓɼݱࡏʹ͓͍ͯ͸͔ͳΒͣ͠΋ʮ୯ͳΔ MapReduce ͷ࣮ ૷ʯͰ͋Δͱ͸͍͑·ͤΜɻΉ͠ΖɼMapReduce Λ֩ͱͯ͠ൃలͨ͠ฒྻ෼ࢄσʔλॲཧͷͨΊ ͷιϑτ΢ΣΞΤίγεςϜͱ͍͏ͷ͕ɼݱࡏʹ͓͚Δ Hadoop ͷ࢟Ͱ͋Δͱ͍͑ΔͰ͠ΐ͏ɻ § 2 σʔλϕʔεۀք͔Βͷ MapReduce ൷൑ 2009 ೥ɼWeb ্ʹ͋Δهࣄ͕ެ։͞Εͯେ͖ͳ࿩୊Λݺͼ·ͨ͠ɻ“MapReduce: A major step backwards” ͱ୊͞Εͨͦͷهࣄ͸ɼ౰࣌ͷΫϥ΢υίϯϐϡʔςΟϯάϒʔϜ΋૬·ͬͯେ ྲྀߦ͍ͯͨ͠ MapReduce(͋Δ͍͸ Hadoop) Λ௧྽ʹ൷൑͢Δ΋ͷͰͨ͠ɻ೔ຊޠʹ͢ΔͳΒ͹ ʮMapReduce: େ͖ͳٕज़తޙୀʯͱͳΔͰ͠ΐ͏͔ɻλΠτϧ͔Βͯ͠௅ઓతͳͦͷهࣄ͸ɼख ݫ͘͠ MapReduce ͷ͜ͱΛ൷൑͍ͯ͠·͢ɻ هࣄͷதʹཁ఺ͷϦετ͕͋ΔͷͰɼ੿༁ͱͱ΋ʹҾ༻͠·͢ɿ 1. A giant step backward in the programming paradigm for large-scale data intensive applications େن໛σʔλΠϯςϯγϒΞϓϦέʔγϣϯʹ͓͚ΔϓϩάϥϛϯάύϥμΠϜͷେ͍ ͳΔޙୀ 2. A sub-optimal implementation, in that it uses brute force instead of indexing ࡧҾΛ࢖Θͳ͍૯౰ͨΓํࣜͷɼ͓Αͦ࠷ળͱ͸ݴ͍͕͍࣮ͨ૷ 3. Not novel at all – it represents a specific implementation of well known techniques developed nearly 25 years ago શ͘৽نੑʹ͚ܽΔ – 25 ೥ۙ͘લʹ։ൃ͞Εͨख๏ͷݶఆతͳ࣮૷Ͱ͔͠ͳ͍ 4. Missing most of the features that are routinely included in current DBMS ݱ୅ͷ DBMS ͕͘͝౰ͨΓલʹ͍࣋ͬͯΔػೳͷຆͲ͕͚͍ܽͯΔ 5. Incompatible with all of the tools DBMS users have come to depend on DBMS Ϣʔβ͕࢖͍ͬͯΔπʔϧͷ΄ͱΜͲશͯͱޓ׵ੑ͕ͳ͍
  3. 7 IRRͷา͖ํ yuyarin Πϯλʔωοτʹ͓͚ΔυϝΠϯؒϧʔςΟϯάͰ͸ɺӡ༻ͷརศੑ΍ηΩϡϦςΟͷ໘͔Βܦ ࿏৘ใΛ؅ཧ͢Δσʔλϕʔε͕ٻΊΒΕ͍ͯΔɻͦ͜Ͱ࢖ΘΕΔͷ͕ϧʔςΟϯάϙϦγʔΛ هड़͢Δ͜ͱΛ໨తͱͨ͠ IRR(Internet Routing Registry) ͱ͍͏γεςϜͰ͋ΔɻຊߘͰ͸

    IP ϧʔςΟϯάͷجૅΛ؆୯ʹड़΂ͨޙʹɺυϝΠϯؒϧʔςΟϯάͷӡ༻ͱܦ࿏ϋΠδϟοΫͷ໰ ୊ʹ͍ͭͯड़΂ɺIRR ͷ࢓૊Έͱ࢖͍ํɺ·ͨ IRR ͷ๊͑Δ໰୊ͷݱঢ়Λ঺հ͢Δɻ ͜ͷهࣄͰ͸ IP ௨৴ͷجૅ (IP ΞυϨεͱαϒωοτɺύέοτసૹͷ࢓૊Έ) ʹؔ͢Δ஌ࣝ Λ༗͍ͯ͠Δ͜ͱΛલఏͱ͢Δ͜ͱΛྃ͝ঝ௖͖͍ͨɻ § 1 AS ؒϧʔςΟϯάͱܦ࿏ϑΟϧλ § 1.1 ܦ࿏ަ׵ͱϧʔςΟϯά IP ωοτϫʔΫͷ໾ׂ͸Ѽઌͷϊʔυ·Ͱ IP ύέοτΛಧ͚Δ͜ͱͰ͋Δ͕ɺѼઌʹରͯ͠ ύέοτΛಧ͚ΔͨΊʹ͸ɺͲͷϧʔλʹύέοτΛసૹ͢Ε͹Α͍͔Λ஌Δඞཁ͕͋Δɻύιί ϯͳͲͷΤϯυϗετ͸ग़ޱʹͳ͍ͬͯΔϧʔλ (σϑΥϧτɾήʔτ΢ΣΠ) ʹύέοτΛ͢΂ ͯૹΕ͹Α͍͕ɺ్தͷϧʔλ͸ͦ͏͸͍͔ͳ͍ɻͦͷͨΊʹ͸ϧʔλؒͰ֤ࣗͷ౸ୡՄೳͳѼઌ ωοτϫʔΫͷܦ࿏৘ใΛ޿ࠂ͠߹͍ɺܦ࿏ަ׵Λߦ͏ɻ ܦ࿏ަ׵Λߦ͍ɺूΊΒΕͨܦ࿏৘ใ͔ΒύέοτΛૹ৴͢Δܦ࿏ (ϕετύε) Λܾఆ͢Δ͜ ͱΛϧʔςΟϯάͱݺͼɺͦͷͨΊͷϓϩτίϧΛϧʔςΟϯάϓϩτίϧͱݺͿɻ ܦ࿏͸େ͖͘෼͚ͯɺѼઌωοτϫʔΫɺωΫετϗοϓɺϝτϦοΫͷ̏ͭͷ৘ใͰߏ੒͞ ΕΔɻѼઌωοτϫʔΫ͸ 192.0.2.128/25 ͷΑ͏ʹ prefix Ͱදݱ͞ΕΔɻωΫετϗοϓ͸Ѽઌ ωοτϫʔΫʹύέοτΛૹΔͨΊʹ࣍ʹύέοτΛసૹ͢ΔϊʔυͷΞυϨεͰ͋ΔɻϝτϦο Ϋ͸ѼઌωοτϫʔΫʹରͯ͠ෳ਺ͷωΫετϗοϓ͕͋ͬͨ৔߹ʹͲͷωΫετϗοϓΛ༏ઌ͢ Δ͔ΛܾΊΔͨΊͷ஋Ͱ͋Δɻ͜ͷ஋ͷ಺༰͸ϧʔςΟϯάϓϩτίϧʹΑͬͯҟͳΔɻ § 1.2 AS ͱυϝΠϯؒϧʔςΟϯά ̍ͭͷಉ͡ϙϦγʔͰӡ༻͞ΕΔωοτϫʔΫͷൣғΛυϝΠϯͱݺͿɻ·ͨɺ͜ͷυϝΠϯΛ AS(Autonomous System, ࣗ཯γεςϜ) ͱݺͼɺ4 byte ͷҰҙͳ൪߸Ͱ͋Δ AS ൪߸ʹΑͬͯ۠ ผ͞ΕΔɻͳͷͰΠϯλʔωοτ͸ AS ͱ͍͏ࣗ཯తͳωοτϫʔΫ͕૬ޓʹ઀ଓͨ͠ʮωοτ ϫʔΫͷωοτϫʔΫʯͱ͍͏͜ͱ͕Ͱ͖Δɻ AS ͷ಺෦ͰߦΘΕΔϧʔςΟϯάΛυϝΠϯ಺ϧʔςΟϯά (Intra-domain Routing) ͱݺͿɻ υϝΠϯ಺ϧʔςΟϯά͸֤ AS Ͱ޷͖ͳΑ͏ʹߦ͏͜ͱ͕Ͱ͖Δɻ೔ຊͰ͸ OSPFɺ๺ถͰ͸ IS-IS ͕ओͳϧʔςΟϯάϓϩτίϧͱͯ͠ར༻͞Ε͍ͯΔɻ AS ͷؒͰߦΘΕΔϧʔςΟϯά͸υϝΠϯؒϧʔςΟϯά (Inter-domain Routing) ͱݺͿɻ υϝΠϯؒϧʔςΟϯά͸શੈքͷ͢΂ͯͷ AS Ͱڞ௨ͷϧʔςΟϯάϓϩτίϧΛར༻͠ͳ͚Ε ͹ͳΒͣɺݱࡏ͸ BGP4 ͕ར༻͞Ε͍ͯΔɻυϝΠϯؒϧʔςΟϯάͰ͸υϝΠϯ಺ͷϧʔςΟ ϯά͸Ӆณ͞Ε͍ͯΔɻ ͋Δܦ࿏ʹ͍ͭͯܦ࿏޿ࠂΛߦͳ͍ͬͯΔେݩͷ AS ͷ͜ͱΛ Origin AS ͱݺͿɻ
  4. 8 § 1.3 AS ؒͷ઀ଓؔ܎ Πϯλʔωοτ͸ AS ͕૬ޓ઀ଓͯ͠Ͱ͖ͨωοτϫʔΫͰ͋Δͱ͍͏࿩Λ͕ͨ͠ɺ͢΂ͯͷ AS ͕ର౳ʹ઀ଓ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍ɻAS

    ؒͷؔ܎ʹ͸େ͖͘෼্͚ͯԼؔ܎ͷτϥϯδοτ (transit) ͱର౳ͳؔ܎ͷϐΞ (peer) ͷ͕̎ͭଘࡏ͢Δɻ͜ͷ AS ͷڧऑؔ܎͸઀ଓ͍ͯ͠Δ AS ͷ਺΍஌͍ͬͯΔܦ࿏ͷ਺ɺͭ·Γ౸ୡੑͷ޿͞Ͱܾ·ͬͯ͘Δɻ τϥϯδοτ͸͓ۚΛࢧ෷ͬͯଞͷ AS ͔Β઀ଓੑΛങ͏ؔ܎Ͱ͋Δɻ ʮτϥϯδοτΛങ͏ʯ ͱ΋ݴ͏ɻ઀ଓੑΛചΔଆΛ਌ AS ΍τϥϯδολɺങ͏ଆΛࢠ AS ΍ΧελϚʔͳͲͱݺͿɻτ ϥϯδοτͰ͸ྲྀΕΔτϥϑΟοΫྔʹԠͯ͡ Mbps ୯ՁͰֹ݄ྉ͕ۚ՝ۚ͞ΕΔ͜ͱ͕ଟ͍ɻ ΄ͱΜͲͷ AS ͸τϥϯδοτΛ্Ґͷ AS ͔Βߪೖ͍ͯ͠ΔɻͲ͔͜Β΋τϥϯδοτΛങΘ ͳ͍࠷্Ґͷ AS ͸ Tier 1 ͱݺ͹ΕΔɻݱࡏ 14 ͷ AS ͕ Tier 1 ͱ͞Ε͓ͯΓɺ೔ຊͷࣄۀऀͰ ͸ NTT Communications ͷ AS2914 ͕།Ұͷ Tier 1 Ͱ͋Δɻ ҰํͰϐΞ͸ڧऑؔ܎ͷ͍ۙ AS ಉ͕࢜ແঈͰܦ࿏ަ׵Λߦ͏ؔ܎Ͱ͋ΔɻҰൠʹʮϐΞΛு Δʯͱදݱ͞ΕΔ͕ɺBGP ʹ͓͚Δྡ઀ؔ܎ΛϐΞͱݺͿͨΊɺτϥϯδοτͷؔ܎Ͱ΋ٕज़త ʹ͸ʮϐΞΛுΔʯͷͰจ຺ʹ஫ҙ͢Δඞཁ͕͋Δɻ΋ͱ΋ͱτϥϯδοτΛ௨ͯ͠ߦΘΕ͍ͯͨ τϥϑΟοΫަ׵ΛϐΞʹΑͬͯ௚઀ߦ͏͜ͱʹΑΓɺैྔ՝ۚͰ͋Δτϥϯδοτͷ࢖༻ྉΛԼ ͛Δ͜ͱ͕Ͱ͖Δɻ § 1.4 ܦ࿏޿ࠂͱτϥϑΟοΫίϯτϩʔϧ ͯ͞ɺܦ࿏޿ࠂΛߦ͏ͱɺ౰વͦͷܦ࿏Ѽͷύέοτ͕ྲྀΕ͜ΜͰ͘Δɻਖ਼֬ʹ͸ର޲ AS ͷ ϧʔλʹ͓͍ͯϧʔςΟϯάͷϓϩηεͰϕετύεʹબ͹ΕΕ͹ɺͰ͋Δɻܦ࿏޿ࠂΛͯ͠΋Β ͏ͱɺͦͷܦ࿏Ѽͷύέοτ͕ର޲ AS ͷϧʔλʹٵ͍ࠐ·ΕΔɻࣗ෼ AS ͷϧʔλͰϕετύε ʹબ͹Εͨର޲ϧʔλʹٵ͍ࠐ·ΕΔ͕ɺࣗ෼ͷ AS ͷϧʔλͳͷͰ੍ޚ͸؆୯Ͱ͋Δɻ ඞཁͳτϥϑΟοΫ͸ࣗ෼ͷ AS Λ௨ͯ͠ྲྀͯ͠΋ྑ͍͕ɺࣗ෼ʹશؔ͘܎ͷͳ͍τϥϑΟοΫ Ͱ͋Ε͹ɺͨͱ͓͑ۚͷ͔͔Βͳ͍ϐΞͰ͋ͬͯ΋ྲྀͨ͘͠ͳ͍͠ɺ·ͯ͠΍͓ۚͷ͔͔Δτϥϯ δοτʹ͸ࢮΜͰ΋ྲྀͨ͘͠ͳ͍ɻฏͨ͘ݴ͑͹λμ৐ΓېࢭͰ͋ΔɻτϥϑΟοΫ͕૿͑Δ΄Ͳ ઃඋ͕ඞཁʹͳΔ͔Βͩɻ ͦ͏͍ͬͨܦࡁతͳಈػʹΑͬͯɺτϥϑΟοΫΛίϯτϩʔϧ͠ͳ͚Ε͹ͳΒͳ͍ͷ͕ͩɺج ຊݪଇ͸ଘࡏ͢ΔɻτϥϯδοτͰ͸ɺ਌ AS ͸ࢠ AS ͷ޿ࠂ͢Δܦ࿏Λશੈքʹରͯ͠޿ࠂ͢Δ ੹೚͕͋Γɺࢠ AS ͸਌ AS ͔Βͷܦ࿏Λ͢΂ͯड͚ೖΕΔɻϐΞͰ͸ɺࣗ෼ͷࢠ AS ͱࣗ AS ͷ ܦ࿏Λ޿ࠂ͠ɺϐΞઌͷ AS ͱͦͷࢠ AS ͷ޿ࠂ͢Δܦ࿏Λड͚ೖΕΔɻ͜ͷ΁Μͷৄ͍͠࿩͸ඇ ৗʹ໘ന͍ͱ͜Ζ͚ͩΕͲ΋ɺࠓճͷຊ୊͔Β͸ҳΕΔͷͰ·ͨͷػձʹɻ τϥϑΟοΫΛίϯτϩʔϧ͢Δํ๏͸͍͔ͭ͘ଘࡏ͢Δ͕ɺAS ؒʹ͓͍ͯ͸·ͣܦ࿏Λ޿ࠂ ͢Δ͔͠ͳ͍͔ͷೋ୒Ͱ͋ΔɻϝτϦοΫͳͲͷࡉ͔͍ύϥϝʔλ͸ܦ࿏Λ޿ࠂ͢ΔͱܾΊ͔ͯΒ ͷ࿩Ͱ͋Δɻ § 1.5 ܦ࿏ϑΟϧλ Ͳͷ૬खʹͲͷܦ࿏Λ޿ࠂ͢Δ͔ɺͲͷ૬ख͔ΒͷͲͷܦ࿏޿ࠂΛड͚ೖΕΔ͔ɺͦΕΛ੍ޚ͢ ΔͨΊʹϧʔλʹܦ࿏ϑΟϧλΛઃఆ͢ΔɻͦͷͨΊɺࣗ AS ͕৽͘͠ܦ࿏޿ࠂΛߦ͏ͱ͖͸ྡ઀ AS ʹͦΕΛ఻͑ͯϑΟϧλΛ։͚ͯ΋ΒΘͳ͚Ε͹͍͚͍ͳ͍ɻ͜Εʹ͸ϝʔϧ͕࢖ΘΕ͍ͯΔ ͜ͱ͕ଟ͍͕ɺྡ઀ AS ͕ࣗ AS ͷܦ࿏Λ޿ࠂ͍ͯ͠Δ৔߹͸ɺ͞Βʹͦͷྡ઀ AS ʹ΋ϑΟϧλ Λۭ͚ͯ΋Β͏ඞཁ͕͋Δɻ͜ͷΑ͏ͳέʔε͸τϥϯδοτͰى͜Γ͏Δͷ͕ͩɺ࠷্Ґͷ Tier
  5. 9 1 ͷ࿑ྗ͸൒୺ͳ΋ͷͰ͸ͳ͍ɻAS Rank*1ʹΑΕ͹ AS2914 ͸શੈքͷ໿ 1/3 ͷ 13,242 ͷࢠ

    AS Λ๊͑ͯ 156,530 ͷ IPv4 ͷܦ࿏Λ޿ࠂ͍ͯ͠Δɻਓखͷ͔͔ΔϝʔϧͳΜ͔Ͱ͸΍ͬͯΒΕ ͳ͍ͷͰɺܦ࿏৘ใΛσʔλϕʔεԽͯࣗ͠ಈతʹϑΟϧλΛੜ੒ͯ͠൓ө͞ΕΔ࢓૊Έ͕ඞཁʹ ͳͬͯ͘Δɻ § 2 ࢿݯ؅ཧͱܦ࿏ϋΠδϟοΫ § 2.1 AS ൪߸ͱ IP ΞυϨεͷؔ܎ Πϯλʔωοτ͸ࣗ཯తͳγεςϜͰ͸͋Δ͕ɺAS ൪߸΍ IP ΞυϨεͳͲͷࢿݯ͸ॏෳར༻ ͕ੜ͡ͳ͍Α͏ʹ୭͔͕౷Ұతʹ؅ཧΛߦΘͳ͚Ε͹ͳΒͳ͍ɻ͜͏͍ͬͨࢿݯ͸֊૚తʹ૊৫͞ Εͨ Internet Registry ʹΑͬͯ؅ཧ͞Ε͍ͯͯɺ೔ຊͷ৔߹Ͱ͸ɺ࠷্Ґͷ IANAɺΞδΞଠฏ ༸஍Ҭͷ APNICɺ೔ຊࠃͷ JPNIC ͷΑ͏ʹͯ͠֊૚తʹࢿݯׂ͕Γ౰ͯΒΕ͍ͯΔɻͪͳΈʹ Ԥभ஍Ҭ͸ RIPEɺ๺ถ஍Ҭ͸ ARIN Ͱɺ೔ຊʹ͓͚Δ APNIC ʹ૬౰͢Δɻ೔ຊࠃ಺Ͱ AS ൪߸ ΍ IP ΞυϨεΛऔಘ͢Δ৔߹͸ JPNIC Λ૭ޱͱׂͯ͠ΓৼΓΛड͚Δɻ AS ൪߸΋ IP ΞυϨε΋ͦΕͧΕ͕औಘΛਃ੥ͨ͠૊৫΍ݸਓʹׂΓৼΒΕΔͨΊɺAS ൪߸ͱ IP ΞυϨε͸ࢿݯ؅ཧ্͸௚઀ͷؔ܎ੑΛ͍࣋ͬͯͳ͍ɻ·ͨɺҰͭͷ૊৫͕ෳ਺ͷ AS Λӡ༻ ͢Δ͜ͱ΋ଟ͍͠ɺଞͷ૊৫ͷࢠ AS ʹΞυϨεϒϩοΫΛି༩͢Δ͜ͱ΋͋ΔͨΊɺ࣮ࡍʹͲͷ AS ͔ΒͲͷܦ࿏͕޿ࠂ͞ΕΔ͔͸ɺ޿ࠂ͞ΕͯΈͳ͍ͱΘ͔Βͳ͍ § 2.2 ܦ࿏ϋΠδϟοΫ Internet Registry ͔Β·ׂͩΓৼΓΛड͚͍ͯͳ͍ΞυϨεϒϩοΫ΍ɺଞͷ૊৫͕औಘ͍ͯ͠ ΔΞυϨεϒϩοΫΛউखʹ޿ࠂ͢Δ͜ͱ͸ٕज़తʹ͸ՄೳͰ͋Δɻ୯७ʹϧʔλʹͦ͏͍͏ઃఆ ΛೖΕΕ͹͍͍͚ͩͰɺ໔ڐͷΑ͏ͳ΋ͷ͸͍Βͳ͍ɻ͜͏͍͏ࣄྫΛܦ࿏ϋΠδϟοΫͱݺͿɻ લষͰܦ࿏Λྲྀ͢ͱτϥϑΟοΫ͕ྲྀΕΔ͜ͱΛઆ໌ͨ͠௨Γɺܦ࿏ϋΠδϟοΫΛड͚Δͱɺ ຊདྷࣗ෼ͷ AS ʹྲྀΕΔ͸ͣͩͬͨτϥϑΟοΫ͕ଞͷ AS ʹྲྀΕͯ͠·͏ɻύέοτ͕౸ୡෆೳ Ͱഁغ͞ΕΔՄೳੑ΍ɺ౪ௌɾվ᜵ͷڪΕ΋͋Δɻ ܦ࿏ϋΠδϟοΫ͸සൟʹى͖͍ͯͯɺͦͷ΄ͱΜͲ͸ΞυϨεͷଧͪؒҧ͍΍ AS ֎ʹग़͞ ͳ͍ܦ࿏Λ࿙Βͯ͠͠·͏ͳͲͷઃఆϛεͰ͋Δɻେن໛ͳࣄ݅ͱͯ͠͸ύΩελϯςϨίϜ͕ YouTube ͷܦ࿏ΛϋΠδϟοΫͯ͠͠·͍ɺYouTube ʹΞΫηεෆೳʹͳͬͨࣄ݅ͳͲ͕ڍ͛Β ΕΔɻ͜ͷࣄ݅Ͱ͸ύΩελϯࠃ಺Ͱ YouTube ΁ͷΞΫηεΛःஅ͢ΔͨΊʹِͷܦ࿏৘ใΛྲྀ ͯ͠τϥϑΟοΫΛٵ͍ࠐ΋͏ͱͨ͠ͱ͜ΖઃఆϛεͰِͷܦ࿏৘ใΛ AS ֎෦ʹ࿙Βͯ͠͠·ͬ ͨͷ͕ݪҼͩͱݴΘΕ͍ͯΔɻ ͜͏ͨ͠ܦ࿏ϋΠδϟοΫ͕ߦΘΕͨࡍʹɺ͙͢ʹؾͮ͘͜ͱ͕ग़དྷΔ࢓૊Έ͕ඞཁʹͳΔɻܦ ࿏ϋΠδϟοΫ͔Ͳ͏͔Λௐ΂ΔͨΊʹ͸ɺͦͷܦ࿏ͷ Origin AS ͕ଥ౰Ͱ͋Δ͔ΛݟΕ͹͍͍ ͷ͕ͩɺલड़ͷͱ͓Γ AS ͱ IP ΞυϨεͷରԠදͳΜͯ΋ͷ͸ͳ͍ͨΊɺௐ΂Δ͜ͱ͸Ͱ͖ͳ͍ɻ ࠜຊతͳղܾͱͯ͠ॺ໊෇͖ͷܦ࿏Λྲྀ͢ BGPsec ͳͲ͕ఏҊ͞Ε͍ͯΔ͕ɺͻͱ·ͣͷӡ༻త ͳରॲͱͯ͠ɺOrigin AS ͱܦ࿏ͷؔ܎ੑͷ৘ใΛ࣋ͬͨσʔλϕʔεΛ࡞੒ͯ͠ɺͦΕͱ BGP Ͱ࣮ࡍʹྲྀΕ͍ͯΔܦ࿏Λൺֱ͢Δ͜ͱͰɺϋΠδϟοΫΛݕ஌͢ΔऔΓ૊Έ͕ߦΘΕ͍ͯΔɻͦ ͷͨΊʹ͸౰વɺਖ਼֬ͳ Origin AS ͱܦ࿏ͷؔ܎ੑͷ৘ใΛ࣋ͬͨσʔλϕʔε͕ඞཁʹͳΔɻ *1 http://as-rank.caida.org/
  6. 17 DNS ͦͷ߈ܸख๏ suu-g (@suu_g) § 1 ͸͡Ίʹ ίϯϐϡʔςΟϯάʹ͓͍ͯωοτϫʔΫੑΛແࢹͰ͖ͳ͘ͳͬͨݱ୅ʹ͓͍ͯ͸ɺΠϯλʔ ωοτ͸ͦͷଘࡏࣗମ͕ج൫ʹͳΓͭͭ͋Γ·͢ɻ͍·Ͱ͸ɺͦͷ্ͰίϯϐϡʔςΟϯάΛߦ͏

    ͍ΘΏΔΫϥ΢υʢসʣίϯϐϡʔςΟϯά͕શ੝ظͰɺSaaS, HaaS, IaaS ʹଓ͍ͯ࠷ۙ͸ PaaS ΋ൃୡ͖͍ͯͯ͠·͢ɻ·ͨɺΑΓ਎ۙͳͱ͜ΖͰ΋ɺզʑ͸ Dropbox Λ࢖ͬͯσʔλΛ࣋ͪӡ ͼɺGmail Λग़ઌͰ΋ݟͯɺTwitter ΍ Line, Skype Ͱ༑ਓΒͱ࿩͠߹͍ɺϑϥογϡϝϞϦ͕ flickr ʹࣸਅΛΞοϓϩʔυ͠ɺՈʹ͍Δͱ͖ʹి࿩͕໐ͬͨΒΠϯλʔωοτ VPN Ͱ৬৔ʹܨ ͗ɺͱίϯϐϡʔλͰ࢖༻͢Δػೳ͸େ఍ΠϯλʔωοτΛܦ༝͢Δ΋ͷͱͳ͍ͬͯ·͢ɻ DNS ͸ɺ͜ͷΠϯλʔωοτͷੈքͰ࠷΋޿͘੒ޭ͍ͯ͠Δ޿Ҭ෼ࢄ DB Ͱ͢*1ɻ͋ΒΏΔ αʔϏεΛར༻͢ΔࡍʹɺDNS ͸ͦͷཪͰॗʑͱ࢓ࣄΛ͍ͯ͠·͢ɻͰ͕͢ɺͦͷ࢓ࣄ͸ɺզʑ ͕ຊ౰ʹ৴པͯ͠ྑ͍Ϩϕϧͷ΋ͷͳͷͰ͠ΐ͏͔ʁιϑτ΢ΣΞϨϕϧͰߟ͍͑ͯΔਓ͸ɺͲͷ ఔ౓ DNS ʹؾΛ࢖ͬͨΒΑ͍ͷͰ͠ΐ͏͔ʁ͜ͷهࣄͰ͸ɺDNS ΁ͷ޿͘஌ΒΕͨ߈ܸख๏Λ આ໌͍͖ͯ͠·͢ɻ ͳ͓චऀ͸झຯͷ DNS ӡ༻ऀͰ͋Γझຯͷ DNS ษڧऀͰ͋Δ͚ͩͳͷͰɺ͜ͷจষʹॻ͔ Εͨ͜ͱʹ͍ͭͯ੹೚Λ࣋ͯ·ͤΜɻهड़ʹ໰୊͕͋Δ෦෼͕͋Ε͹ɺڭ͍͚͑ͯͨͩΔͱ޾͍ Ͱ͢ɻ § 2 DNS ͱ߈ܸ DNS ʹ͸جຊతʹ͸ࡾͭͷొ৔ਓ෺͕͋Γ·͢ɻ୺຤ʢελϒϦκϧόʣ ɺΩϟογϡαʔό ʢϑϧϦκϧόʣ ɺͦΕ͔ΒݖҖαʔόͰ͢ɻ͜ͷ͏ͪɺDNS ʹ͓͍ͯʮ߈ܸʯͷର৅ͱͳΔͷ͸ɺ جຊతʹ͸ΩϟογϡαʔόͰ͢*2ɻΩϟογϡαʔόʹِͷ৘ใΛ஫ೖ͢Δ͜ͱͰɺͦͷΩϟο γϡαʔόΛར༻͍ͯ͠Δϗετ܈Λ߈ܸ͢Δख͕͔Γʹ͠·͢ɻ Ωϟογϡαʔόͱݴͬͯ΋Өڹൣғ͸༷ʑͰɺISP ͷΩϟογϡαʔόͰ͋Ε͹ͦΕͦ͜਺ສ ਓ΁ͷӨڹ͕͋Γ͏ΔͰ͠ΐ͏͠ɺ͋Δ͍͸ՈఉͷΩϟογϡαʔό΁ͷ߈ܸ͕͋Ε͹Өڹ͸਺ਓ Ͱ͕͢ɺͦ͜ʹඪతܕϝʔϧ͕དྷΕ͹ඇৗʹޮՌతͳ߈ܸʹͳΓಘ·͢ɻDNS ΁ͷ߈ܸ͸ɺιϑ τ΢ΣΞར༻࣌ʹଈ࠲ʹݟഁΔ͜ͱ͸ࠔ೉Ͱ͔͢Βɺ߈ܸΛड͚ͨ࣌ͷඃ֐΋ਙେͰ͢ɻ § 2.1 ਖ਼ৗͳγφϦΦ Ϣʔβ٢ా͘Μ͸ɺ example.jp ͷ IP ΞυϨεΛ஌Γ͍ͨͨΊɺ Ωϟογϡαʔό Alice ʹ DNS Request ΛૹΓ·͢ɻAlice ͸ݖҖαʔό Bob ʹ໰͍߹ΘͤΛૹΓɺؼ͖ͬͯͨ Response Λ Ωϟογϡ͠·͢ɻͦͯ͠ɺ ͦͷ Response ΍Ωϟογϡʹج͍ͮͯ Alice ͸٢ా͘Μʹ Response Λฦ͠·͢ɻ͜Ε͕Ұ࿈ͷਖ਼ৗͳγφϦΦͰ͢ɻ *1 ͜ͷຊʹॻͨ͘Ίͷ͚ͭ͜͡׬ྃ *2 DNS Amp ߈ܸͱ͔͸ผܥ౷ͳͷͰ͜͜Ͱ͸औΓ্͛·ͤΜ
  7. 18 § 2.2 ߈ܸγφϦΦ ҰݴͰݴ͏ͱɺ ʮຊདྷͷύέοτ͕དྷΔલʹِ଄ύέοτΛૹΓࠐΊ͹͍͍ʯͱ͍͏ͷ͕ DNS ʹ͓͚Δجຊతͳ߈ܸख๏Ͱ͢ɻΩϟογϡαʔό Alice ͕ݖҖαʔό

    Bob ʹରͯ͠໰͍߹Θͤ ΛૹΔͱ͖ɺBob ͕ૹͬͨ Response ͕ؼͬͯ͘Δલʹ߈ܸऀ Charlie ِ͕଄ύέοτΛ Alice ʹૹΔ͜ͱ͕Ͱ͖ͨͳΒɺ߈ܸ͸੒ཱ͠·͢ɻ ͜ͷ߈ܸ͸ɺ΋࣮͠ݱ͕Ͱ͖ΔͷͳΒଞͷͲΜͳϓϩτίϧͰ΋ಉ͜͡ͱ͕Ͱ͖ΔͷͰ͕͢ɺ DNS Ͱ͸ͦΕ͕ۃ୺ʹ΍Γ΍͘͢ͳ͍ͬͯ·͢ɻͦͷཧ༝ΛɺύέοτϑΥʔϚοτΛݟͳ͕Β ௥ͬͯߦ͖·͠ΐ͏ɻ § 2.3 ύέοτͷِ଄ DNS ͷ੬ऑੑ͸ɺجຊతʹ͸ͦΕ͕ UDP ͷ্Ͱಈ͍͍ͯΔ͜ͱʹىҼ͠·͢ɻ 0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Source | Destination | | Port | Port | +--------+--------+--------+--------+ | | | | Length | Checksum | +--------+--------+--------+--------+ ਤ 3.1 UDP Header Format 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |QR| Opcode |AA|TC|RD|RA| Z | RCODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QDCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ANCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | NSCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ARCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ਤ 3.2 DNS Header Format UDP ύέοτ͸ RFC768 *3 Ͱఆٛ͞Ε͍ͯΔΑ͏ʹɺϙʔτ൪߸ (16bit) ͱ௕͞ɾνΣοΫ αϜ͔͠ͳ͍ۃΊͯ؆ૉͳύέοτͰ͢ʢਤ 3.1ʣ ɻ·ͨ DNS ύέοτͷϔομϑΥʔϚοτ͸ RFC 1035 *4 ʹ͋Γ·͢ɻDNS ύέοτʹ͸ɺΫΤϦࣗମʹؔ͢Δ৘ใҎ֎ʹ 16bit ͷ Query ID ͕ೖ͍ͬͯ·͢ʢਤ 3.2ʣ ɻ DNS ͷύέοτΛِ଄͢Δࡍʹ͸ɺDestination Port Number ٴͼ DNS Query ID Λِ૷͠ ͑͢͞Ε͹ɺ߈ܸର৅ͷαʔόʹड͚෇͚ΒΕΔύέοτʹͳΓ·͢ɻ͜ΕΒ͸࣮ࡍͷύέοτΛ ݟΕ͹࣮֬ʹऔಘͰ͖·͕͢ɺͦ͏Ͱͳ͍৔߹Ͱ΋͜ͷ 32bit ͷൣғΛਪఆͯ͠߈ܸ͢Δ͜ͱ͕Մ ೳͰ͢ɻ32bit ͷൣғΛਪఆͯ͠ͷ߈ܸͰ͸Ұݟ͢Δͱ੒ޭ཰͕௿ͦ͏Ͱ͕͢ɺ߈ܸʹ͍ͭͯਂ۷ *3 http://tools.ietf.org/html/rfc768 *4 http://tools.ietf.org/html/rfc1035
  8. 23 CݴޠɺLLVMɺΫϥ΢υɻ hogelog § 1 ͋ͳͨͱΘͨ͠ͱ C ݴޠ 1969 ೥ʹ

    OS Λهड़͢ΔͨΊͷϓϩάϥϛϯάݴޠͱͯ͠࢈੠Λ͋͛ͨ C ݴޠ͸ѹ౗తͳ੎͍ Ͱීٴ͠ɺݱࡏʹࢸͬͯ΋͋ΒΏΔ৔໘Ͱ࢖ΘΕଓ͚͍ͯΔɻͦΜͳ௕͍ྺ࢙Λ࣋ͪੈքதͷࠓੲ ϓϩάϥϚ͕ͨͪ࢖͍ଓ͚͖ͯͨ C ݴޠʹ͸๲େͳιϑτ΢ΣΞࢿ࢈͕͋Δͷͩɻ ΫʔϧͰ͢͹Β͍͠ݱ୅తϓϩάϥϛϯάݴޠॲཧܥ͸͍ͭͩͬͯͦΕΒ C ݴޠͷιϑτ΢Σ Ξࢿ࢈Λ͍͔ʹ༗ޮ׆༻͢Δ͔ʹۤ৺͖ͯͨ͠ɻOS ΍ϥΠϒϥϦͳΜͯ΋ͷ͸͍͍ͩͨ C ݴޠͰ ॻ͔Ε͍ͯΔͷͰͦΕΒͷػೳΛ࢖Θͳ͍͜ͱʹ͸݁ہ͍͍ͩͨԿ΋Ͱ͖ͳ͍ɻC ݴޠͷϥΠϒϥ ϦΛҰ൪࢖͏ͷָ͕ͳͷ͸౰વ C ݴޠͰ͋ΔɻC ݴޠ͕Α͘࢖ΘΕ͍ͯΔ͜ͱɺͦΕࣗମ͕ C ݴ ޠ͕Α͘࢖ΘΕΔཧ༝ͱͳ͍ͬͯΔͷͩɻ C++ɺDelphiɺD ݴޠͱ͍ͬͨωΠςΟϒίϯύΠϧܗࣜͷϓϩάϥϛϯάݴޠॲཧܥ͸ C ݴ ޠͷؔ਺΍ߏ଄ମͳͲΛࣗવʹѻ͏ͨΊɺݺͼग़͠ن໿΍໊લϚϯάϦϯάΛ C ݴޠʹ߹ΘͤΔ ػೳΛඋ͍͑ͯΔɻ ωΠςΟϒίϯύΠϧ͞Εͳ͍ݴޠॲཧܥʹΑ͋͘ΔΞϓϩʔν͸ Perl ͷ XS ΍ Ruby ͷωΠ ςΟϒ֦ுɺJava ͷ JNI ͷΑ͏ʹɺC ݴޠͰͦͷݴޠॲཧܥͷػೳΛ֦ு͢Δ΍Γํͩɻ͜ͷ΍ Γํʹ͸େ͖ͳ໰୊͕͋Δɻྫ͑͹ Perl ॲཧܥ͔Βͱ͋Δ C ݴޠͷϥΠϒϥϦΛѻ͍͍ͨ࣌͸ݴ ޠॲཧܥͱϥΠϒϥϦͷͭͳ͗෦෼ͷίʔυΛ C ݴޠͰॻ͔ͳ͚Ε͹ͳΒͳ͍ɻͦͷݴޠॲཧܥ ࣗମͷιʔείʔυ΋ಡΈࠐ·ͳ͚Ε͹͍͚ͳ͍ɻC ݴޠͰॻ͖ͨ͘ͳ͍͔Β Perl Λ࢖͍ͬͯΔ ͷʹɺ݁ہ C ݴޠΛͨ͘͞ΜಡΈॻ͖͠ͳ͚Ε͹͍͚ͳ͍ɻC ݴޠͷϥΠϒϥϦΛ࢖͍͍ͨΜͩ ͔Β C ݴޠͰॻ͚ͱݴΘΕΕ͹ͦΕ·Ͱ͔΋͠Εͳ͍͚Ͳɺ΋͏ͪΐͬͱָ΋͍ͨ͠ɻ *1 § 1.1 Powered by libffi C ݴޠΛॻ͖ͨ͘ͳ͍ɺ͚Ͳؾܰʹ C ݴޠͷϥΠϒϥϦΛ࢖͍͍ͨɻPython ͷ ctypesɺRuby ͷ ffiɺJava ͷ JNAɺLua ͷ AlienɺMozilla ͷ js-ctypes ͳͲ͸·͞ʹͦͷཁٻʹԠ͑Δ΋ͷͩɻ ͜ΕΒ͸࣮ߦ࣌ʹ C ݴޠͷߏ଄ମ΍ؔ਺΁ͱΞΫηεͰ͖ΔػೳΛݴޠॲཧܥʹఏڙ͢Δɻ࢖͍ ͍ͨϥΠϒϥϦͷΠϯλʔϑΣʔε͑͞Θ͔͍ͬͯΕ͹ɺඇωΠςΟϒίϯύΠϧܗࣜͷݴޠॲཧ ܥͰ͋ͬͯ΋·ͬͨͦ͘ͷ·· C ݴޠͷϥΠϒϥϦ͕ѻ͑Δͷͩɻ͜ΕΒͷػೳ͸ C ݴޠͷؔ਺ ΍ߏ଄ମʹ࣮ߦ࣌ʹΞΫηε͢ΔػೳΛఏڙ͢Δ libffi ͱ͍͏ϥΠϒϥϦʹΑΓ࣮ݱ͞Ε͍ͯΔɻ libffi ͕੒ख़༷ͯ͠ʑͳ CPU ΞʔΩςΫνϟͱ OS ʹରԠͨ͠ݱࡏɺࣗવͳܗͰ C ݴޠϥΠϒϥ ϦΛѻ͑Δݴޠॲཧܥ͕ଟ͍ɻͦΕ·ͰωΠςΟϒίϯύΠϧܗࣜͷॲཧܥʹ͔͠Ͱ͖ͳ͔ͬͨͱ ͜Ζ·Ͱ΋ Ruby ΍ Python ͱ͍ͬͨݴޠͰॻ͚Δ͜ͱΛتͿਓ͸ɺͲ͏΍Βଟ͍Α͏ͩɻ § 1.2 Powered by LLVM ઌʹࣔͨ͠Α͏ͳํ๏Ͱ C ݴޠͷػೳΛ׆༻Ͱ͖Δݴޠॲཧܥ͸Ծʹͦͷݴޠͷػೳ΍ϥΠϒ ϥϦʹෆ଍͕͋ͬͯ΋ɺC ݴޠͱࠞͥࠐΜͰ࢖ͬͯ͠·͑͹͍͍ͩͨͲΜͳΞϓϦέʔγϣϯͰ΋ ࡞Εͯ͠·͏ɻͦΕΒͷ΍Γํ͕௨͡ͳ͍ɺ͔͠͠ඇৗʹීٴ͍ͯ͠Δϓϩάϥϛϯάݴޠ࣮ߦ؀ *1 Python ͷ CythonɺLua ͷ LuabindɺଟछͷݴޠʹରԠ͢Δ SWIG ͳͲɺC ݴޠϥΠϒϥϦͷόΠϯσΟϯά ࡞੒Λࢧԉ͢Δπʔϧ΋ଟ͍ɻ
  9. 25 ύλʔϯೝࣝͷʮߏ଄ͱྗʯ—ಀ૸࿦Λ௒͑ͯ— ૣਫ ౧ࢠ ඪ୊ʢͱ๣୊*1ʣ͕ࣔ͢Α͏ʹɺຊߘ͸ʰߏ଄ͱྗ—ه߸࿦Λ௒͑ͯʱ΁ͷΦϚʔδϡͱͯ͠ॻ͔Ε͍ͯΔɻ࣭ͷѱ͍ύ ϩσΟͱݴ͓ͬͯ͘ͷ͕෼૬Ԡ͔΋͠Εͳ͍͕ɺ͍ͣΕʹͤΑ 1985 ೥ੜ·Εͷࢲ͕ 1983 ೥ͷઙాজͷʮྗʯʹࠓ΋Ҿ͖

    ੆ΒΕ͍ͯΔͱ͍͏͜ͱ͸ɺࠂന͢Δ·Ͱ΋ͳͦ͞͏ͩɻ໪࿦ɺग़య͕ه͞Ε͍ͯΔ෦෼Λআ͖ɺຊߘ͸ࢲͱ͍͏Ұݸਓͷ ࢲݟΛड़΂ͨ΋ͷʹա͗ͳ͍ɻͦΕ͸֤෼໺ͷઐ໳ՈͷҙݟͱҰக͢Δͱ͸౰વݶΒͳ͍͠ɺ·ͨͦΕΛظ଴ͨ͠Θ͚Ͱ΋ ͳ͍ɻ ·ͣ͸ྺ࢙ͷத͔ΒҰੈΛ෩ᴆֶͨ͠໰ͷྫΛҾͬுΓग़͠ɺ͜ͷ৔ҧ͍ͳࢼ࿦ͷελϯεΛ໌Β͔ʹ͢Δ͜ͱ͔Β࢝Ίͨ ͍ʢୈ 1 અʣ ɻͦͷελϯεͰσʔλϚΠχϯάͱ͍͏΋ͷΛ൷൑తʹߟ࡯͢Δʢୈ 2 અʣ ɻσʔλղੳҎ֎ͷྖҬʹ͓͚Δ ػցֶशͷ࢟Λগ͚ͩ͠ோΊ͔ͯΒʢୈ 3 ষʣ ɺ࠷ઌ୺ͷҩֶݚڀʢୈ 4 અʣͱ೔ৗతͳҩྍݱ৔ʢୈ 5 અʣʹਐΜͰ͍͘ɻ ͦ͜Ͱ௚໘͢Δͷ͸ਓؒͷ೴͸յΕΔͱ͍͏ݱ࣮Ͱ͋ΓɺҰ؏ͨ͠໰୊ҙࣝͷதͰେن໛σʔλϕʔεɾػցֶशɾݹయ౷ ܭֶͷॾ֓೦Λଊ͑௚͢ɻͦͷઌʹ͋Δͷ͸σʔλϕʔεɾػցֶशɾݹయ౷ܭֶͱ͍͏࿮૊ΈΛ൱ఆͨ͠ͱ͖ʹԿ͕࢒Δ ͷ͔ͱ͍͏໰͍Ͱ͋Γʢୈ 6 અʣ ɺຊߘͷ໨࿦ݟ͸͜ͷ໰͍ʹର͢Δ౴͑ͷҰͭΛఏࣔ͢Δ͜ͱʹ͋Δʢୈ 7ɾ8 અʣ ɻ § 1 དྷ͠ํߦ͘຤ § 1.1 ແࣝͳΔऀͨͪ ʰղମ৽ॻʱ͸ߐށ࣌୅ͷҩࢣͨͪͷࢼߦࡨޡʹΑͬͯʰλʔϔϧɾΞφτϛΞʱͱ͍͏Φϥϯ μޠͷղ๤ֶॻ͔Β຋༁͞Εɺ1774 ೥ʹग़൛͞Εͨྺ࢙తॻ෺Ͱ͋Δɻ·ͩΦϥϯμޠͷࣙॻ͢ Βͳ͔ͬͨ࣌୅Ͱ͋Δ͜ͱΛߟ͑Δͱɺຊจɾਤද߹Θͤͯޒ࡭͔Β੒ΔҩֶॻΛΘ͔ͣ਺೥Ͱ຋ ༁ɾग़൛ͨ͠ͱ͍͏͚ͩͰେมͳҒۀͰ͋Δɻ͔͜͠͠ͷຊͷҒେ͞͸ɺ౰࣌࠯ࠃ੓ࡦΛͱ͍ͬͯ ͨ೔ຊʹॳΊͯ੢༸ͷҩֶ஌ࣝΛ఻ಋ͠ɺͦΕ·Ͱͷ೔ຊͷৗࣝΛ෴ͨ͠ͱ͜Ζʹ͋Δɻ ʰղମ৽ ॻʱҎલͷ೔ຊʹ͓͍ͯ͸ղ๤͸΄ͱΜͲߦΘΕ͍ͯͳ͔ͬͨͨΊɺਓମ͸ʮޒଁ࿡ᡰʯͱ͍͏౦ ༸ҩֶͷ֓೦ʹΑͬͯଊ͑ΒΕ͍ͯͨɻࠓͰͦ͜զʑ͸ਓମΛ৭ʑͳଁثͷղ๤ֶతͳߏ଄ͱੜཧ ֶతͳػೳ͕࡞ΔγεςϜͱͯ͠ଊ͍͑ͯΔ͕ɺਓମͷߏ଄Λଊ͑Δղ๤ֶͱ͍͏࿮૊ΈΛ೔ຊʹ ॳΊͯ΋ͨΒͨ͠ͷ͸ɺ ʰղମ৽ॻʱʹଞͳΒͳ͍ͷͰ͋Δɻ ʰղମ৽ॻʱ͸ҩֶʹͱͲ·ΒͣɺϤʔϩούͰൃల༷ͨ͠ʑͳֶ໰͔Β৽͍͠஌ࣝ΍ٕज़Λٵऩ ͢Δͱ͍͏ʮའֶʢ༸ֶʣ ʯϒʔϜͷܖػʹͳΓɺۙ୅೔ຊՊֶ࢙ʹۚࣈౝΛଧཱͪͯΔ͜ͱͱͳͬ ͨɻ͔͠͠ɺ ʰղମ৽ॻʱͷ຋༁ऀͷҰਓͰ͋Δਿాݰന͸ɺ൴͕ 85 ࡀͰ๢͘ͳΔ 2 ೥લʹஶͨ͠ ʰའֶࣄ࢝ʱ ʢ1815 ೥ʣͱ͍͏ճ૝࿥ͷ๯಄ʹ͓͍ͯɺ͜ͷϒʔϜΛগʑ੧Ίͨ໨ͰோΊ͍ͯΔɻ ͖Μ ࠓ ͡ ࣌ɺੈؒʹའֶͱ͍;ࣄઐΒ ͓͜ͳ ߦ ͸ΕɺࢤΛཱͭΔਓ͸ ͋ͭ ಞֶ͘ͼɺແࣝͳΔऀ͸ Έͩ ອΓʹ͜ ΕΛތு͢ɻ ౜ಥʹɺ ʮའֶʯΛʮػցֶशʯʹஔ͖׵͑Δͱ͍͏ѱ;͚͟ΛࢼΈΔɻ͜ͷૢ࡞ͷόΧόΧ͠͞ ͱ͸ཪෲʹɺ ʮແࣝͳΔऀʯ͕զʑʹྫྷͨ͘ಥ͖ࢗ͞Δݴ༿ʹԽ͚ΔɻਓମΛ੾ΓࠁΜͰଁث΍૊ ৫͝ͱʹඳࣸ͢Δղ๤ֶΞτϥεͷߏ଄͸ɺ਺ଟ͘ͷཧ࿦΍ํ๏Λ໢ཏతʹهड़͢Δ͜ͱͷΑ͏Ͱ ΋͋Δɻ͜ͷจ຺Ͱʰղମ৽ॻʱʹॏͳΔͷ͸ɺ΍͸Γʰύλʔϯೝࣝͱػցֶशʱ *2ͩΖ͏ɻࣗ ෼͸ʮແࣝͳΔऀʯͷ֎ଆʹ͍Δͷͩͱ৴͡Α͏ͱ͢Δ΄Ͳɺ಺ଆʹҾ͖੆Γࠐ·ΕΔ——ͦΜͳ ؾ෼ʹͤ͞ΒΕΔɻ ʮ৘ใരൃʯ΍ʮϏοάσʔλʯ΁ͷιϦϡʔγϣϯ͕੠ߴʹޠΒΕΔ 2012 ೥ͷঢ়گ͸ɺJohn Naisbitt ͕"We are drowning in information but starved for knowledge."ʢզʑ͸৘ใͷւʹన Εɺ஌ࣝʹٌ͍͑ͯΔʣ *3ͱධͨ͠ 1982 ೥͔ΒมΘͬͨͱ͸͓ੈࣙʹ΋ݴ͑ͳ͍͸ͣͩɻͦͯ͠࢒ *1 ๣୊΋΍͸Γઙాজͷʰಀ૸࿦—εΩκɾΩοζͷ๯ݥʱʹҼΉɻ *2 ຊߘͷಡऀʹ͸આ໌ෆཁͰ͋Ζ͏͕ɺ"Pattern Recognition and Machine Learning"(C. Bishop) Λ๜༁ͨ͠ڭ ՊॻͰ͋ΔɻҼΈʹʮϕΠζཧ࿦ʹΑΔ౷ܭత༧ଌʯͱ͍͏෭୊͕ఴ͑ΒΕ͍ͯΔɻ *3 John Naisbitt "Megatrends"(1982) ΑΓҾ༻ɻ
  10. 26 ೦ͳ͕Βਿాݰന͕ۤݴΛఄͨ͠ 1815 ೥͔Β΋ɺଟ෼େ͖ͳมԽ͸ͳ͍ͷͩΖ͏ɻ ໨৽͍͠෼໺ʹັྗΛײ͡Δͷ͕౰વͷ஌త޷ح৺Ͱ͋Δͷ͸ɺڧௐ͢Δ·Ͱ΋ͳ͍ɻ͍͚ͨͩ ͳ͍ͷ͸ʮແࣝͳΔऀʯ͕ଟ਺೿ʹͳΔ͜ͱͰ͋ΔɻͦΕ͸࠷ઌ୺ͷՖܗతݚڀ෼໺ͷ׆ؾͰ͸ͳ ͯ͘ɺΰʔϧυϥογϡ*4Λኲኵͱͤ͞Δ೤පͱݺͿ΂͖΋ͷ͔ͩΒͩɻ § 1.2 ϝϧτμ΢ϯ͢ΔϒʔϜͱ৺த͠ͳ͍ͨΊʹ

    ΋ͬͱ΋ɺਓฒΈͷણࡉ͞Λ࣋ͪ߹Θ͍ͤͯΔਓؒͰ͋Ε͹ͦͷ೤ؾʹͷ΅ͤͯ෇࿨ཕಉͯ͠͸ ͍ΒΕͳ͍ͩΖ͏ɻݱࡏͷσʔλαΠΤϯεΛͱΓ·͘೤ؾ͸୯ͳΔۭ૽͗ʹ࿘අ͞ΕΔ͔΋͠ Εͳ͍͠ɺ͜Ε·ͰʹఏҊ͞Ε͖ͯͨ਺ʑͷཧ࿦΍ٕ๏͸ɺݱ࣮ͷ໰୊ղܾʹର͢Δ༗༻ੑ΍ҙٛ ͕ෆ໌ྎͳ··๨ΕڈΒΕɺͦΕΛ࣮૷ͨ͠ίʔυ΋ແ༻ͷ௕෺ͱͳΔ͔΋͠Εͳ͍ɻσʔλղੳ ʹٻΊΒΕΔιϑτ΢ΣΞɾϋʔυ΢ΣΞʹ౤ࢿͯ͠΋๬Ή݁Ռ͕Կ΋ಘΒΕͳ͔ͬͨͱͨ͠Βɺ Ϣʔβʔͷগʑແཧͷ͋Δա৒ͳظ଴͸΍͕ࣦͯ๬ʹมΘΓɺͦΕ͕ूஂతͳઈ๬΁มΘΔ࣌ʹ ϒʔϜ͸ऴᖼΛܴ͑Δɻ࠷ѱͷ৔߹͸ֶ໰෼໺ͦͷ΋ͷ·ͰഇΕ͍ͯͬͯ͠·͏͔΋͠Εͳ͍ɻ འֶ͸ͦ͏ͯ͠ഇΕ͍ͯͬͯ͠·ͬͨͷͩɻҰੈΛ෩ᴆͨ͠འֶ͸འํҩֶͱ׽ํҩֶͷਂࠁ ͳରཱΛট͖ɺའॻ຋༁औకྩʹΑΓࢥ૝஄ѹͷ༕͖໨ΛݟΔ͜ͱʹͳͬͨͷͰ͋Δɻ΋ͬͱε τϨʔτͳྫΛٻΊΒΕͨͳΒɺ໎Θͣʹ࢈ۀֵ໋Λڍ͛Δɻ࢈ۀֵ໋͸ػցʹΑΔࣗಈԽɾ࡞ ۀޮ཰ԽΛ΋ͨΒͨ͠ҰํͰɺࣦۀΛڪΕͨ࿑ಇऀूஂʹػցഁյͱ͍͏ߦಈΛͱΒͤͯ͠·ͬ ͨ*5͠ɺ࢈ۀഇغ෺ͱ͍͏ະղܾͷ໰୊ΛࢁੵΈʹͯ͠͠·ͬͨɻͲΕ΄Ͳ༏Εͨ΋ͷͩͱݴΘΕ ͖ͯͨͱͯ͠΋ɺਓؒ͸ͦΕΛഉআ͢Δ͜ͱ΋͋Δ͠ɺ৽ͨͳ໰୊ͷݩڟͱݟ၏͢͜ͱ΋͋Δɻ࣋ ͯᅥ͞Ε͍ͯΔ΋ͷ͕ɺఆண͢Δͱ͸ݶΒͳ͍ɻͦΜͳ͜ͱ͸΋͏ز౓ͱͳ͘ࢥ͍஌Β͞Ε͖ͯͨ ͸ͣͩɻ ͱ͸͍͑ɺ ʮແࣝͳΔऀʯΛݟԼͯ͠༏ӽʹਁΔͷ͸ɺࣗҙࣝա৒ͳ൷ධՈ͚ͩͰ͍͍ɻͳΒ͹ ࣌୅ͷைྲྀʹ৐ΔͨΊʹඞཁͳ΋ͷͱ͸ԿͳͷͩΖ͏͔ɻ——΋͠΋ࢥߟ͕ཎΈ͔͚ͨͳΒɺࠓ͢ ͙ΩϡʔΛखʹऔͬͯɺϏϦϠʔυͷ࿅श͕ͯΒϒϨΠΫγϣοτΛଧͱ͏ɻΩϡʔϘʔϧ͸ʮࣗ Βʰ୙ΕΔੈʱͷ୞தΛ͏Ζ͖ͭɺةݥʹ਎Λ͞Βͭͭ͠ɺ͔͠΋ɺ൷൑తͳ࢟੎Λ่͞͵͜ͱʯ ɻ ͦΕ͸ʮର৅ͱਂ͔͔͘ΘΓશ໘తʹ຅ೖ͢Δͱಉ࣌ʹɺରরΛ༰ࣻͳ͘ಥ͖์͠੾ࣺͬͯͯΔ͜ ͱʯͰɺ·͘͞͠ʮγϥέͭͭϊϦɺϊϦͭͭγϥέΔ͜ͱɺ͜ΕͰ͋Δʯ *6ɻ ελʔτ஍఺ʹ͓͚Δզʑͷελϯε͕ܾ·ͬͨͱ͜ΖͰ؊ʹ໏͓ͯ͘͡΂͖͜ͱ͕͋Δɻཧ࿦ ΍ٕ๏͕ͲΕ΄Ͳߴ౓ͳ΋ͷͰ͋Ζ͏ͱ΋ɺݱ࣮ੈքͰ͸ਓؒͷ໨తΛ׎͑Δखஈʹա͗ͳ͍ͱ͍ ͏͜ͱͰ͋Δɻ໨తΛઃఆ͢Δͷ΋ਓؒͰ͋Γɺಓ۩Λ࢖͏ͷ΋ਓؒͰ͋Δɻ͔ͩΒಓ۩ͷ֨෇͚ ʹҰتҰ༕͢Δͱ͔ಓ۩Λ࢖͏͜ͱࣗମ͕໨తԽ͢Δͱ͍͏ͷ͸ɺफڭతͰةͳ͔͍ͬ͠ɻಓ۩Λ ʮֶशʯͨ͠ΒऴΘΓͱ͍͏ଶ౓ͩͬͯɺ๬·͍͠͸͕ͣͳ͍ɻ ʮٸ͍Ͱڱ͍ۤ͠࿮૊Λ࡞Γɺͦͷ தʹด͡ࠐ΋ͬͯνϚνϚͱۭനΛຒΊ͍ͯ͘ͱ͍͏ɺҰݟۈษͦͷ΋ͷͷʰֶशʱଶ౓ɺͦͷ࣮ɺ ͜ΕҎ্ͷଵଦ͸ͳ͍ʯΘ͚Ͱ͋Δɻ໨తͷݟ͑ͳ͍ڏֶ͍͠श͸ٛ຿ڭҭͰଔۀͨ͠͸ͣͩɻͦ ͏Ͱͳ͚Ε͹ਓ޻஌ೳʹসΘΕͯ͠·͏ɻ σʔλϕʔε͔Βͷ஌ࣝൃݟͱ͍͏෣୆Λ؍٬ͱͯ͠ோΊ͍ͯΔͱɺେن໛σʔλϕʔεɾػց ֶशɾ౷ܭֶͱ͍͏໾ऀͨͪͷ՚΍͔͞ʹ࿭Θ͞Εͦ͏ʹͳΔɻ ʮಓ۩ʯͨͪ͸Կ͕Ͱ͖ͯɺԿ͕ Ͱ͖ͳ͍ͷ͔ɻޓ͍ʹͲͷΑ͏ʹؔΘΓɺͲ͜ͰͲͷΑ͏ʹԠ༻͞ΕΔ΂͖ͳͷ͔ɻͦΕ͕ࠞಱΛ *4 ͕ۚ࠾۷͞Εͨ৔ॴʹҰᏁઍۚΛ໨࿦Ή࠾۷ऀ͕ࡴ౸͢Δ͜ͱɻ1848 ೥ʹΧϦϑΥϧχΞͷ઒Ͱ͕࠭ۚൃݟ͞Εͨ ͜ͱʹΑΔΧϦϑΥϧχΞɾΰʔϧυϥογϡ͕༗໊Ͱ͋Δ͕ɺۚͷ຺͕߭ݟ͔ͭΔͨͼʹੈք֤஍Ͱز౓ͱͳ͘܁ Γฦ͠ݟΒΕΔݱ৅Ͱ͋Δɻ *5 ͜ͷػցଧͪյ͠ӡಈʢϥομΠτӡಈʣʹͳͧΒ͑ͯɺޏ༻Λෆ҆ఆʹ͢Δ IT ԽɾࣗಈԽʹ൓ର͢Δࢥ૝͸ωΦɾ ϥομΠτͱݺ͹Ε͍ͯΔɻ *6 ͋·Γʹ΋༗໊ͳϑϨʔζɻ ʰߏ଄ͱྗʱ͔Βཱͯଓ͚ʹҾ༻ɻ
  11. 27 ۃΊ͍ͯΔͱͨ͠Βɺ͓ͦΒ͘Կ͔ͱͯͭ΋ͳ͘୯७ͳ͜ͱΛݟམͱ͍ͯ͠ΔɻͦΕ͸໨త͕ଘࡏ ͠ͳ͚Ε͹ಓ۩ശ΋γϣʔέʔεʹͳͬͯ͠·͏ɺͱ͍͏͜ͱͩɻΧΦεͷத͔Βු͔ͼ্͕Δε τʔϦʔ͸ɺਓؒͷ໰୊ҙࣝ΍໨తͳ͠ʹ࢝·Δ͸͕ͣͳ͘ɺͦͯ͠ऴΘΔ͸ͣ΋ͳ͍ɻ § 2 σʔλϚΠχϯά࠶ߟ ·ͣ͸ Jerome H.

    Friedman ͷ"Data mining and Statistics: What’s the connection?"(1997) ΛԼෑ͖ʹͯ͠ɺσʔλϚΠχϯάͱ͸ԿͰ͋Δͷ͔Λ۷ΓԼ͛ͯΈΑ͏ɻ § 2.1 σʔλϚΠχϯάͱσʔλϕʔε σʔλ͔Β஌ࣝΛಘΑ͏ͱ͢Δ͜ͱࣗମʹ໨৽͠͞͸ͳ͍͸ͣͩɻͰ͸ɺԿ͕ࠓࠒʹͳͬͯσʔ λϚΠχϯάʮಛधʯΛ΋ͨΒͨ͠ͷͩΖ͏͔ɻ͜ͷ໰͍͔͚ʹ౴͑ΔݤͷҰͭ͸ɺσʔλϕʔε ϚωδϝϯτγεςϜʢDBMSʣͷมભͰ͋Δɻ ͔ͭͯͷ DBMS ʹ͓͍ͯ͸ɺۜߦͷ ATM Ͱར༻͞Ε͍ͯΔΑ͏ͳΦϯϥΠϯτϥϯβΫγϣ ϯॲཧʢOLTPʣͱݺ͹ΕΔ৘ใॲཧ͕ओྲྀͰ͋ͬͨɻͭ·ΓɺDBMS ʹٻΊΒΕ͍ͯͨͷ͸σʔ λΛஷଂ͠ɺଟ͘ͷϢʔβʔ͔Βͷখن໛ͳσʔλΞΫηεΛ൐͏ఆܕΫΤϦʔΛߴ଎ʹॲཧ͢Δ ͱ͍͏ೳྗͩͬͨɻ͔͠͠σʔλϕʔεʹ஝ੵ͞ΕͨσʔλΛ༷ʑͳ੾ΓޱͰ෼ੳ͍ͨ͠ਓʑ͕ σʔλϕʔεʹҙࢥܾఆࢧԉΛٻΊΔʹͭΕͯɺ৽͍͠৘ใॲཧ͕஫໨ΛूΊΔΑ͏ʹͳͬͨɻͦ Ε͕ΦϯϥΠϯ෼ੳॲཧʢOLAPʣͰ͋Δɻ OLAP ʹΑͬͯϢʔβʔ͸ର࿩ࣜͷࢼߦࡨޡΛ܁Γฦͯ͠ɺσʔλ΢ΣΞϋ΢εʹ֨ೲ͞Εͨ ๲େͳσʔλΛूܭͨ͠Γɺ͋Δ͍͸ଟ࣍ݩతʹ෼ੳͨ͠Γͱ͍ͬͨ͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨɻ Ұݟ͢Δͱ͜Ε͸σʔλϚΠχϯάπʔϧͷݪܕͷΑ͏ʹݟ͑Δ͔΋͠Εͳ͍ɻ͔͠͠ɺOLAP ʹΑΔσʔλղੳʹΑͬͯσʔλ΢ΣΞϋ΢εͱʮର࿩ʯͰ͖Δͷ͸ɺత֬ͳԾઆΛߟ͑ଓ͚ΔΑ ͏ͳෆஅͷಎ࡯ྗͱΫΤϦʔΛॻ͖ଓ͚Δٕज़ྗʢ͓Αͼ࣌ؒͱମྗʣΛ࣋ͪ߹Θͤͨબ͹Ε͠ਓ ͚ؒͩͰ͋ΔɻσʔλʹજΉύλʔϯ΍Ϟσϧͷୟ͖୆Λࣗಈతʹݟ͚ͭͯ͘ΕΔ΋ͷͰ͸ͳ͍ ͠ɺϏδωεͷ৔ʹ͓͚Δਝ଎ͳҙࢥܾఆʹ޲͍͍ͯΔ΋ͷͰ΋ͳ͍ɻ͔ͩΒ͜Ε͸σʔλϚΠχ ϯάπʔϧͷݪܕͱݴ͏ΑΓ͸Ή͠Ζɺਓʑ͕σʔλϚΠχϯάπʔϧΛٻΊΔૉ஍Λ࡞ͬͨͱߟ ͑ͨ΄͏͕ྑ͍ͩΖ͏ɻ § 2.2 ϓϩύΨϯμͱͯ͠ͷσʔλϚΠχϯά σʔλϚΠχϯά΋·ͨଞͷόζϫʔυͷྫʹ΋Εͣఆ͕ٛᐆດͳݴ༿͕ͩɺ৭ʑͳఆٛΛ·ͱ ΊΔͱͨ͠ΒʮෳࡶͰ๲େͳσʔλू߹ͷதʹຒ΋Ε͍ͯͯਓؒͷྗͰ͸ݟ͍ͩͤͳ͍Α͏ͳ༗ӹ ͳ஌ࣝΛίϯϐϡʔλʔͷྗͰσʔλϕʔεͷத͔Β୳ࡧతʹൃݟ͠ɺϏδωεʹ͓͚Δҙࢥܾఆ ʹ໾ཱͯΔΑ͏ͳ৭ʑͳख๏ʢ·ͨ͸ͦΕΒΛ࢖ͬͨϓϩηεʣ ʯͱ͍͏ͱ͜ΖͰ͋Ζ͏ɻ࣮ࡍͷ σʔλղੳʹ͸ IBM Intelligent minerɺSAS Enterprise MinerɺSPSS Clementine ͳͲͷ൚༻ σʔλϚΠχϯάπʔϧ͕࢖ΘΕΔ͜ͱ͕ଟ͍ɻ Knowledge Discovery in Databases ͱ͍͏σʔλϚΠχϯάͷ໨࿦ݟ͸૖େͳ΋ͷͰ͋Δɻ͠ ͔͠ɺϢʔβʔ͕খ೉͍͠σʔλϕʔεͷߏ଄΍σʔλղੳͷத਎Λ஌Βͳͯ͘΋σʔλϕʔεʹ ֨ೲ͞ΕͨσʔλʹΞΫηε͢Δ͜ͱΛՄೳʹ͠ɺͦΕΛ෼ੳͨ͠Γࢹ֮Խͨ͠Γͯ͘͠ΕΔσʔ λϚΠχϯάπʔϧͱ͍͏΋ͷ͸୭ͷͨΊͷ΋ͷͳͷͩΖ͏ɻ ʮσʔλࣗ਎ʹޠΒͤΔʯͱ͍͑͹ ฉ͑͜͸ྑ͍͕ɺϏδωεઓུͷώϯτͱͳΔΑ͏ͳ஌ࣝΛᅤ͔͘Ͳ͏͔͸ผͷ࿩Ͱ͋Δ͠ɺ͋· Γͦ͏͍͏౎߹ͷྑ͍࿩͸ฉ͔ͳ͍ɻFriedman ͕ࢦఠ͢ΔΑ͏ʹɺ൚༻σʔλϚΠχϯάπʔϧ ͸ඇৗʹߴֹͳ঎༻ιϑτ΢ΣΞͰ͋Γɺಋೖ͢ΔͱͳΕ͹౰વ૬ԠͷߴՁͳϋʔυ΢ΣΞ΍ετ
  12. 39 Munin͸෣͍߱Γͨ - The Munin has landed - લဠ խਓ

    (@zembutsu) § 1 ͸͡Ίʹ ౰จॻ͸ɺΠϯϑϥΤϯδχΞͰ͋Δචऀ͕Ϧιʔε؂ࢹͷඞཁੑΛૌ͑Δ΋ͷͰ͋Δɻຊॻ͸ σʔλϕʔεຊͱ͍͏͜ͱͰ͋Γɺ ʮσʔλϕʔεͱԶͱϦιʔε؂ࢹʯΛςʔϚʹܝ͍͛ͯΔ͕ɺ ͍͔͞͞αʔόӡ༻શൠʹର͢ΔҰൠ࿦ͱͳ͍ͬͯΔ͜ͱΛ༰ࣻئ͍͍ͨɻͱΓΘ͚ɺϗεςΟϯ άࣄۀऀʹ͓͚Δӡ༻ۀ຿ࢹ఺ʹ͓͍ͯɺචऀͷಠஅͱภݟʹجͮ͘ओுͰ͋Δ͜ͱΛ͋Β͔͡Ί ͓அΓ͓ͯ͘͠ɻ § 2 ʮԿͱͳ͘ॏ͍ʯΛࢹ֮Խ͢Δඞཁੑ ʮݪҼ͕Α͘෼͔Βͳ͍ͷͰɺௐ΂ͯ΋Β͑·͔͢ʁʯ ࢲͷۀ຿ͷ̍ͭ͸ɺϗεςΟϯάࣄۀऀʹ͓͚Δӡ༻αϙʔτͰ͋ΔɻϗεςΟϯά͸ɺ୯ͳΔ Ϛγϯ΍ωοτϫʔΫ౳ͷΠϯϑϥି͠Ͱ͸ͳ͍ɻ৘ใαʔϏεۀͰ͋ΔɻͦͷͨΊɺαʔό؂ࢹ ΍τϥϒϧ࣌ͷো֐ରԠͷ΄͔ɺ͓٬͞·͔ΒدͤΒΕΔӡ༻্ͷτϥϒϧγϡʔςΟϯά΋ߦ ͏ɻҰൠతʹαϙʔτͱݺ͹ΕΔ͜ͷۀ຿͸ɺ෺ཧϨΠϠ͔Β OS ·ΘΓ͚ͩͰͳ͘ɺιϑτ΢Σ Ξͷઃఆ΍νϡʔχϯάͷఏҊͳͲɺ෯޿͍ɻ ͦΜͳۀ຿Λ͜ͳ͢೔ৗ͕ͩɺ͜͜਺೥ɺ͓٬͞·͔Βಛ௃తͳґཔ͕૿͍͑ͯΔɻͦΕ͕ɺ ʮԿ ͱͳ͘ॏ͍ʯγεςϜʹର͢ΔௐࠪͱରԠґཔͰ͋Δɻ͜ͷʮॏ͍ʯͱ͍͏ݴ༿͸ɺओ؍ΛؚΉந ৅తͳදݱͩɻ ॏ͞ͱ͸ɺ ʢ͜ͷۀքͷํʹͱͬͯ͸ࣗ໌Ͱ͋Δ͕ʣαʔόͷॏ͕͞਺े kg ͳͲͱ͍͏෺ཧతͳ ॏྔͰ͸ͳ͍ɻαʔό্Ͱಈ͘ιϑτ΢ΣΞͳΓαʔϏεʹର͢Δॏ͞ʢϨεϙϯεͷѱ͞΍ϨΠ ςϯγʣʹର͢Δൺᄻͳͷͩɻ ͔ͭͯɺ෺ཧతͳεϖοΫෆ଍ʹΑΓʢWeb ΞϓϦέʔγϣϯͳΓσʔλϕʔεͷಈ࡞͕ʣॏ ͍ͨͱදݱ͢Δ͜ͱ͕ଟ͔ͬͨɻ͜Ε͸ɺϋʔυ΢ΣΞ͕ݪҼͩͱൺֱతಛఆ͕༰қͩͬͨͨΊͰ ͋Δɻ10 ೥લͷ Web ܥͷαʔϏεͰ͋Ε͹ɺ͍͍ͤͥϚγϯ͸ Web αʔό͕਺୆ͱσʔλϕʔ εαʔό͕ 1ʙ2 ୆Ͱ࿫͏͜ͱ͕Ͱ͖ͨͰ͋Ζ͏ɻର৅ͱͳΔػث͕গͳ͍ͨΊɺݪҼಛఆ͸ϋʔ υ΢ΣΞͷ CPU ͳΓϝϞϦͱݴͬͨϦιʔεෆ଍ɺ͋Δ͍͸ɺωοτϫʔΫଳҬ͕ѹഭ͍ͯ͠Δ ͩΖ͏ͱ༧ଌཱ͕ͯ΍͔ͬͨ͢ͷͩɻ SNS ͱΫϥ΢υίϯϐϡʔςΟϯά͕ۀքΛม͑ͨ ͔͠͠ɺࡢࠓ͸ಛఆ͕Ұےೄʹ͍͔ͳ͍ݱ৅͕ൃੜ͖͍ͯͯ͠ΔɻͦΕ͸ɺιʔγϟϧωοτ ϫʔΫ (ҎԼ SNS) ͷ෯޿͍ීٴͱɺΫϥ΢υίϯϐϡʔςΟϯάٕज़ͷൃୡͰ͋Δͱࢲ͸ߟ͑ͯ ͍Δɻ ̍ͭ͸ SNSɻैདྷ͸ɺΞΫηεͷϐʔΫ͸༧ଌ͠΍͘͢ɺ͍͍ͤͥෆҙͳԌ্΍ɺಗ໊ܝࣔ൘΍ Yahoo! Japan ͷτοϓϖʔδ͔ΒͷϦϯΫ͚ͩΛڪΕΕ͹Α͔ͬͨɻҰํɺࠓ೔ͷ SNS ͷීٴ ʹΑΓɺαʔϏεఏڙऀͷҙਤ͠ͳ͍λΠϛϯάͰΞΫηεͷϐʔΫ͕ൃੜ͠͏Δ؀ڥ͕੔ͬͯ͠ ·ͬͨɻ͔͠΋ɺॠؒతʹ૝ఆҎ্ͷΞΫηε͕ࡴ౸͠͏Δ࣌୅ʹͳͬͯ͠·͍ͬͯΔͷͰ͋Δɻ ͦͯ͠΋͏ 1 ͭ͸Ϋϥ΢υίϯϐϡʔςΟϯάͷొ৔Ͱ͋ΔɻγεςϜ͸εέʔϧΞ΢τग़དྷΔ
  13. 40 લఏͰઃܭ͞ΕɺඞཁʹԠͯ͡αʔόɾϦιʔεΛ૿ݮͰ͖Δ؀ڥ͕੔ͬͨͷͩɻΞϓϦέʔγϣ ϯɾΤϯδχΞ΍ܦӦ૚ʹͱͬͯ͸෱Իͱݴ͑Δ͜ͷٕज़Ͱ͋ΔɻΫϥ΢υίϯϐϡʔςΟϯάͰ ͳ͘ͱ΋ɺαʔό΍֤छϋʔυ΢ΣΞ͸ൺֱత҆ՁʹೖखͰ͖Δ؀ڥͱͳΓɺඞཁʹԠͯ͡ɺ෺ཧ αʔόͷ૿ݮ΋༰қͳ؀ڥ͕੔ͬͨɻ ͕ͩɺݱ৔ͷӡ༻ʹͱͬͯ͸ɺ؅ཧର৅αʔόʢϦιʔεʣ͕໨·͙Δ͘͠มԽ͢ΔͷͰɺΉ͠ Ζ؅ཧίετ͕૿͑ɺ࢓ࣄ͕େมʹͳͬͨͱײ͡Δ͜ͱ͕ଟ͍ɻ ʮࠓ͙͢ௐ΂ͯ΋Β͑·͔͢ʁʯ ۀքΛऔΓר͘؀ڥ͕มΘΕ͹ɺࣗͣͱτϥϒϧγϡʔςΟϯάͷࡏΓํ΋มΘͬͯ͘Δɻ୯ͳ ΔௐࠪͰ͋Ε͹ɺ࣌ؒͷ༛༧͑͞ڐ͞ΕΕ͹ɺͬ͘͡ΓݕূɾௐࠪΛߦ͏͜ͱ͕Ͱ͖Δɻ90

    ೥୅ޙ ൒ɺ೔ຊࠃ಺ͷΠϯλʔωοτᴈ໌ظͰ͋Ε͹ɺ͕͔͔࣌ؒͬͯ΋ݪҼௐࠪʹ࣌ؒΛ͔͚ΔΑ͏ͳ ෩ை͕͋ͬͨΑ͏ʹهԱ͍ͯ͠Δɻ͕ͩɺͦΜͳ์Վతͳۀք΋ɺSNS ͷීٴʹΑͬͯݬ૝Λଧͪ յ͞ΕΔɻ SNS ͷྑ͍ͱ͜Ζ͸ɺྑ͍৘ใ͸ޱίϛͰ୹࣌ؒʹଟ͘ͷਓୡʹ৘ใ͕఻೻͞ΕΔͱ͍͏఺Ͱ ͋ΔɻΞοͱ͍͏ؒʹΞΫηεͷϐʔΫΛܴ͑ͯ͠·͏ͷͰɺ΋͠΋τϥϒϧ͕ൃੜͨ͠৔߹͸ɺ ௚ͪʹରॲ͠ͳͯ͘͸͍͚ͳ͍ɻී௨ͷ Web αΠτͰ͋Ε͹·ͩ͠΋ɺSNS ্Ͱల։͞Ε͍ͯΔ ιʔγϟϧήʔϜͰ͋Ε͹ɺ୹࣌ؒͰଟ਺ͷϦΞϧϚωʔଛࣦΛট͖͔Ͷͳ͍ɻͦΕͲ͜Ζ͔ɺѱ ධ͕޿͕Ε͹ػձଛࣦʹ΋ͭͳ͕ͬͯ͠·͏ɻ ͜ͷΑ͏ʹɺ؀ڥ͕ɺ࣌୅͕ɺਝ଎ͳରԠΛٻΊ͍ͯΔͷͰ͋ΔɻҰࠁͷ༛༧΋ڐ͞Εͳ͍ͷ ͩʢ͜ͷ؀ڥ͸ɺਖ਼௚ɺࢲʹͱͬͯ΋ιʔγϟϧήʔϜͷαϙʔτ͸৺ଁʹѱ͍ͳͱײ͡Δ͜ͱ͕ ଟ͍ʣ ɻ ؂ࢹख๏ͷมԽΛڧ͍ΒΕ͍ͯΔ ͔ͭͯͷτϥϒϧγϡʔςΟϯά͸ɺ֤αʔόʹϩάΠϯ͢Δͱ͜Ζ͔Β࢝·Δɻuptime ΍ freeɾpsɾtop ౳ͱ͍ͬͨίϚϯυΛୟ͘ͷ΋ޮՌ͕͋ͬͨɻաڈͷܦҢΛ஌Γ͚ͨΕ͹ɺαʔό ͷதͷ sysstat(sar ίϚϯυ) Ͱ֬ೝ΋Ͱ͖ͨɻ ͕ͩɺࠓ೔Ͱ͸ͦͷΑ͏ͳ༨༟͸ڐ͞Εͳ͍ɻैདྷͷख๏Ͱ͸ɺτϥϒϧରԠʹ͕͔͔࣌ؒͬͯ ͠·͏͔ΒͩɻԾʹ୲౰ཁһ͕ଟ͔ͬͨͱͯ͠΋νʔϜ಺Ͱ৘ใ΍஌ࣝΛڞ༗͢Δ࣌఺Ͱϩε͕ൃ ੜͯ͠͠·͏ɻ SNS ΍Ϋϥ΢υίϯϐϡʔςΟϯάͷ࣌୅ɺ؅ཧର৅͕૿͑ɺ͔ͭ୹࣌ؒͰτϥϒϧରԠΛߦ͏ ʹ͸ɺͲ͏ͨ͠ΒΑ͍ͷͰ͋Ζ͏ɻ͜ͷঢ়گʹద͍ͯ͠Δͷ͕Ϧιʔε؂ࢹπʔϧͰ͋ΓɺͱΓΘ ͚ Munin Ͱ͋Δͱߟ͑Δɻ § 3 ͦͯ͠ Munin ͸෣͍߱ΓΔ Munin ͱ͸Կͳͷ͔ʁ Munin ͸Ϧιʔε؂ࢹπʔϧͰ͋ΔɻΦʔϓϯιʔε (GPLv2) Ͱެ։͞Ε͓ͯΓɺ։͔Εͨ ΦʔϓϯͳίϛϡχςΟͰ؇΍͔ͳ։ൃ͕ߦΘΕ͍ͯΔɻPerl Λج൫ͱ͍ͯ͠ΔͷͰɺLinux ܥ΍ MacOS X Ͱಈ࡞͢Δɻͳ͓ɺ͜͜Ͱड़΂ΔϦιʔεͱ͸ɺαʔό্ͷ෺ཧϦιʔεͷΈͳΒͣɺ OS ্ͷ༷ʑͳύϥϝʔλ΍ɺΞϓϦέʔγϣϯͷεςʔλε΋ؚΉʢࠓ೔Ͱݴ͏ͱ͜ΖͷϝτϦ Ϋεͱ͍͏දݱ͕ద੾͔΋͠Εͳ͍ʣ ɻ Linux ʹ͓͚ΔϦιʔε؂ࢹπʔϧͱ͍͑͹ɺMRTG ͕࿝ฮͰ͋Γɺݩ૆Ͱ͋Ζ͏ɻMRTG ͸ SNMP Λ༻͍ͯఆظతʹαʔόͷϦιʔε৘ใΛऔಘ͢Δɻͦͯ͠ɺάϥϑΛੜ੒͠ɺਓؒ͸΢Σ
  14. 43 PgDay 2012 Japan Ϩϙʔτ ͸΍Έͣ 2012 ೥ 11 ݄

    30 ೔ʹ NPO ๏ਓ೔ຊ PostgreSQL Ϣʔβձ (JPUG) ओ࠵Ͱ։࠵͞Εͨ PgDay 2012 Japan ʹࢀՃ͖ͯ͠·ͨ͠ɻ § 1 ։࠵֓ཁ ೔ຊʹ͓͍ͯɼPgDay ͷ໊Λף͢ΔΧϯϑΝϨϯεͷ։࠵͸ࠓճ͕ॳΊͯͩͬͨΑ͏Ͱ͢ɻ JPUG ͷओ࠵͢Δ PostgreSQL ͷେن໛ͳΧϯϑΝϨϯεͱͯ͠͸ɼ͜Ε·Ͱ͸ຖ೥ 2ʙ3 ݄ࠒʹ PostgreSQL Conference ͕։࠵͞Ε͍ͯ·ͨ͠ɻ͔͠͠ɼ೥౓຤Ͱ౎߹͕͔ͭͣʹࢀՃͰ͖ͳ͍ ͱ͍͏੠͕ଟ͍ͨΊɼळ։࠵΁ͱҠߦ͢Δ͜ͱʹͳ͍ͬͯ·͢ɻࠓ೥͸ळ։࠵Ҡߦ΁ͷ༧ߦԋशత ͳҙຯ΋ؚΊͯ (?) 11 ݄ʹ PgDay 2012 Japan ͕։࠵͞Ε·ͨ͠ɻ ηϛφʔνέοτ 140 ໊෼͸ૣʑͱചΓ੾ΕͨͨΊɼ௥Ճ෼΋ൢച͞Ε·ͨ͠ɻͦͷ௥Ճ෼΋ച Γ੾Εɼ౰೔ͷࢀՃऀ਺͸ 222 ໊ (ελοϑൃද) ͱ͍͏͜ͱͰͨ͠ɻϤʔϩούશମͷΧϯϑΝ ϨϯεͰ͋Δ PG Conference Europe 2012 ͷࢀՃऀ਺͕ 290 ໊Ͱ͋ͬͨ͜ͱΛߟ͑Δͱɼ೔ຊ ʹ͓͚Δ PostgreSQL ਓؾͷߴ͚ͩ͞Ͱͳ͘ɼϢʔβάϧʔϓͷ੒ख़౓ͷߴ͞Λ࢕͏͜ͱ͕Ͱ͖ ·͢ɻ § 2 “You are PostgreSQL!” PgDay ౰೔͸ɼPostgreSQL ։ൃίΞνʔϜϝϯόͰ͋Δ Magnus Hagander ࢯͷجௐߨԋͰ ນΛ։͚·ͨ͠ɻHagander ࢯ͸ “Inside the PostgreSQL community - How the product gets ˛ड෇Λࡁ·ͤΔͱɼൃදࢿྉʹՃ͑ͯ JPUG ΠϕϯτͰ͸͓ೃછΈͷʮ͔Ί͍͢ʯ͕΋Β͑Δ
  15. 48 ஶऀ঺հ ˙ ͸΍Έͣ ͜ͷຊͷट๳ऀɻ๭ݚڀࢪઃʹͯɺσʔλϕʔεγεςϜͱٔΕΔ೔ʑΛաͯ͝͠ ͍Δɻ࠷ۙςϯϐϡʔϧͷϕουΛങͬͨɻ ˙ suu-g PaaS ͷཪଆͰಇ͘Α͏͍ͤ͞ΜͷҰһɻ௿౓ʹΫϥ΢υԽ͍࣮ͯͯ͠ମ͸ෆ໌ɻ࠷

    ۙߴڃࣃຏ͖คʹखΛग़͕ͨ͠ɺҧ͍͸Θ͔Βͳ͍ɻDNS ͸झຯɻ ˙ લဠ խਓ ͱ͋ΔϗεςΟϯάۀऀͷΠϯϑϥΤϯδχΞతͳӡ༻αϙʔτΛੜۀͱ͢Δɻ ioDrive ͱٔΕͳ͕Β΋ɺιʔγϟϧήʔϜͷΠϯϑϥӡ༻ࢧԉʹ໋Λ࡟͍ͬͯΔɻີ͔ʹҴ࡞೶ Ոɻਓੜ͸Ϋϥ΢υɻਥೋපͰ΋࿀͕͍ͨ͠ʂ ˙ ૣਫ ౧ࢠ ݪࢠ֩෺ཧͷԠ༻෼໺Ͱಇ͘ҩࢣɻ೴ͷػೳը૾͕ઐ໳ʢͷ͸ͣʣ ɻTwitter ͸ @hayamizumɻ ˙ hogelog ࠷ۙौ୩ʹΑ͘ߦ͖·͢ɻ ˙ yuyarin େखொͰ IX ͷӡ༻Λ͠ͳ͕ΒΠϯλʔωοτΛࢧ͑Δখਓɻ10/100G Πʔαωο τ໢ͳͲ͕ຊۀ͚ͩͲझຯͰϧʔςΟϯάΛᅂΜͰ͍Δɻ࠷ۙࣗ୐΋ΦϑΟε΋Ҿͬӽͨ͠ɻ λΠτϧ The Database Times vol.2 ൃߦ೔ 2012 ೥ 12 ݄ 31 ೔ ॳ൛ൃߦ αʔΫϧ Hotchpotch Society ஶऀ ͸΍Έͣɺsuu-gɺલဠ խਓɺૣਫ ౧ࢠɺhogelogɺyuyarin දࢴσβΠϯ ૣਫ ౧ࢠ ࿈བྷઌ [email protected] ΢ΣϒαΠτ http://hayamiz.com/~hotchpotch/ ҹ࡮ॴ ʢגʣϙϓϧε