Slide 1

Slide 1 text

ͳΊΒ͔ͳγεςϜʹ͓͚ΔWebαʔϏεͷϢʔβମײͱٕज़ऀମײʹؔ͢Δݚڀ ϖύϘݚڀॴ ओ੮ݚڀһ γχΞɾϓϦϯγύϧΤϯδχΞ দຊ྄հ / Pepabo R&D Institute, GMO Pepabo, Inc. 2017.10.16 ʲ෱ԬUɾIλʔϯر๬ऀ޲͚ʳΤϯδχΞ޲͚τʔΫˍ૬ஊձˏ౦ژ ϖύϘ෱ԬͰͷʮମײʯΛ޲্ͤ͞Δ WebαʔϏεج൫ٕज़ʹؔ͢ΔऔΓ૊Έ

Slide 2

Slide 2 text

• ϖύϘݚڀॴ ओ੮ݚڀһ • ژ౎େֶത࢜ʢ৘ใֶʣ • γχΞɾϓϦϯγύϧ ΤϯδχΞ • ݩΠϯϑϥΤϯδχΞ • ೔ຊOSS঑ྭ৆ɾ৘ใॲཧֶձ ࢁԼه೦ݚڀ৆ 2 দຊ྄հ / ·ͭ΋ͱΓʔ / @matsumotory

Slide 3

Slide 3 text

෱ԬͰओʹ׆ಈ͍ͯ͠Δ ϖύϘݚڀॴͷऔΓ૊Έͷ঺հ

Slide 4

Slide 4 text

• ւࢁ઒ͱඒຯ͍͠͝͸Μʹғ·Εͳ͕Βͬ͘͡Γݚڀ։ൃ • ओʹࡋྔ࿑ಇɾϦϞʔτϫʔΫɾ࣌ؒ͸ࣗ༝ • ձࣾͷٕज़త՝୊ʹج͍ͯҰൠԽͨ͠ख๏ΛఏҊɾධՁ • ੵۃతʹ࿦จࣥචɾࠪಡ΍ݚڀձࢀՃɾӡӦ • དྷ೥͸ࠃࡍԽʹ޲͚ͯੵۃతʹ׆ಈΛ։࢝͢Δ༧ఆ 4 ؆୯ʹϖύϘݚڀॴͷಇ͖ํͱਐḿ

Slide 5

Slide 5 text

1. ͳΊΒ͔ͳγεςϜ 2. WebαʔϏεج൫ٕज़ͷݚڀͱ͸ 3. ڞ༗ϗεςΟϯάαʔϏεͷηΩϡϦςΟͱੑೳͷݚڀ 4. ৗ࣌HTTPSͷ࣌୅ͷେن໛ূ໌ॻ؅ཧͷݚڀ 5. ·ͱΊ 5 ໨࣍

Slide 6

Slide 6 text

1. ͳΊΒ͔ͳγεςϜ

Slide 7

Slide 7 text

• ίϯϐϡʔλ΍Πϯλʔωοτʹؔ͢Δٕज़͸ൃల͕ͨ͠… • ࠓ΋೔ৗతʹ৮ΕΔγεςϜ͸༷ʑͳোนʹຬͪᷓΕ͍ͯΔ • োน(ΰπΰπ)ͷऔΓআ͔ΕͨະདྷͷγεςϜΛ࣮ݱ͍ͨ͠ • ͳΊΒ͔ͳγεςϜ΁ 7 ίϯϐϡʔλͷൃలͱোน

Slide 8

Slide 8 text

1. γεςϜʹͱͬͯͷϢʔβ΍ɺγεςϜΛߏ੒͢Δαʔό౳ͷཁૉ͕ɺͲ ͷΑ͏ͳΧςΰϦʹଐ͢Δ͔ɺ͍͔ͳΔಛ௃Λ͔࣋ͭΛɺਫ਼៛ʹೝࣝ͢Δ 2. ͦͷࡍɺϢʔβ΍γεςϜ؅ཧऀͱ͍ͬͨਓؒʹ࿑ۤΛڧ͍ΔΑ͏ͳ໌ࣔ తͳૢ࡞Λ՝͞ͳ͍ 3. 1.͓Αͼ2.ͰಘͨΑΓਫ਼៛ͳΧςΰϦ΍ݸผͷಛ௃ɺ͋Δ͍͸ͦΕΒͷؒ ͷؔ܎ੑʹج͖ͮɺͦͷ࣌ʑͷঢ়گʹԠͯ͡࠷దͳαʔϏεΛఏڙ͢Δ ͳΊΒ͔ͳγεςϜΛ࣮ݱ͢ΔWebαʔϏεج൫ٕज़ͷݚڀ 8 ͳΊΒ͔ͳγεςϜ͸ҎԼͷཁ݅Λຬͨ͢

