MySQL์šฉ Orchestrator: ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ๋‚ด๊ฒฐํ•จ์„ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ 

๋ชจ๋“  ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋Š” ๋‘ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ํ•˜๋‚˜์˜ DB ์„œ๋ฒ„๊ฐ€ ์žˆ์—ˆ๊ณ , ์ดํ›„ ์ฝ๊ธฐ ๊ทœ๋ชจ๋ฅผ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋งŒํ•˜์„ธ์š”! ์ฃผ์ธ์€ ํ•˜๋‚˜์ด์ง€๋งŒ ๋…ธ์˜ˆ๋Š” ๋งŽ์Šต๋‹ˆ๋‹ค. ์Šฌ๋ ˆ์ด๋ธŒ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋– ๋‚˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์„ ๊ฒƒ์ด์ง€๋งŒ ๋งˆ์Šคํ„ฐ๊ฐ€ ๋– ๋‚˜๋ฉด ์ƒํ™ฉ์ด ๋‚˜๋น ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„, ๊ด€๋ฆฌ์ž๊ฐ€ ์„œ๋ฒ„๋ฅผ ์˜ฌ๋ฆฌ๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ํ•ด์•ผ ํ• ๊นŒ์š”? ๋งˆ์Šคํ„ฐ๋ฅผ ์˜ˆ์•ฝํ•˜์„ธ์š”. ๋‚ด ๋™๋ฃŒ Pavel์ด ์ด๋ฏธ ์ด์— ๋Œ€ํ•ด ์ผ์Šต๋‹ˆ๋‹ค. ัั‚ะฐั‚ัŒัŽ, ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  Orchestrator for MySQL์ด ๊ผญ ํ•„์š”ํ•œ ์ด์œ ๋ฅผ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

"๋งˆ์Šคํ„ฐ๊ฐ€ ๋– ๋‚  ๋•Œ ์ฝ”๋“œ๋ฅผ ์ƒˆ ๋จธ์‹ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ „ํ™˜ํ•  ๊ฒƒ์ธ๊ฐ€?"๋ผ๋Š” ์ฃผ์š” ์งˆ๋ฌธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์ €๋Š” VIP(๊ฐ€์ƒ IP) ๋ฐฉ์‹์„ ๊ฐ€์žฅ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…๋ฐฑํ•˜์ง€๋งŒ ๋ถ„๋ช…ํ•œ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์•ฝํ•  ๋งˆ์Šคํ„ฐ๋Š” ์ƒˆ ์‹œ์Šคํ…œ์ด ์žˆ๋Š” L2 ์„ธ๊ทธ๋จผํŠธ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‘ ๋ฒˆ์งธ DC๋ฅผ ์žŠ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐํ˜ธ์ ์œผ๋กœ ํฐ L2๋Š” ๋‚˜์˜๋‹ค๋Š” ๊ทœ์น™์„ ๋”ฐ๋ฅด๋ฉด L2๋Š” ๋ž™์—๋งŒ ์žˆ๊ณ  L3์€ ๋ž™ ์‚ฌ์ด์— ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ์—๋Š” ํ›จ์”ฌ ๋” ๋งŽ์€ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ์— DNS ์ด๋ฆ„์„ ์“ฐ๊ณ  /etc/hosts๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” ํ•ด๊ฒฐ์ฑ…์ด ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์˜ ์žฅ์ ์€ ์ฒซ ๋ฒˆ์งธ ๋ฐฉ์‹์˜ ํŠน์ง•์ธ ์ œํ•œ์ด ์—†๋‹ค๋Š” ์ , ์ฆ‰ ๊ต์ฐจ DC ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ„๋ช…ํ•œ ์งˆ๋ฌธ์ด ์ œ๊ธฐ๋ฉ๋‹ˆ๋‹ค. Puppet-Ansible์„ ํ†ตํ•ด /etc/hosts์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์•ฝ๊ฐ„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์›น ์„œ๋ฒ„์— ์บ์‹ฑ DNS๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. DNS์—์„œ ์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•ด TTL 60์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ๋ฐฉ๋ฒ•์ด ์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • Consul ๋ฐ etcd์˜ ์‚ฌ์šฉ์„ ์•”์‹œํ•˜๋Š” ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ํฅ๋ฏธ๋กœ์šด ์˜ต์…˜ ํ”„๋ก์‹œSQL. ProxySQL์„ ํ†ตํ•ด ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ MySQL๋กœ ๋ผ์šฐํŒ…ํ•ด์•ผ ํ•˜๋ฉฐ ProxySQL ์ž์ฒด์—์„œ ๋ˆ„๊ฐ€ ๋งˆ์Šคํ„ฐ์ธ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‚ด์—์„œ ์ด ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•ด ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ.

