#Redis #Swarm
카카오에는 Redis/Redis Cluster를 설치부터 관리까지 운영을 전문으로 하는 조직이 있습니다. 3000개가 넘는 레디스 운영 경험을 바탕으로 Docker Swarm을 기반 구축한 Redis SaaS 플랫폼 구축사례를 공유합니다.
발표자 : silvia.lee 카카오 시스템 엔지니어와 레디스 플랫폼 엔지니어를 맡고있는 실비아입니다.
$PQZSJHIU ,BLBP $PSQ"MMSJHIUTSFTFSWFE3FEJTUSJCVUJPOPSQVCMJDEJTQMBZJTOPUQFSNJUUFEXJUIPVUXSJUUFOQFSNJTTJPOGSPN,BLBP%PDLFS4XBSN ӝ߈3FEJT4BB4ۖಬ ҳ୷ ࢎ۹JG LBLBPয় 4JMWJBMFF
View Slide
ࣗѐ*O.FNPSZ5'ੋۄೡয় 3FEJT3FEJT$MVTUFSࢲߡ ࢸ ߂ ҙܻ 3FEJT3FEJT$MVTUFSನೣ ࣻୌѐ 3FEJT
֙ _ࣗѐ*O.FNPSZ5'
ҳ୷ ݾदझమ ҳઑ)" )JHIBWBJMBCJMJUZ4XBSNبੑ ࢎਬҳ୷ ബҗ
ҳ୷ ݾ
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ1SPE%FW
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗVTFS BENJO3FEJT ࢤࢿ ਃ1SPE%FW
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ3FEJT ࢤࢿ ਃ1SPE%FWVTFS BENJO
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ3FEJT ࢤࢿ ਃSFEJTFYBNQMFEPNBJODPN1SPE%FWVTFS BENJO
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ3FEJT ࢤࢿ ਃSFEJTFYBNQMFEPNBJODPNೞܖ _୭ ࣻѐਘ1SPE%FWVTFS BENJO
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ(6*1SPE%FWVTFS
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ(6*SFEJTFYBNQMFEPNBJODPN1SPE%FWVTFS
ҳ୷ ݾ ಞܻೠ ࢎਊࢎਊח ߹ب সա ࢸহ ѐߊ ױ҅ 1IBTFী ਃೠ3FEJTܳ द ࢤࢿ೧ ࢎਊೡ ࣻ ب۾ ਗ(6*SFEJTFYBNQMFEPNBJODPN࠙1SPE%FWVTFS
ҳ୷ ݾ 1. 3FEJT ¬1.߹ ୭ ѐ 3FEJTܳ ߓನೞৈ ب ೱ࢚
दझమ ҳઑ
VTFS8दझమ ҳઑ
8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS"1*VTFSदझమ ҳઑ.BOBHFS -8.BOBHFS .BOBHFS
दझమ ҳઑ"1*VTFS88PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS.BOBHFS - .BOBHFS .BOBHFS
%#SFEJT FOEQPJOUदझమ ҳઑ"1*VTFS8.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS%/4SFEJTFYBNQMFEPNBJODPNSFEJTFYBNQMFEPNBJODPNSFEJTFYBNQMFEPNBJODPNjj
%#दझమ ҳઑ"1* 8.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS%/4&MBTUJD4FBSDI1SPNFUIFVT
%#दझమ ҳઑex)changes(redis_db_keys{instance=“redis1.example.domain.com:6379”}[7d])max_over_time(redis_connected_clients{instance=“redis1.example.domain.com:6379”}[7d])*EMF3FTPVSDF1SPNFUIFVT.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS%/4"1*
"1*%#दझమ ҳઑVTFS.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS%/41SPNFUIFVT
%/4%#दझమ ҳઑBENJO8PSLFS8PSLFS.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS"1*1SPNFUIFVT
)" )JHIBWBJMBCJMJUZ
)" )JHIBWBJMBCJMJUZ$MJFOU"QQIPTUOFUXPSLSFEJTFYBNQMFEPNBJODPN".BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS.BOBHFS -
)" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFSSFEJTFYBNQMFEPNBJODPN"$MJFOU"QQ
.POJUPSJOH3FEJTNPO)" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFSSFEJTFYBNQMFEPNBJODPNSFEJTFYBNQMFEPNBJODPNSFEJTFYBNQMFEPNBJODPNjj
SFEJTFYBNQMFEPNBJODPN")" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS3FEJTNPO $MJFOU"QQ
SFEJTFYBNQMFEPNBJODPN""1*6QEBUF)" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS3FEJTNPO $MJFOU"QQ
SFEJTFYBNQMFEPNBJODPN""1*)" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS3FEJTNPO $MJFOU"QQ
SFEJTFYBNQMFEPNBJODPN"SFEJTFYBNQMFEPNBJODPN")" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS3FEJTNPO $MJFOU"QQ%#"1*%/4
)" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS3FEJTNPO $MJFOU"QQSFEJTFYBNQMFEPNBJODPN"55-
"1*%/4.POJUPSJOH6QEBUF6QEBUF)" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS3FEJTNPO $MJFOU"QQSFEJTFYBNQMFEPNBJODPN"55-
VTFSBENJO)" )JHIBWBJMBCJMJUZ.BOBHFS - .BOBHFS .BOBHFS8PSLFS 8PSLFS 8PSLFS 8PSLFS3FEJTNPO $MJFOU"QQSFEJTFYBNQMFEPNBJODPN"55-
3FEJTNPO ࣗѐ 1ZUIPOӝ߈ 3FEJTݽפఠ݂ ؘހ ѐ ؘހীࢲ ୡ ড ѐ 3FEJTੋझఢझ ݽפఠ݂ ࣻ೯ оמ TDBMFPVUоמ 1PSUPQFSBUJPOفо ఋੑ ݽפఠ݂ ߑध ਗ झ पಁ ಕੌয়ߡ ߮ ࣠)" )JHIBWBJMBCJMJUZ
3FEJTNPO ࣗѐ3FEJTNPO
3FEJTNPO ࣗѐ ߓ সਵ۽ ੋೠ ੌद ې ૐо ߂ PQFSBUJPOIFBMUIDIFDLपಁ
ߓ সਵ۽ ੋೠ ੌद ې ૐо ߂ PQFSBUJPOIFBMUIDIFDLपಁ3FEJTNPO ࣗѐ ݽפఠ݂ ఋੑਸ QPSUDIFDLߑधਵ۽ ߸҃ೞৈ ࠛਃೠ ಕੌয়ߡ ߑ
.BTUFS 3FQMJDB.BTUFS3FQMJDB/PO3FQMJDB$MJFOU"QQ$MJFOU"QQ
.BTUFS3FQMJDB.BTUFSؘఠ ਬप ୭ࣗച.BTUFS)"ؘఠ ਬप ೲਊ.BTUFS1SPNPUJPO3FQMJDB/PO3FQMJDB$MJFOU"QQ$MJFOU"QQ
.BTUFS3FQMJDB.BTUFSؘఠ ਬप ୭ࣗച.BTUFS)"ؘఠ ਬप ೲਊ.BTUFS3FQMJDB/PO3FQMJDB$MJFOU"QQ$MJFOU"QQ1SPNPUJPO
• ۄ ਕ۽٘߹ ୭ ݽפఠ݂ਸ ઁҕ೧ ࠛਃೠಕੌয়ߡ ߑ• /PO3FQMJDBҳࢿীࢲب )" ਗ3FEJTNPO3FEJTNPO ബҗ
%PDLFS4XBSNبੑ ࢎਬ
ਃҳ ࢎ೦ ࡅܲ ߓನ ֫ ب ਗ ҙܻ 4DIFEVMJOH ਗ ࢚క ҙܻ 4UBUF о߶ о࢚ച ӝࣿ QFSGPSNBODF%PDLFS4XBSNبੑ ࢎਬ
ਃҳ ࢎ೦ ࡅܲ ߓನ ֫ ب ਗ ҙܻ 4DIFEVMJOH ਗ ࢚క ҙܻ 4UBUF о߶ о࢚ച ӝࣿ QFSGPSNBODF%PDLFS4XBSNبੑ ࢎਬஶపց য়ாझۨ࣌
%PDLFS4XBSN ,VCFSOFUFT*OTUBMMBUJPO4FUVQ 2VJDLBOEFBTZ $PNQMFY-FBSOJOHDVSWF -JHIUXFJHIU CVUMJNJUFEGVODUJPOBMJUZ)JHI CVUIBTNPSFGFBUVSFT(6* 9 SFRVJSFUIJSEQBSUZUPPMT /BUJWFEBTICPBSET4DBMBCJMJUZ 0 0)JHI"WBJMBCJMJUZ 0 0/FUXPSLJOH PWFSMBZ JOHSFTT IPTUCSJEHF *OHSFTT 'MBOOFM $BMJDPBOENPSF$PNNVOJUZ 4NBMMFS )VHFBOEBDUJWF0QUJNBMVTFDBTF 2VJDLUPEFQMPZBOEFBTZUPNBOBHF)JHIEFNBOEBQQTBOE SFRVJSFBDPNQMFUFQBDLBHF%PDLFS4XBSNWT,VCFSOFUFT
%PDLFS4XBSNWT,VCFSOFUFT4DBMBCJMJUZ ࢎਊ ਃী ೠ ࣻز ഛ )1" )PSJ[POUBM1PE"VUPTDBMFSܳాೠ ې ӝ߈ ز ഛ
%PDLFS4XBSNWT,VCFSOFUFT4DBMBCJMJUZ ࢎਊ ਃী ೠ ࣻز ഛIFMMPXPSMESFQMJDBTTFSWJDF4XBSNNBOBHFSIFMMPXPSME4XBSNXPSLFSUBTL DPOUBJOFS
%PDLFS4XBSNWT,VCFSOFUFT4DBMBCJMJUZ ࢎਊ ਃী ೠ ࣻز ഛ$ docker service scale IFMMPXPSME=2helloworld scaled to 2IFMMPXPSMESFQMJDBTTFSWJDF4XBSNNBOBHFSIFMMPXPSME4XBSNXPSLFSUBTL DPOUBJOFS
%PDLFS4XBSNWT,VCFSOFUFT4DBMBCJMJUZ ࢎਊ ਃী ೠ ࣻز ഛ$ docker service scale IFMMPXPSME=2helloworld scaled to 2IFMMPXPSME SFQMJDBTTFSWJDF4XBSNNBOBHFSIFMMPXPSME4XBSNXPSLFSUBTL DPOUBJOFSIFMMPXPSME4XBSNXPSLFS
.BTUFS.BTUFS.BTUFS$MJFOU"QQLFZLFZLFZ3FEJTT4DBMBCJMJUZ
.BTUFS.BTUFS.BTUFSLFZLFZLFZ1SPYZ3FEJTT4DBMBCJMJUZ$MJFOU"QQ
3FEJTT4DBMBCJMJUZOFX OFX
%PDLFS4XBSNWT,VCFSOFUFT)JHI"WBJMBCJMJUZ ݒפ ֢٘ ҙܻܳ ాೠоਊࢿ ഛࠁ SFQMJDBTFUਸ ాೠ QPE࢚క хद ߂BVUPIFBMJOH
%PDLFS4XBSNWT,VCFSOFUFT)JHI"WBJMBCJMJUZ ݒפ ֢٘ ҙܻܳ ాೠ оਊࢿ ഛࠁIFMMPXPSME SFQMJDBT4XBSNNBOBHFSIFMMPXPSME4XBSNXPSLFSIFMMPXPSME4XBSNXPSLFS
%PDLFS4XBSNWT,VCFSOFUFT)JHI"WBJMBCJMJUZ ݒפ ֢٘ ҙܻܳ ాೠ оਊࢿ ഛࠁIFMMPXPSME SFQMJDBT4XBSNNBOBHFSIFMMPXPSME4XBSNXPSLFSIFMMPXPSME4XBSNXPSLFSIFMMPXPSME4XBSNXPSLFS
$MJFOU"QQIPTUOFUXPSL%PDLFS4XBSNWT,VCFSOFUFT/FUXPSLJOH8PSLFS 8PSLFS 8PSLFS 8PSLFS 8PSLFS.BOBHFS - .BOBHFS .BOBHFS
%PDLFS4XBSN ബҗ• %PDLFS4XBSN ஶపց झா݂ ߂ ࢚క ҙܻܳ೧ષਵ۽ॄ 1.ب ೱ࢚• ۞झఠ ए ࢸ ߂ ࡅܲ ҳࢿ оמ• ࠺Ү ծ ۞ழ࠳৬ बೠ ۞झఠ ҳઑ۽ ҙܻ ࠗ хࣗ
ҳ୷ ബҗ
ҳ୷ ബҗ• ౭ ߬झ 3FEJT ࢤࢿ ਃ ߑध न ਢਸ ాೠ ࢤࢿ ӝמ ઁҕਵ۽BENJOҗ ࢎਊр ழޭפா࣌ ࠺ਊ хࣗVTFS BENJO3FEJT ࢤࢿ ਃ(6*
• ೞܖ ࢚ ࣗਃغ؍ 3FEJTFOEQPJOUࢤࢿ दрਸ ࠙ਵ۽ ױ୷BENJO1SPE%FWҳ୷ ബҗ
• ࢎਊ ಞ ೱ࢚ਵ۽ 3FEJTੋझఢझо ࡅܰѱ ૐоೞח ۖಬਵ۽ ࢿҳ୷ ബҗ
&0%