Slide 9

Slide 9 text

2. WebαʔϏεج൫ٕज़ͷݚڀͱ͸

Slide 10

Slide 10 text

• ਓؒͷϓϩμΫτ΁ͷൃ૝Λࢧ͑ΒΕΔج൫͕ඞཁ • ͜Ε·Ͱ͸֤छྖҬΛਓखͰΧόʔ͢Δ͜ͱ͕ଟ͔ͬͨ • ੑೳɾηΩϡϦςΟɾϦιʔε؅ཧɾӡ༻ٕज़ͳͲ • ج൫ΛػցͰࢧ͑ࣗಈԽ͠αʔϏεͷݶքΛ௒͑Δ • ਓؒͷൃ૝ͷݶքͱج൫ͷݶքͱͷউෛͷੈքͱ͍͑Δ 10 WebαʔϏεج൫ٕज़ͷݶք͸αʔϏεͷݶք

Slide 11

Slide 11 text

ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ 11 ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ਓͷମྗɾਫ਼ਆͷݶք ਓͷମྗɾਫ਼ਆͷݶք ਓྗͰࢧ͑ଓ͚Δ ਓྗͰ޿͛ଓ͚Δ ਓྗͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ػցͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ Ίͷݚڀ։ൃΛߦ͍ͬͯΔ দຊͷݚڀ

Slide 12

Slide 12 text

• WebαʔϏεར༻ऀͷϢʔβʔମײ(User Sensation)ͷվળ • WebαʔϏεར༻ऀͷແҙࣝԼʹ͓͚Δշదͳײ֮ͷఏڙ • ౰ͨΓલʹී௨ʹҧ࿨ײͳ͘࢖͍ଓ͚ΒΕΔ͜ͱͷշద͞ • WebαʔϏεఏڙଆͷٕज़ऀମײ(Engineer Sensation)ͷվળ • ౰ͨΓલʹγεςϜͷ҆ఆੑΛอͪɺਓͷڧ੍հೖΛ௿ݮ 12 ࢲͷݚڀςʔϚ

Slide 13

Slide 13 text

1. ηΩϡϦςΟͱੑೳͷཱ྆ʹؔ͢Δݚڀ 2. HTTPSԽʹ޲͚ͨӡ༻ٕज़ͱϦιʔε࢖༻ྔվળͷݚڀ 13 ຊεϥΠυͰ͸2ͭͷݚڀΛ঺հ

Slide 14

Slide 14 text

3. ڞ༗ϗεςΟϯάαʔϏεͷ ηΩϡϦςΟͱੑೳͷݚڀ

Slide 15

Slide 15 text

1. ηΩϡϦςΟͱੑೳͷཱ྆ʹؔ͢Δݚڀ 2. ηΩϡϦςΟͷͨΊͷӡ༻ٕज़ͱੑೳվળͷݚڀ 15 ຊεϥΠυͰ͸2ͭͷݚڀΛ঺հ দຊ྄հ, Ԭ෦णஉ,εϨου୯ҐͰݖݶ෼཭Λߦ͏WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ,ిࢠ ৘ใ௨৴ֶձ࿦จࢽ Vol.J96-B, No.10, pp.1122-1130, Oct 2013.

Slide 16

Slide 16 text

• ௿Ձ֨ԽͷͨΊ୯ҰͷαʔόʹߴूੵʹϗετΛऩ༰ • Ϣʔβ͕ར༻͢Δϗετ୯ҐͰηΩϡϦςΟΛ୲อ • HTTPϦΫΤετ࣌ʹϓϩηε୯ҐͰݖݶ෼཭ • ϦΫΤετຖʹϓϩηεͷੜ੒ɾഁغ͕ඞཁͰ௿ੑೳ • ͍͔ʹϦΫΤετ୯Ґͷݖݶ෼཭ͷίετΛ௿͘͢Δ͔ 16 ڞ༗ϗεςΟϯάαʔϏεͷηΩϡϦςΟ