Github์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” Orchestrator์˜ ์ €์ž๋Š” ๋จผ์ € VIP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์ฒด๊ณ„๋ฅผ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ ์ด๋ฅผ consul์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒด๊ณ„๋กœ ๋ณ€ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์ธํ”„๋ผ ๋ ˆ์ด์•„์›ƒ:

MySQL์šฉ Orchestrator: ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ๋‚ด๊ฒฐํ•จ์„ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ 
๊ณ ๋ คํ•ด์•ผ ํ•  ๋ช…๋ฐฑํ•œ ์ƒํ™ฉ์„ ์ฆ‰์‹œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • VIP ์ฃผ์†Œ๋Š” ์–ด๋–ค ์„œ๋ฒ„์˜ ๊ตฌ์„ฑ์—๋„ ๋“ฑ๋ก๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ƒํ™ฉ์„ ์ƒ์ƒํ•ด ๋ด…์‹œ๋‹ค. ๋งˆ์Šคํ„ฐ๊ฐ€ ์žฌ๋ถ€ํŒ…๋˜๊ณ  ๋กœ๋“œ๋˜๋Š” ๋™์•ˆ Orchestrator๋Š” ์žฅ์•  ์กฐ์น˜ ๋ชจ๋“œ๋กœ ๋“ค์–ด๊ฐ€ ์Šฌ๋ ˆ์ด๋ธŒ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งˆ์Šคํ„ฐ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์˜› ์ฃผ์ธ์ด ์ผ์–ด ๋‚ฌ๊ณ  ์ด์ œ VIP๋Š” ๋‘ ๋Œ€์˜ ์ž๋™์ฐจ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜์˜๋‹ค.
  • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ๊ธฐ์กด ๋งˆ์Šคํ„ฐ์™€ ์ƒˆ ๋งˆ์Šคํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋งˆ์Šคํ„ฐ์—์„œ๋Š” ifdown์„ ์‹คํ–‰ํ•ด์•ผ ํ•˜๊ณ  ์ƒˆ ๋งˆ์Šคํ„ฐ์—์„œ๋Š” ifup vip๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์•  ์กฐ์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋ถ„ํ•  ๋ธŒ๋ ˆ์ธ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „ ๋งˆ์Šคํ„ฐ ์Šค์œ„์น˜์˜ ํฌํŠธ๊ฐ€ ๊บผ์ง€๋Š” ๊ฒƒ์„ ์ด ์Šคํฌ๋ฆฝํŠธ์— ํฌํ•จํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Orchestrator๊ฐ€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋จผ์ € VIP๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์Šค์œ„์น˜์˜ ํฌํŠธ๋ฅผ ๋„๊ณ  ์ƒˆ ๋งˆ์Šคํ„ฐ์—์„œ VIP ์˜ฌ๋ฆฌ๊ธฐ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ˜ธ์ถœํ•œ ํ›„์—๋Š” arping ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ƒˆ VIP๊ฐ€ ์ด์ œ ์žˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”. ์—ฌ๊ธฐ.
  • ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ๋Š” read_only=1์ด์–ด์•ผ ํ•˜๋ฉฐ, ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ๋งˆ์Šคํ„ฐ๋กœ ์Šน๊ฒฉ์‹œํ‚ค๋Š” ์ฆ‰์‹œ read_only=0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ์„ ํƒํ•œ ์Šฌ๋ ˆ์ด๋ธŒ๋Š” ๋งˆ์Šคํ„ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. (Orchestrator์—๋Š” ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์ฒ˜์Œ์— ์ƒˆ ๋งˆ์Šคํ„ฐ์˜ ํ›„๋ณด๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์ „์ฒด ์„ ํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์œผ๋ฉฐ, ๋‘ ๋ฒˆ์งธ๋กœ ์–ด๋–ค ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋งˆ์Šคํ„ฐ๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ „์ฒด ์„ ํ˜ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋„ ์ „ํ˜€ ์„ ํƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ). ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋งˆ์Šคํ„ฐ๊ฐ€ ๋˜๋ฉด ์Šฌ๋ ˆ์ด๋ธŒ์˜ ๋ถ€ํ•˜๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๊ณ  ๋งˆ์Šคํ„ฐ์˜ ๋ถ€ํ•˜๋Š” ์ถ”๊ฐ€๋˜๋ฏ€๋กœ ์ด๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Orchestrator๊ฐ€ ์—†๋Š”๋ฐ ์™œ ํ•„์š”ํ•œ๊ฐ€์š”?

  • Orchestrator์—๋Š” ์ „์ฒด ํ† ํด๋กœ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋งค์šฐ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท ์ฐธ์กฐ).
  • Orchestrator๋Š” ์–ด๋Š ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋’ค์ฒ˜์ ธ ์žˆ๋Š”์ง€, ๋ณต์ œ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ค‘๋‹จ๋œ ์œ„์น˜๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(SMS ์ „์†ก์„ ์œ„ํ•ด Orchestrator์— ์ฒจ๋ถ€๋œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค).
  • Orchestrator๋Š” GTID ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค:

