精緻な解析と制御が可能な 恒常性のあるメール基盤

精緻な解析と制御が可能な 恒常性のあるメール基盤

高集積マルチアカウント基盤と流量制御の両立

松本亮介, 小田知央 (ペパボ研究所), 笠原義晃, 嶋吉隆夫, 金子晃介 (九州大学),
栗林健太郎 (ペパボ研究所), 岡村耕二 (九州大学)
2018.07.04 情報処理学会 マルチメディア、分散、協調とモバイル(DICOMO 2018)シンポジウム

提案手法:精緻に解析可能な恒常性のあるメール基盤

ドメイン単位でサーバプロセスを起動させつつ高集積化を実現する基盤
とあるセッションで一定期間起動し、状態の変化に素早く対応可能なコンテナアーキテクチャを応用 → FastContainerアーキテクチャ※1
ドメイン単位で精緻に解析や流量・リソース制御が可能な基盤
コンテナによるハードウェアリソース制御をドメイン単位で実施可能
コンテナ単位でのリソース不足は高速にスケールアウト可能

※1 松本 亮介, 中田 裕貴, 栗林 健太郎, HTTPリクエスト単位でインスタンスの再配置が可能な低コストで高速なスケジューリング手法, 研究報告インターネットと運用技術(IOT), Vol.2018-IOT-42, pp.1-8, Jun 2018.

2b692bd83f4418103142a053ecf5ff59?s=128

MATSUMOTO Ryosuke

July 06, 2018
Tweet