Slide 17

Slide 17 text

• ݖݶ෼཭ΛLinuxεϨουੜ੒ɾഁغͷίετͰ࣮ݱ • εϨου୯ҐͰݖݶΛ੍ޚ͢ΔͷͰ࣮૷͸ෳࡶ • εϨουͷੜ੒ഁغ͸ϓϩηεͱൺ΂ͯ਺ेഒ௿ίετ※1 17 εϨου୯ҐͰݖݶ෼཭ ※1 Gu Yan, Bu-Sung Lee, Wentong Cai, "Evaluation of Java thread performance on two different multithreaded kernels." ACM SIGOPS Operating Systems Review, Vol. 33, No. 1, pp. 34-46, 1999.

Slide 18

Slide 18 text

ຊ൪؀ڥͰ࣮ӡ༻্ͷධՁ

Slide 19

Slide 19 text

Ұ೔ͷΞΫηε਺1000ສͷαʔόʹಋೖ 19 ˙TZTUFN ˙VTFS ˙JEMF ैདྷख๏ ఏҊख๏ ࣮ࡍʹ͸͜ͷఔ౓ͷαʔό͕਺ඦ୆ଘࡏ͢Δ

Slide 20

Slide 20 text

• ฐࣾϗεςΟϯάαʔϏεʢϨϯλϧαʔόʣʹಋೖࡁΈ • ϩϦϙοϓʂͰ͸2015೥͔Βݚڀॴͷٕज़Λੵۃతʹಋೖத • ϔςϜϧ΋2016೥͔Βಋೖޙ໰୊ͳ͘Քಇத 20 ಋೖޙ໰୊ͳ͘Քಇத

Slide 21

Slide 21 text

ੑೳ͕ߴ͘ͳΓ ࣗવͱϢʔβʔʮମײʯ͕޲্

Slide 22

Slide 22 text

αʔόෛՙ΍؅ཧίετ͕Լ͕Γ ࣗવͱٕज़ऀʮମײʯ΋޲্

Slide 23

Slide 23 text

3. ৗ࣌HTTPSͷ࣌୅ͷূ໌ॻ؅ཧͷݚڀ

Slide 24

Slide 24 text

1. ηΩϡϦςΟͱੑೳͷཱ྆ʹؔ͢Δݚڀ 2. ηΩϡϦςΟͷͨΊͷӡ༻ٕज़ͱੑೳվળͷݚڀ 24 ຊεϥΠυͰ͸2ͭͷݚڀΛ঺հ • দຊ ྄հ, Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔόͷػ ೳ֦ுࢧԉػߏ, ৘ใॲཧֶձ࿦จࢽɼVol.55, No.11, pp.2451-2460, Nov 2014. • দຊ ྄հ, ฏݪ ਖ਼༟, ࡾ୐ ༔հ, ྗ෢ ݈࣍, ܀ྛ ݈ଠ࿠, ߴूੵϚϧνςφϯτWebαʔόͷେن໛ূ ໌ॻ؅ཧͱ࣮ӡ༻্ͷධՁ, ৘ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-39, Vol.14, pp.1-8, 2017೥9݄.

Slide 25

Slide 25 text

• υϝΠϯ΍ϗετΛେྔʹ࣋ͭαʔϏε͸ରԠࠔ೉ • ݱࡏͷαʔόιϑτ΢ΣΞ͸େྔͷূ໌ॻͷѻ͍ʹෆ޲͖ • ͜ͷ··Ͱ͸EC΍ϗεςΟϯάͷHTTPSಋೖ͕ۃΊͯࠔ೉ • Ͱ͸େྔূ໌ॻʹରԠͨ͠ιϑτ΢ΣΞΛ࡞Γ·͠ΐ͏ 25 ৗ࣌HTTPSԽʹରԠ͍ͯ͘͠ඞཁ༗Γ

Slide 26

Slide 26 text