MySQL์šฉ Orchestrator: ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ๋‚ด๊ฒฐํ•จ์„ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ 
GTID ์˜ค๋ฅ˜๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Orchestrator๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • MySQL ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋จธ์‹ ์—์„œ ์˜์‚ฌ GTID๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” GTID๋ฅผ ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๊ณณ์— ํ•œ ๊ฐ€์ง€ ์œ ํ˜•์˜ binlog๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ๋ช…๋ น๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งˆ์Šคํ„ฐ์™€ ๋Œ€๋ถ€๋ถ„์˜ ์Šฌ๋ ˆ์ด๋ธŒ์— ํ–‰์ด ์žˆ๊ณ  ์—ญ์‚ฌ์ ์œผ๋กœ ๋‘ ๊ฐœ๊ฐ€ ํ˜ผํ•ฉ ๋ชจ๋“œ์— ๋‚จ์•„ ์žˆ๋Š” ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ Orchestrator๋Š” ์ด๋Ÿฌํ•œ ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ์ƒˆ ๋งˆ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ƒ์‚ฐ ์Šฌ๋ ˆ์ด๋ธŒ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋งˆ์Šคํ„ฐ์™€์˜ ์ผ๊ด€์„ฑ์ด๋ผ๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค! ๋งˆ์Šคํ„ฐ์™€ ์Šฌ๋ ˆ์ด๋ธŒ ๋ชจ๋‘์—์„œ GTID(Global Transaction ID)๋ฅผ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ gtid_subset ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์š”์ฒญ์ด ์‹ค์ œ๋กœ ์ด๋Ÿฌํ•œ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

