Skip to content

Latest commit

ย 

History

History
66 lines (47 loc) ยท 5.79 KB

week03_DBReplica.md

File metadata and controls

66 lines (47 loc) ยท 5.79 KB

DB ๋ ˆํ”Œ๋ฆฌ์นด ๊ตฌ์กฐ (READ์™€ WRITE DB ๋ถ„๋ฆฌ)

DB ๋ ˆํ”Œ๋ฆฌ์นด ๊ตฌ์กฐ๋Š” ๊ณ ๊ฐ€์šฉ์„ฑ, ์„ฑ๋Šฅ ํ–ฅ์ƒ, ๋ฐ์ดํ„ฐ ์†์‹ค ๋ฐฉ์ง€ ๋“ฑ์„ ๋ชฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณต์ œ๋ณธ์„ ๋งŒ๋“œ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋” ๋งŽ์€ ์ฝ๊ธฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ , ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๊ตฌ์กฐ๋กœ ์šด์˜๋˜๋ฉฐ, ๋งˆ์Šคํ„ฐ DB๋Š” ์“ฐ๊ธฐ ์ž‘์—…์„ ๋‹ด๋‹นํ•˜๊ณ , ์Šฌ๋ ˆ์ด๋ธŒ(๋˜๋Š” ๋ ˆํ”Œ๋ฆฌ์นด)๋Š” ์ฝ๊ธฐ ์ž‘์—…์„ ๋‹ด๋‹นํ•œ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ์ˆ˜ํ‰์  ํ™•์žฅ์„ฑ๊ณผ ๋ฐ์ดํ„ฐ ๊ฐ€์šฉ์„ฑ์„ ๋†’์—ฌ์ฃผ๋ฉฐ, ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ ํšจ๊ณผ์ ์ด๋‹ค.

1. DB ๋ ˆํ”Œ๋ฆฌ์นด ๊ฐœ๋…

๋ ˆํ”Œ๋ฆฌ์นด DB๋Š” ๋งˆ์Šคํ„ฐ DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณต์ œํ•œ ๋ณต์‚ฌ๋ณธ์ด๋‹ค. ๋ ˆํ”Œ๋ฆฌ์นด๋Š” ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ์Šคํ„ฐ DB์™€ ๋™๊ธฐํ™”๋œ๋‹ค. ์ฃผ๋กœ ๋น„๋™๊ธฐ ๋˜๋Š” ๋™๊ธฐ ๋ณต์ œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•œ๋‹ค.

  • ๋™๊ธฐ ๋ณต์ œ๋Š” ๋งˆ์Šคํ„ฐ DB์—์„œ ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ•˜๋ฉด ์Šฌ๋ ˆ์ด๋ธŒ DB๋กœ ์ฆ‰์‹œ ์ „ํŒŒํ•˜์—ฌ, ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ˆ˜์‹ ํ•œ ํ›„ ํŠธ๋žœ์žญ์…˜์„ ์™„๋ฃŒํ•œ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜์ง€๋งŒ, ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์ด๋‚˜ ์Šฌ๋ ˆ์ด๋ธŒ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ์“ฐ๊ธฐ ์ž‘์—…์ด ์ง€์—ฐ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ๋น„๋™๊ธฐ ๋ณต์ œ๋Š” ๋งˆ์Šคํ„ฐ DB๊ฐ€ ํŠธ๋žœ์žญ์…˜์„ ์™„๋ฃŒํ•œ ํ›„ ์Šฌ๋ ˆ์ด๋ธŒ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ „ํŒŒ๊ฐ€ ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์“ฐ๊ธฐ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

2. ๋ ˆํ”Œ๋ฆฌ์นด์˜ ์ด์ 

DB ๋ ˆํ”Œ๋ฆฌ์นด ๊ตฌ์กฐ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค:

  • ์ฝ๊ธฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ: ๋ ˆํ”Œ๋ฆฌ์นด DB๋Š” ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋งŽ์€ ์ฝ๊ธฐ ์š”์ฒญ์„ ๋งˆ์Šคํ„ฐ DB ๋Œ€์‹  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์„ ๋†’์ธ๋‹ค.
  • ๊ณ ๊ฐ€์šฉ์„ฑ: ๋งˆ์Šคํ„ฐ DB์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์Šฌ๋ ˆ์ด๋ธŒ DB๋ฅผ ๋งˆ์Šคํ„ฐ๋กœ ์Šน๊ฒฉํ•  ์ˆ˜ ์žˆ์–ด ๋‹ค์šดํƒ€์ž„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐฑ์—… ๋ฐ ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ: ๋ ˆํ”Œ๋ฆฌ์นด DB๋Š” ๋ฐฑ์—…์„ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ๋ณต์‚ฌ๋ณธ ์—ญํ• ์„ ํ•˜๋ฉฐ, ๋ณต๊ตฌ ์‹œ์—๋„ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค.

3. ๋ ˆํ”Œ๋ฆฌ์นด์˜ ๋™์ž‘ ๋ฐฉ์‹

๋ ˆํ”Œ๋ฆฌ์นด ๊ตฌ์กฐ์—์„œ ๋งˆ์Šคํ„ฐ DB์™€ ์Šฌ๋ ˆ์ด๋ธŒ DB๋Š” **๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ(Binary Log)**๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•œ๋‹ค. ๋งˆ์Šคํ„ฐ DB๋Š” ์“ฐ๊ธฐ ์ž‘์—…์„ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜๊ณ , ์Šฌ๋ ˆ์ด๋ธŒ DB๋Š” ์ด ๋กœ๊ทธ๋ฅผ ์ฝ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•œ๋‹ค.

  1. ๋งˆ์Šคํ„ฐ DB์—์„œ ์“ฐ๊ธฐ ์ž‘์—…์ด ๋ฐœ์ƒํ•œ๋‹ค.
  2. ๋งˆ์Šคํ„ฐ DB๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ํŠธ๋žœ์žญ์…˜์„ ๊ธฐ๋กํ•œ๋‹ค.
  3. ์Šฌ๋ ˆ์ด๋ธŒ DB๊ฐ€ ์ด ๋กœ๊ทธ๋ฅผ ์ฝ์–ด์™€ ๋™์ผํ•œ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