• αʔόϓϩηεىಈ࣌ʹશͯͷূ໌ॻΛಡΈࠐΉ • ىಈ͕࣌ؒ஗͘ઃఆ൓ө࣌ͷӡ༻͕ࠔ೉ • ৽͍͠ϗετͱূ໌ॻ௥Ճ࣌ʹ͸ϓϩηε࠶ىಈ͕ඞཁ • αʔόϓϩηεͷϝϞϦ࢖༻ྔଟ͍ 26 ैདྷख๏ͷ՝୊

Slide 27

Slide 27 text

• αʔόϓϩηεىಈ࣌ʹূ໌ॻ͸ಡΈࠐ·ͳ͍ • αʔόϓϩηεͷ࠶ىಈ/࠶ಡΈࠐΈ࣌ؒΛߴ଎Խ • TLSϋϯυγΣΠΫ࣌ʹඞཁͳূ໌ॻͱઃఆΛಈతʹಡΈࠐΈ • ߴ଎ͳϓϩηε࠶ಡΈࠐΈʹΑΔϝϞϦղ์΋Մೳ • ূ໌ॻ΍ϗετͷ৽ن௥Ճઃఆʹ࠶ىಈ͕ෆཁ 27 ఏҊख๏

Slide 28

Slide 28 text

• 10ສϗετ෼ͷ4096bitsͷ伴௕ͷൿີ伴ͱαʔόূ໌ॻΛ nginxόʔδϣϯ1.11.13ͰಡΈࠐΈ • ैདྷख๏͸࠶ಡΈࠐΈॲཧͰ΋αʔϏεఀࢭʹܨ͕Δ 28 ैདྷख๏ͱఏҊख๏ͷىಈ࣌ؒͷ࣮ݧ ߲໨ ैདྷख๏ ఏҊख๏ ϓϩηεىಈͷ࣮࣌ؒ ඵ ϓϩηεىಈͷϢʔβ$16࢖༻࣌ؒ ඵ ϓϩηεىಈͷγεςϜ$16࢖༻࣌ؒ ඵ

Slide 29

Slide 29 text

10ສϗετऩ༰࣌ͷ੩తϑΝΠϧͷੑೳൺֱ 29 ਺ेCZUFTͷܰྔͳ)5.-ϑΝΠϧ΁ͷϦΫΤετ 3FRVFTUTFD ಉ࣌઀ଓ਺ ैདྷख๏ ఏҊख๏

Slide 30

Slide 30 text

ຊ൪؀ڥͰ࣮ӡ༻্ͷධՁ

Slide 31

Slide 31 text

• ैདྷख๏ͱఏҊख๏ͷ1ϲ݄ؒͷϦιʔε࢖༻ྔΛൺֱ • ैདྷख๏͸2017೥3݄͔Β4݄ɺఏҊख๏͸7݄͔Β8݄ • ෳ਺୆ͷಉҰϋʔυ΢ΣΞ্ʹ4݄຤ΛػʹϦϓϨʔε • ैདྷख๏͸Apache2.4ɺఏҊख๏͸nginx1.11Ͱ࣮૷ • ূ໌ॻ਺ͷ૿Ճ΍ϦΫΤετॲཧ਺ͷมԽͱൺֱ͠ͳ͕Βߟ࡯ 31 ແྉূ໌ॻαʔϏεΛػʹ࣮ӡ༻্ͷධՁ

Slide 32

Slide 32 text

ैདྷख๏ͰऔΓ૊ΜͰ͍ͨΒ ͲΕ͙Β͍େม͔ͩͬͨΛ͖ͪΜͱධՁ

Slide 33

Slide 33 text

͏·͍͍ͬͯ͘Δ࣌ͦ͜ ͦͷ༗ޮੑΛఆྔతʹ໌Β͔ʹ͢Δ

Slide 34

Slide 34 text

1ϲ݄ؒͷূ໌ॻ਺ͷભҠ 34 0 5000 10000 15000 20000 25000 1 6 11 16 21 26 31 The number of cer-ficates day The number of cer-ficate in a month dynamic load preload Θ͔Γʹ͍͕͘Ұϲ݄Ͱ͔Β΁ͱ ূ໌ॻఔ౓૿͍͑ͯΔ ূ໌ॻ਺͸ϦϓϨʔεલͷഒ͔Βഒ