๋”ฐ๋ผ์„œ Orchestrator๋Š” GTID ์˜ค๋ฅ˜๋ฅผ ํ†ตํ•ด ๋งˆ์Šคํ„ฐ์— ์—†๋Š” ํŠธ๋žœ์žญ์…˜์ด ์Šฌ๋ ˆ์ด๋ธŒ์— ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์™œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

  • Read_only=1์ด ์Šฌ๋ ˆ์ด๋ธŒ์—์„œ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋ˆ„๊ตฐ๊ฐ€ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์š”์ฒญ์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Super_read_only=1์ด ์Šฌ๋ ˆ์ด๋ธŒ์—์„œ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„œ๋ฒ„๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ•œ ๊ด€๋ฆฌ์ž๊ฐ€ ๋“ค์–ด๊ฐ€์„œ ์š”์ฒญ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ „ ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜๋ฉด ํ•œ ๊ฐ€์ง€ ํŠธ๋ฆญ์ด ๋” ์žˆ์Šต๋‹ˆ๋‹ค. MySQL์—์„œ๋Š” binlog๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•˜๋ผ๋Š” ์š”์ฒญ๋„ binlog๋กœ ์ด๋™ํ•˜๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ ํ”Œ๋Ÿฌ์‹œ์—์„œ GTID ์˜ค๋ฅ˜๊ฐ€ ๋งˆ์Šคํ„ฐ์™€ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•? Perona-5.7.25-28์—๋Š” binlog์— ํ”Œ๋Ÿฌ์‹œ ์“ฐ๊ธฐ๋ฅผ ๊ธˆ์ง€ํ•˜๋Š” binlog_skip_flush_commands=1 ์„ค์ •์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. mysql.com ์›น์‚ฌ์ดํŠธ์— ํ™•๋ฆฝ๋œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ.

์œ„์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์š”์•ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„์ง ์žฅ์•  ์กฐ์น˜ ๋ชจ๋“œ์—์„œ Orchestrator๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ๊ด€์ฐฐ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์„ธ์š”. ๊ทธ๋Ÿฌ๋ฉด MySQL ์‹œ์Šคํ…œ์˜ ์ƒํ˜ธ ์ž‘์šฉ์— ๋Œ€ํ•œ ๋งต๊ณผ ๊ฐ ์‹œ์Šคํ…œ์— ์–ด๋–ค ์œ ํ˜•์˜ ๋ณต์ œ๊ฐ€ ์žˆ๋Š”์ง€, ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋’ค์ฒ˜์ ธ ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ๋Š” ๋งˆ์Šคํ„ฐ์™€ ์–ผ๋งˆ๋‚˜ ์ผ๊ด€์„ฑ์ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์‹œ๊ฐ์  ์ •๋ณด๊ฐ€ ํ•ญ์ƒ ๋ˆˆ์•ž์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค!

๋ถ„๋ช…ํ•œ ์งˆ๋ฌธ์€ "Orchestrator๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?"์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ํ˜„์žฌ ์Šฌ๋ ˆ์ด๋ธŒ์—์„œ ์ƒˆ ๋งˆ์Šคํ„ฐ๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ์—ฌ๊ธฐ์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด GTID์— ํ•„์š”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. binlog_name ๋ฐ binlog_pos์™€ ํ•จ๊ป˜ ์ด์ „ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ํ˜„์žฌ ๋งˆ์Šคํ„ฐ์—์„œ ์ƒˆ ๋งˆ์Šคํ„ฐ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค ๋‹จ์ˆœํžˆ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!). Orchestrator๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์—๋Š” ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ๋˜ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋งˆ์Šคํ„ฐ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” Adaptec ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ธํ•ด ์ค‘๋‹จ๋˜์—ˆ์œผ๋ฉฐ ์•ฝ 10๊ฐœ์˜ ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ์—์„œ ์Šฌ๋ ˆ์ด๋ธŒ ์ค‘ ํ•˜๋‚˜๋กœ VIP๋ฅผ ์ „์†กํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ๋‹ค์‹œ ์—ฐ๊ฒฐํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ฝ˜์†”์„ ์—ด์–ด์•ผ ํ–ˆ๋Š”์ง€, ๋ช‡ ๊ฐœ์˜ ๋™์‹œ ๋ช…๋ น์„ ์ž…๋ ฅํ–ˆ๋Š”์ง€... ์ƒˆ๋ฒฝ 3์‹œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ–ˆ๊ณ , ๋‘ ๊ฐœ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ์—์„œ ๋กœ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๋‘ ๊ฐœ์˜ ๋งˆ์Šคํ„ฐ ์ค‘ ์ฒซ ๋ฒˆ์งธ ๋จธ์‹ ์„ ๋งŒ๋“ค๊ณ , ๋‘ ๋ฒˆ์งธ ๋จธ์‹ ์„ ์ฆ‰์‹œ ์—ฐ๊ฒฐํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ์ƒˆ ๋งˆ์Šคํ„ฐ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋กœ๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ ๋”์ฐํ•ด์š”...