4. ํ•œ๊ณ„์  ๋ฐ ์ฃผ์˜์‚ฌํ•ญ

๋ ˆํ”Œ๋ฆฌ์นด ๊ตฌ์กฐ์˜ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์˜์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

  • ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๋ฌธ์ œ: ๋น„๋™๊ธฐ ๋ณต์ œ์˜ ๊ฒฝ์šฐ, ์Šฌ๋ ˆ์ด๋ธŒ DB๋Š” ๋งˆ์Šคํ„ฐ DB๋ณด๋‹ค ์ตœ์‹  ์ƒํƒœ๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณต์ œ ์ง€์—ฐ: ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋˜๋Š” ์Šฌ๋ ˆ์ด๋ธŒ DB์˜ ์„ฑ๋Šฅ์— ๋”ฐ๋ผ ๋ณต์ œ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ด€๋ฆฌ ๋ณต์žก์„ฑ ์ฆ๊ฐ€: ๋งˆ์Šคํ„ฐ ์žฅ์•  ์‹œ ์Šฌ๋ ˆ์ด๋ธŒ ์Šน๊ฒฉ ๋“ฑ ๋ณต์žกํ•œ ๊ด€๋ฆฌ ์ž‘์—…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

5. ๋ณต์ œ ์ง€์—ฐ ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

**๋ณต์ œ ์ง€์—ฐ(replication lag)**์€ ๋งˆ์Šคํ„ฐ DB์™€ ์Šฌ๋ ˆ์ด๋ธŒ DB ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „ํŒŒ ์†๋„ ์ฐจ์ด๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋กœ ์ธํ•ด ์Šฌ๋ ˆ์ด๋ธŒ DB๋Š” ๋งˆ์Šคํ„ฐ DB์™€ ์ผ๊ด€๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜์–ด, ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค:

  1. WRITE DB ์ง์ ‘ ์กฐํšŒ
    ๋ณต์ œ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ์š”์ฒญ์˜ ๊ฒฝ์šฐ, **๋งˆ์Šคํ„ฐ DB(WRITE DB)**๋ฅผ ์ง์ ‘ ์กฐํšŒํ•˜์—ฌ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž์˜ ์ฃผ๋ฌธ ์ฒ˜๋ฆฌ๋‚˜ ์ค‘์š”ํ•œ ํŠธ๋žœ์žญ์…˜์—๋Š” ๋งˆ์Šคํ„ฐ DB์—์„œ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

  2. ์บ์‹ฑ(Caching) ํ™œ์šฉ
    ์ž์ฃผ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•˜์—ฌ ์Šฌ๋ ˆ์ด๋ธŒ DB์˜ ์ฝ๊ธฐ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ , ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค. ์บ์‹œ๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ต์ง€๋งŒ, ์บ์‹œ ๋งŒ๋ฃŒ ์‹œ๊ฐ„๊ณผ ๊ฐฑ์‹  ์ „๋žต์„ ์ ์ ˆํžˆ ์„ค์ •ํ•˜๋ฉด ๋ณต์ œ ์ง€์—ฐ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

  3. ๋ณต์ œ ์ฃผ๊ธฐ ์กฐ์ •
    ์Šฌ๋ ˆ์ด๋ธŒ DB์˜ ๋ณต์ œ ์ฃผ๊ธฐ๋ฅผ ๋” ์งง๊ฒŒ ์„ค์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์ž์ฃผ ๋™๊ธฐํ™”ํ•˜๋„๋ก ํ•จ์œผ๋กœ์จ ๋ณต์ œ ์ง€์—ฐ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณต์ œ ์ฃผ๊ธฐ๋ฅผ ๋„ˆ๋ฌด ์งง๊ฒŒ ์„ค์ •ํ•  ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์‹œ์Šคํ…œ ์ž์›์„ ๊ณ ๋ คํ•œ ์ ์ ˆํ•œ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

  4. ์ผ๊ด€์„ฑ ์žˆ๋Š” ์ฝ๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ
    ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ์“ฐ๊ธฐ ์ž‘์—… ํ›„์˜ ์ฝ๊ธฐ ์š”์ฒญ์€ ๋ฐ˜๋“œ์‹œ ๋งˆ์Šคํ„ฐ DB์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๊ฑฐ๋‚˜, read-your-writes ํŒจํ„ด์„ ์ ์šฉํ•˜์—ฌ ๋ณต์ œ ์ง€์—ฐ์œผ๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

6. ํ™œ์šฉ ์˜ˆ์‹œ

DB ๋ ˆํ”Œ๋ฆฌ์นด ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค:

  • ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์ ‘์†ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ ˆํ”Œ๋ฆฌ์นด DB๋Š” ์ฝ๊ธฐ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ถ„์„: ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ณด๋‹ค ์ฃผ๊ธฐ์ ์ธ ๋ถ„์„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๋ ˆํ”Œ๋ฆฌ์นด DB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋งˆ์Šคํ„ฐ DB์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์žฅ์•  ๋ณต๊ตฌ: ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋ ˆํ”Œ๋ฆฌ์นด DB๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฒฐ๋ก 

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