Slide 35

Slide 35 text

1ϲ݄ؒͷCPU࢖༻཰ͷભҠ 35 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 1 6 11 16 21 26 31 CPU usage(%) day CPU usage in a mouth dynamic load preload ূ໌ॻ਺͕͔Βഒʹ΋ؔΘΒͣ$16࢖༻཰͸ඍ͕ࠩͩ௿ݮ܏޲

Slide 36

Slide 36 text

1ϲ݄ؒͷϝϞϦ࢖༻཰ͷભҠ 36 0 1000 2000 3000 4000 5000 6000 7000 8000 1 6 11 16 21 26 31 Memory usage(MBytes) day Memory usage in a mouth dycamic load preload ূ໌ॻ਺͸͔Βഒʹ΋ؔΘΒͣϝϞϦ࢖༻཰͸௿ݮ ఏҊख๏͸ສҎ্૿Ճ͍ͯ͠Δূ໌ॻ਺ʹ΋΄΅ґଘ͍ͯ͠ͳ͍ ূ໌ॻ਺૿Ճʹ൐͍ϝϞϦ࢖༻ྔ͸αʔόશମͰ(#ZUFTఔ౓૿Ճ

Slide 37

Slide 37 text

• ैདྷख๏͸20ສূ໌ॻΛॲཧ͢Δͷʹ500Gbytesඞཁ • 32GBytesͷαʔό͕15୆Ҏ্ඞཁ • ఏҊख๏͸20ສূ໌ॻͰ΋1୆ͰॲཧՄೳͷݟࠐΈ • 1ສূ໌ॻ૿Ճͯ͠΋ϝϞϦ࢖༻ྔ͸3GBytesͰ҆ఆ • ఏҊख๏ʹΑΓඞཁϋʔυ΢ΣΞίετΛେ෯ʹ௿ݮՄೳ 37 ϝϞϦ࢖༻ྔ͔Βඞཁͳϋʔυ΢ΣΞΛݟੵ΋Γ

Slide 38

Slide 38 text

஌Β͵ؒʹϋʔυ΢ΣΞ΍ӡ༻ίετ͕ ௿ݮ͞Εٕͯज़ऀʮମײʯ͕޲্

Slide 39

Slide 39 text

5. ·ͱΊ

Slide 40

Slide 40 text

ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ 40 ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ਓͷମྗɾਫ਼ਆͷݶք ਓͷମྗɾਫ਼ਆͷݶք ਓྗͰࢧ͑ଓ͚Δ ਓྗͰ޿͛ଓ͚Δ ਓྗͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ػցͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ Ίͷݚڀ։ൃΛߦ͍ͬͯΔ দຊͷݚڀ

Slide 41

Slide 41 text

ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ 41 ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ਓͷମྗɾਫ਼ਆͷݶք ਓͷମྗɾਫ਼ਆͷݶք ਓྗͰࢧ͑ଓ͚Δ ਓྗͰ޿͛ଓ͚Δ ਓྗͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ૝ ػցͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ Ίͷݚڀ։ൃΛߦ͍ͬͯΔ দຊͷݚڀ ࣮ӡ༻্ͷධՁΛେ੾ʹ͠ ͔ͦ͜Β৽نੑɾ༗ޮੑɾ৴པੑΛࣔ͢

Slide 42

Slide 42 text

• WebαʔϏεར༻ऀͷϢʔβʔମײ(User Sensation)ͷվળ • WebαʔϏεఏڙଆͷٕज़ऀମײ(Engineer Sensation)ͷվળ • ݚڀ։ൃΛ௨ͯ྆͠ํ޲ͷମײΛվળ͍ͯ͘͠ • ج൫ٕज़ͷվળΛ௨ͯ͠ਓ͕ࢧ͑Δ΂͖ྖҬΛΑΓߴ౓ʹ • WebαʔϏεج൫ͷݶքΛ௒͑ɺϓϩμΫτͷݶքΛ௒͑Δ 42 WebαʔϏεج൫ٕज़ͷݚڀ঺հ

Slide 43

Slide 43 text

ݚڀһɺੵۃతʹืूதʂ http://rand.pepabo.com/