Transcript

  1. ߴूੵϚϧνΞΧ΢ϯτج൫ͱྲྀྔ੍ޚͷཱ྆ দຊ྄հ, খా஌ԝ (ϖύϘݚڀॴ), ּݪٛߊ, ౢ٢ོ෉, ۚࢠߊհ (۝भେֶ), ܀ྛ݈ଠ࿠ (ϖύϘݚڀॴ),

    Ԭଜߞೋ (۝भେֶ) 2018.07.04 ৘ใॲཧֶձ ϚϧνϝσΟΞɺ෼ࢄɺڠௐͱϞόΠϧʢDICOMO 2018ʣγϯϙδ΢Ϝ ਫ਼៛ͳղੳͱ੍ޚ͕Մೳͳ ߃ৗੑͷ͋Δϝʔϧج൫
  2. 1. എܠͱ໨త 2. ఏҊख๏ͷઃܭͱ࣮૷Ҋ 3. ·ͱΊͱࠓޙͷ՝୊ 2 ໨࣍

  3. 1. എܠͱ໨త

  4. • ࠓ΋޿͘࢖ΘΕ͍ͯΔϝʔϧ • ϝʔϧαʔϏεࣄۀऀ΋·ͩ·ͩݱ໾ • ϋʔυ΢ΣΞίετΛޮ཰ར༻͢ΔͨΊʹΞΧ΢ϯτ΍υϝΠϯΛߴूੵԽ • େྔૹ৴ɺspamϝʔϧɺϝʔϧ஗ԆɺΞΧ΢ϯτ৐ͬऔΓ౳ • ݁ՌతʹγεςϜ؅ཧɾϢʔβαϙʔτίετͷ૿Ճ

    • ಛఆͷΞΧ΢ϯτ΍υϝΠϯͷϦιʔε΍ྲྀྔ઎༗ʹΑΔෆ҆ఆੑ͕՝୊ 4 ݚڀͷഎܠ
  5. • ߴूੵԽͷͨΊʹ୯Ұͷαʔόϓϩηε܈Ͱෳ਺ͷυϝΠϯΛॲཧ • υϝΠϯʢԾ૝υϝΠϯʣ୯ҐͰͷ੍ޚػೳ͕ݶఆత • શͯͷυϝΠϯʹରͯ͠ಉҰͷಉ࣌઀ଓ਺౳ͷ੍ݶΛ੩తʹઃఆ • ੍ݶա৒ʹΑΓαʔόϦιʔεΛे෼ʹ࢖͍੾Δ͜ͱ͕೉͍͠ • υϝΠϯ୯ҐͰαʔόϓϩηε܈Λىಈ

    • ϝʔϧιϑτ΢ΣΞ΍ϓϩηε୯Ґͷશͯͷ੍ޚઃఆ͕Մೳ • ϓϩηε਺͕υϝΠϯ਺ʹґଘͯ͠ߴूੵʹऩ༰Ͱ͖ͳ͍ 5 ैདྷख๏ɿߴूੵϚϧνΞΧ΢ϯτܕͷྲྀྔ੍ݶ
  6. • αʔόϓϩηεΛෳ਺ͷυϝΠϯͰڞ༗͢Δํࣜ • ϓϩηεΛڞ༗͢ΔͨΊϝʔϧηογϣϯ୯ҐͰͷ੍ޚखஈ͕গͳ͍ • ߴूੵʹऩ༰Ͱ͖ͯ΋Ϧιʔεڝ߹ʹΑΔෆ҆ఆঢ়ଶ͕ੜ͡΍͍͢ • υϝΠϯ୯ҐͰαʔόϓϩηεΛىಈ • ϓϩηε਺͕υϝΠϯ਺ʹԠͯ͡୯ௐ૿Ճ

    • ߴूੵʹऩ༰͕Ͱ͖ͳ͍ 6 ैདྷख๏ͷ՝୊·ͱΊ
  7. • υϝΠϯ୯ҐͰαʔόϓϩηεΛىಈͤͭͭ͞ߴूੵԽΛ࣮ݱ͢Δج൫ • ͱ͋ΔηογϣϯͰҰఆظؒىಈ͠ɺঢ়ଶͷมԽʹૉૣ͘ରԠՄೳͳί ϯςφΞʔΩςΫνϟΛԠ༻ → FastContainerΞʔΩςΫνϟ※1 • υϝΠϯ୯ҐͰਫ਼៛ʹղੳ΍ྲྀྔɾϦιʔε੍ޚ͕Մೳͳج൫ •

    ίϯςφʹΑΔϋʔυ΢ΣΞϦιʔε੍ޚΛυϝΠϯ୯ҐͰ࣮ࢪՄೳ • ίϯςφ୯ҐͰͷϦιʔεෆ଍͸ߴ଎ʹεέʔϧΞ΢τՄೳ 7 ఏҊख๏ɿਫ਼៛ʹղੳՄೳͳ߃ৗੑͷ͋Δϝʔϧج൫ ˞দຊ྄հ தా༟و ܀ྛ݈ଠ࿠ )551ϦΫΤετ୯ҐͰΠϯελϯεͷ࠶഑ஔ͕Մೳͳ௿ίετͰߴ଎ͳεέδϡʔϦϯά ख๏ ݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢ*05ʣ 7PM*05 QQ +VO
  8. 3. ఏҊख๏ͷઃܭͱ࣮ݧతͳ࣮૷Ҋ

  9. • ߴूੵʹΞΧ΢ϯτɾυϝΠϯΛऩ༰Մೳʢ୯Ұͷαʔόʹ਺ສυϝΠϯʣ • CPU࿦ཧίΞ24ݸɺϝϞϦ32GBఔ౓ͷPCαʔόΛ૝ఆ • υϝΠϯ୯ҐͰݸผʹਫ਼៛ͰಈతͳϦιʔε੍ޚΛ࣮ݱ • Ұൠతͳϝʔϧϛυϧ΢ΣΞͷ੍ޚػೳΛυϝΠϯ୯Ґʹઃఆ͍ͨ͠ • εέʔϧΞοϓɾΞ΢τ/μ΢ϯɾΠϯʹΑΔϦιʔε૿ڧɾ੍ݶ΋Մೳ

    • ҟͳΔϋʔυ΢ΣΞ΁ͷಁաతͳҠಈ΋૝ఆ • υϝΠϯ୯ҐͰݸผʹਫ਼៛ͳηογϣϯ৘ใऩूʢࠓޙͷదԠత੍ޚʹܨ͛Δʣ 9 ࣮ݱ͍ͨ͜͠ͱɿ௿Ձ֨Խͱ҆ఆԽʹ޲͚ͯ
  10. • υϝΠϯ୯ҐͰαʔόϓϩηεΛىಈͤͭͭ͞ߴूੵԽΛ࣮ݱ͢Δج൫ • ηογϣϯ୯ҐͰҰఆظؒىಈ͠ɺঢ়ଶͷมԽʹૉૣ͘ରԠՄೳͳίϯ ςφΞʔΩςΫνϟΛԠ༻ → FastContainerΞʔΩςΫνϟ • υϝΠϯ୯ҐͰίϯςφΛىಈ͠ਫ਼៛ʹྲྀྔɾϦιʔε੍ޚ͕Մೳͳج൫ •

    ϛυϧ΢ΣΞͷ੍ݶશͯΛυϝΠϯʹରͯ͠ద༻Մೳ • ίϯςφʹΑΔϋʔυ΢ΣΞϦιʔε੍ޚΛυϝΠϯ୯ҐͰ࣮ࢪՄೳ • ίϯςφ୯ҐͰͷϦιʔεෆ଍࣌ʹ͸ߴ଎ʹεέʔϧΞ΢τՄೳ 10 ఏҊख๏ɿਫ਼៛ʹղੳՄೳͳ߃ৗੑͷ͋Δϝʔϧج൫
  11. FastContainer: ߃ৗੑ͔ΒಘΒΕΔ҆ఆੑ 11 ϗετ" ϗετ" ϗετ" ϗετ" ϗετ" Πϯλʔωοτ ϗετ"

    ϗετ" ϗετ" ΍͕ͯఀࢭ ൓Ԡతʹىಈ ൓Ԡతʹ εέʔϧΞοϓ ऩ༰αʔόA ऩ༰αʔόB ϦΫΤετ ൓Ԡతʹ εέʔϧΞ΢τ • ϗετͷىಈͱఀࢭΛ॥؀ • ৗʹ॥؀͠ଓ͚ΔΞʔΩςΫνϟ • มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑ ঢ়ଶͷมԽͷ଎౓վળΛ௥ٻ ৗʹมԽՄೳͰ͋ΔͨΊಥൃతͳΞ ΫηεूதͷΑ͏ͳมԽʹ΋଱ੑͷ ͋ΔΞʔΩςΫνϟΛ࣮ݱՄೳ
  12. • ΞΫςΟϒͳηογϣϯͷΈ͕ίϯςφͱͯ͠ىಈ • ݸਓ޲͚ϗεςΟϯάαʔϏεͷΞΫςΟϒϢʔβ͕গͳ͍ࣄʹண໨ • SMTPͱIMAPͰ͸ηογϣϯ৘ใΛσʔλϕʔεʹอଘ • কདྷతʹ͸σʔλΛղੳͯ͠దԠతʹྲྀྔΛ੍ޚ͍ͨ͠ • ߏ੒৘ใ΍੍ޚઃఆ͸શͯσʔλϕʔεԽͯ͠ݸผ͔ͭಈతʹ੍ޚՄೳ

    • ϗετOS͕ఀࢭͯ͠΋ίϯςφ͕ࣗಈతʹผϗετʹҠಈՄೳ 12 FastContainerͱߴूੵऩ༰
  13. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ 13 *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN

    4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB
  14. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ 14 *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN

    4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB
  15. ಉҰϗετ ϝʔϧج൫ͷSMTPૹ৴ϑϩʔৄࡉ 15 4.513PVUFS OHY@NSVCZ $.%#"1* 4.51ίϯςφ ʢυϝΠϯ୯Ґʣ 4.51ίϯςφ ʢυϝΠϯ୯Ґʣ

    4.51ίϯςφ ʢυϝΠϯ୯Ґʣ 4.51'BTU$PO QFSEPNBJO 1PTUpY 4.510VU 1PTUpY 4.51'JMUFS 0VU 7JSVTHX .6" .5" 4.51 %JTQBUDIFS OHY@NSVCZ υϝΠϯʹج͖ͮ)551ܦ༝Ͱͷ ΞΧ΢ϯτɾυϝΠϯೝূͱϓϩ ΩγઌऔಘΛ࣮ࢪ ηογϣϯ৘ใ΋ऩू 4.51ίϯςφ͕ىಈ͍ͯ͠ͳ͚Ε͹ ϦΞΫςΟϒʹҰఆظؒىಈ σʔλऩूɾղੳͱߏ੒؅ཧ $PMMFDU 4FTTJPO%BUB 1NJMUFS
  16. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ 16 *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN

    4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB
  17. )PTU04 ϝʔϧج൫ͷSMTPड৴ϑϩʔৄࡉ 17 $.%#"1* *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ

    -.51'BT$PO QFSEPNBJO %PWFDPU 4.51*O 1PTUpY -.513PVUFS  1PTUpYNSVCZ 4.51'JMUFS*O 7JSVTHX .5" -.51 %JTQBUDIFS 1PTUpYNSVCZ .BJMEJS *OEFY 4UPSBHF 4.51 JOFU -.51 6%4 $PMMFDU 4FTTJPO%BUB 1NJMUFS 4.51 JOFU 4.51 JOFU
  18. ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ 18 *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN

    4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB
  19. )PTU04 ϝʔϧج൫ͷIMAPड৴ϑϩʔৄࡉ 19 *."13PVUFS OHY@NSVCZ $.%#"1* .6" *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ

    ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1'BT$PO QFSEPNBJO EPWFDPU *."1 %JTQBUDIFS OHY@NSVCZ .BJMEJS *OEFY 4UPSBHF *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ $POUSPM 3FTPVSDF NSVCZ *."1 JOFU *."1 JOFU %PWFDPU 1MVHJO σʔλऩूɾղੳͱߏ੒؅ཧ EPWFDPUNSVCZQMVHJO  ίϚϯυ୯ҐͰ$16࢖༻཰౳Λ੍ݶ  ηογϣϯ৘ใ΍ίϚϯυͷৼΔ෣͍౳Λ؅ཧ
  20. 4. ·ͱΊ

  21. • ઃܭͱ࣮ݧత࣮૷͸׬ྃ • ϓϩτλΠϓ࣮૷Λߦͬͯ༗ޮੑͷධՁ • Ϧιʔεޮ཰΍ੑೳධՁ • ϓϩμΫγϣϯ؀ڥʹ͓͚ΔϦιʔε੍ޚͷ༗ޮੑΛධՁ • ηογϣϯσʔλͷղੳख๏ͷઃܭ

    • ηογϣϯσʔλʹجͮ͘υϝΠϯ୯ҐͰͷదԠతͳ੍ޚઃఆ • ϗετOSҟৗ࣌ʹผϗετʹಁաతʹίϯςφΛϚΠάϨʔγϣϯ 21 ·ͱΊͱࠓޙͷ՝୊
  22. • ຊݚڀͰ࢖༻ͨ͠Ϋϥ΢υࢿݯ͸ɼฏ੒29೥౓ࠃཱ৘ใֶݚڀॴΫϥ΢υར ׆༻࣮ূ࣮ݧʹ͓͍ͯఏڙ͞Εͨɽ • ·ͨɼຊݚڀ͸ɼҎԼͷݚڀॿ੒Λड͚͍ͯΔɽ • দຊ྄հ,খా஌ԝ,ۙ౻Ӊஐ࿕,ּݪٛߊ,Ԭଜߞೋ,ౢ٢ོ෉,ۚࢠߊհ, mrubyΛར༻ͨܰ͠ྔίϯςφΫϥ΢υج൫ͷݚڀ։ൃΛհͨ͠mrubyͷ େن໛ɾߴෛՙςετ, 2017೥౓Ruby

    Association։ൃॿ੒, 2017೥10݄. 22 ँࣙ