Dockerで動かす ISUCONポータルと問題 @さくらの夕べDocker/Kubernetesナイト #2 / ISUCON Portal and Problem with Docker

1ebd0877fc2fa18ecd0cf3105293fa1e?s=47 chibiegg
November 05, 2019

Dockerで動かす ISUCONポータルと問題 @さくらの夕べDocker/Kubernetesナイト #2 / ISUCON Portal and Problem with Docker

さくらインターネットでは ISUCON9 (Iikanjini Speed Up Contest) のポータルサイトと本戦の問題作成を担当しました。 ポータルサイトも本戦の問題もDockerを使ってデプロイしています。

ISUCON9でのサーバ運用をテーマに、大規模ではない環境でDockerを使うメリットとノウハウを共有します。
テーマ:Docker Compose・Minikube

1ebd0877fc2fa18ecd0cf3105293fa1e?s=128

chibiegg

November 05, 2019
Tweet

Transcript

  1. Docker-), ISUCON8;39. 2019-11-05 @+*1/0Docker/Kubernetes625 #2 ( !$%'#&%#'%" +*12:3;745  

       CISO  
  2.  2 *+ -,03I;JA<?   # $'!  CISO

    *(+ • -,0/VPS API/DB/89=F • sakura.io BJ@452)C1JF452( 89=F&%)( 3ICG&%) • 89=F/>J;:I;J" *./+ • CSAJ U22DH6GEI67I=9?  • Home NOC Operators’ Group (AS59105) 
  3.  3 7&8 • UN@HLDRJ= (W5) / NHKUNBV • 1/3#.

    •  • 12"$#- • SECCON CTF 2014  4 • ISUCON5/ISUSON7/ISUCON86ISUCON9 4 • ICTSC7 GXP 708 • FKI>?=?VDJ= • NW/SC/DBEMCQTEI • +)(/%;,;FKI>?= 7* 8 '/ / !/3/LUASOVA/:<99 
  4.  4 • *46$0/ͱ͸ • ϙʔλϧαΠτͷ࢓૊Έ • ։ൃͰ%PDLFS$PNQPTFΛ࢖͏ • σϓϩΠʹ%PDLFS$PNQPTFΛ࢖͏

    • %PDLFS $PNQPTFͰͷ՝୊ • σϓϩΠʹ,VCFSOBUFTΛ࢖͏ • *46$0/ͷ໰୊Λ%PDLFS$PNQPTFͰఏڙ͢Δ • ·ͱΊ
  5. 2019/11/5 ©SAKURA internet Inc. 5 *46$0/ͱ͸

  6.  6 • ఏڙ͞Εͨ΢ΣϒΞϓϦέʔγϣϯΛߴ଎Խ͢Δ • -*/&ओ࠵Ͱ೥͔Β։࠵ • ৆ۚສԁ

  7.   7

  8.   8

  9. 9

  10. 10

  11. 11

  12. 12

  13. 2019/11/5 ©SAKURA internet Inc. 13 *46$0/ϙʔλϧαΠτͱ͸

  14.  14 • (JU)VCೝূ • νʔϜࢀՃొ࿥ • ϝϯόʔͷ௥Ճ • ΞΠίϯొ࿥

    • "MJCBCB$MPVEΞΧ΢ϯτ*%ొ࿥ ༧બͷΈ • ίϯςετ༻04Πϝʔδڞ༗ ༧બͷΈ • ϕϯνϚʔΫ࣮ߦ • είΞάϥϑɾϥϯΩϯάදࣔ
  15.  15

  16.  16 • ϕϯνϚʔΫ࣮ߦ • δϣϒͷ౤ೖ νʔϜ͔Β • ϕϯνϚʔΧʔ΁ͷδϣϒͷׂΓ౰ͯ •

    ϩά౳ͷ݁Ռදࣔ
  17.  17

  18.  18

  19. 2019/11/5 ©SAKURA internet Inc. 19 *46$0/ϙʔλϧͷ࢓૊Έ

  20.    20 /HJOY EKBOHP 3FEJT HJUIVCDPN 1PTUHSF42- P"VUIೝূ

  21.  21 • /HJOY • ϦόʔεϓϩΩγͱ੩తϑΝΠϧ഑৴ • %KBOHP • 8FCΞϓϦέʔγϣϯຊମ

    • 3FEJT • άϥϑσʔλ౳ͷΩϟογϡ • 1PTUHSF42- • σʔλϕʔε
  22.  22 IUUQTHJUIVCDPNJTVDPOJTVDPOGJOBM IUUQTHJUIVCDPNJTVDPOJTVDPOQPSUBM

  23. 2019/11/5 ©SAKURA internet Inc. 23 ։ൃʹ%PDLFS$PNQPTFΛ࢖͏

  24. 24 • ։ൃ؀ڥ͸खݩͷNBD04ͳͲ • ͍ΖΜͳ։ൃΛฒߦͯ͠ߦ͏ͨΊɺ؀ڥߏங͕େม • σʔλϕʔεɺ3FEJTɺ1ZUIPOͷόʔδϣϯɺFUDʜ • %PDLFS $PNQPTFΛ࢖͏͜ͱͰ؆୯ʹ

    • ίϯςφΛ࢖͏ͨΊಠཱͨ͠؀ڥ͕༻ҙͰ͖Δ • ଞͷ؀ڥʹӨڹ͠ͳ͍ɺյ͞ͳ͍ • ॳΊ࣮ͯߦ͢Δਓ΋ίϚϯυͭ • AEPDLFSDPNQPTFCVJMEAAEPDLFSDPNQPTFVQAͷΈ • EPDLFSDPNQPTFZNMʹશͯॻ͍ͯ͋Δ • ࡟আ΋Ұߦ AEPDLFSDPNQPTFSNA
  25. 25 • HJU DMPOF HJU!HJUIVCDPNJTVDPOJTVDPO QPSUBMHJU • DE JTVDPOQPSUBM •

    EPDLFSDPNQPTFCVJME • EPDLFSDPNQPTF VQ • IUUQMPDBMIPTU Λ։͘
  26. 2019/11/5 ©SAKURA internet Inc. 27 %PDLFS$PNQPTFͰͷσϓϩΠ

  27. 28 %PDLFS$PNQPTFͱ4ZTUFNEΛ࢖͏ • ύοέʔδͷΠϯετʔϧ • EPDLFS EPDLFSDPNQPTF • ιʔείʔυΛ࣋ͬͯདྷΔ •

    EPDLFSDPNQPTFZNM ؚ͕·Ε͍ͯΔ • 4ZTUFNEʹαʔϏεొ࿥͢Δ
  28. 29 • ιʔείʔυߋ৽ͷ࣌ʹɺμ΢ϯλΠϜ͕ൃੜ͢Δ • ෼΄Ͳ͕ͩɺίϯςετத͸Өڹେ ˣ ϩʔϦϯάΞοϓσʔτ ͋Δ͍͸ ϒϧʔɾάϦʔϯσϓϩΠ͕ཉ͍͠

  29. 2019/11/5 ©SAKURA internet Inc. 30 ,VCFSOBUFTͰͷσϓϩΠ

  30.    31 • ,VCFOBUFTͷΠϯετʔϧ • ͜Ε͕େม • NJOJLVCFͳΒ؆୯

    • ιʔείʔυΛ࣋ͬͯདྷΔ • LVCFDUM BQQMZίϚϯυͰઃఆΛಡΈࠐΉ • ΠϝʔδͷόʔδϣϯΛม͑Δͱ ϩʔϦϯάΞοϓσʔτ͞ΕΔ
  31.    32 • ઃఆ౳ • 4FDSFUϦιʔεΛ࡞੒ • ֤छίϯςφ

    • %FQMPZNFOUϦιʔε࡞੒ • /HJOYɺ%KBOHPɺ3FEJTɺ1PTUHSF42- • %KBOHP͸3FQMJDBʹϨϓϦΧ਺Λࢦఆ • )551͸OPEF1PSUͰ4FSWJDFϦιʔε࡞੒ • ӬଓԽσʔλ • IPTU1BUIͰ1FSTJTUFOU7PMVNFΛ࡞੒ • σʔλϕʔεɺΞοϓϩʔυϑΝΠϧɺ੩తϑΝΠϧ
  32.    33 Nginx Nginx Service Portal Service Django

    Django Django Django Django Django Django Nginx PostgreSQL Redis dbdata staticfiles mediafiles Pod Service PV .JOJLVCF 
  33. 2019/11/5 ©SAKURA internet Inc. 34 %PDLFS$PNQPTFͰͷ໰୊ͷσϓϩΠ

  34. 9 35 ໰୊͸ଟݴޠͰఏڙ͞ΕΔ • (PMBOHɺ1ZUIPOɺ1FSMɺ1)1 ຊઓͷ৔߹ • Ұͭͷαʔόʹશݴޠͷ؀ڥΛೖΕΔඞཁ͕͋Δ • ࢀՃऀ͕؆୯ʹݴޠΛ੾Γସ͑Δ͜ͱ͕Ͱ͖Δ

    ˣ %PDLFS$PNQPTF 4ZTUFNE Ͱ σϓϩΠ
  35. 9 36 ݴޠຖʹ %PDLFSGJMF ͱ EPDLFSDPNQPTF ϑΝΠϧΛ࡞੒͢Δ

  36. 9 37 ݴޠຖʹTFSWJDFϑΝΠϧΛ༻ҙ͢Δ

  37.  38 ίϯςφΛ࢖͏ͱ։ൃ؀ڥͷڞ༗ָ͕ʹͳΔ EPDLFSDPNQPTF͸খ͞ͳσϓϩΠʹ΋࢖͑Δ ,VCFSOBUFT͸γϯάϧϊʔυͰ΋࢖͏ҙٛ͸͋Δ ίϯςφΛීஈ͔Β࢖Θͳ͍ख͸ແ͍

  38.  39 ϩʔϦϯάΞοϓσʔτ͸%PDLFS4XBSNͰ΋Ͱ͖Δ͸ͣ