Orchestrator๊ฐ€ ์žฅ์•  ์กฐ์น˜ ๋ชจ๋“œ๋กœ ์ „ํ™˜๋˜๋ฉด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”? ์ด๋Š” ๋งˆ์Šคํ„ฐ๋ฅผ ์ง€๊ธˆ๋ณด๋‹ค ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ํ˜„๋Œ€์ ์ธ ๊ธฐ๊ณ„๋กœ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์ƒํ™ฉ์˜ ์˜ˆ์—์„œ ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค.

MySQL์šฉ Orchestrator: ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ๋‚ด๊ฒฐํ•จ์„ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ 
๊ทธ๋ฆผ์€ ํ”„๋กœ์„ธ์Šค์˜ ์ค‘๊ฐ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์ด๋ฏธ ์–ด๋–ค ์ผ์ด ์ด๋ฃจ์–ด์กŒ๋‚˜์š”? ์šฐ๋ฆฌ๋Š” ์ผ๋ถ€ ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ์ƒˆ๋กœ์šด ๋งˆ์Šคํ„ฐ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๊ณ  ๋งํ–ˆ๊ณ , Orchestrator๋Š” ์ƒˆ๋กœ์šด ๋งˆ์Šคํ„ฐ๊ฐ€ ์ „์†ก ์‹œ์Šคํ…œ ์—ญํ• ์„ ํ•˜์—ฌ ๋‹ค๋ฅธ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ์—ฌ๊ธฐ์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์„ฑํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์ž‘๋™ํ•˜๋ฉฐ Orchestrator๋Š” ์ด์ „ ๋งˆ์Šคํ„ฐ์—์„œ VIP๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ด๋ฅผ ์ƒˆ ๋งˆ์Šคํ„ฐ๋กœ ์ „์†กํ•˜๊ณ  read_only=0์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์ด์ „ ๋งˆ์Šคํ„ฐ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๋ชจ๋‘! ๋‹น์‚ฌ ์„œ๋น„์Šค์˜ ๋‹ค์šดํƒ€์ž„์€ VIP ํ™˜์Šน ์‹œ๊ฐ„์œผ๋กœ, 2~3์ดˆ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€์ž…๋‹ˆ๋‹ค. ๋ชจ๋‘๋“ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ณง Orchestrator์— ๋Œ€ํ•œ ๋‘ ๋ฒˆ์งธ ๊ธฐ์‚ฌ๊ฐ€ ๋‚˜์˜ฌ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์†Œ๋ จ์˜ ์œ ๋ช…ํ•œ ์˜ํ™” '๊ฐœ๋Ÿฌ์ง€'์—์„œ ํ•œ ๋“ฑ์žฅ์ธ๋ฌผ์€ "๋‚˜๋Š” ๊ทธ ์‚ฌ๋žŒ๊ณผ ํ•จ๊ป˜ ์ •์ฐฐ์— ๋‚˜์„œ์ง€ ์•Š๊ฒ ๋‹ค!"๋ผ๊ณ  ๋งํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋‹˜, ์ •์ฐฐ์— ํ•จ๊ป˜ ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค!

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€