//
Search
Duplicate

1์žฅ ์‚ฌ์šฉ์ž ์ˆ˜์— ๋”ฐ๋ฅธ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ

๋‹จ์ผ ์„œ๋ฒ„

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์บ์‹œ ๋“ฑ์ด ๋ชจ๋‘ ์„œ๋ฒ„ ํ•œ ๋Œ€์—์„œ ์‹คํ–‰
1.
์‚ฌ์šฉ์ž๋Š” ๋„๋ฉ”์ธ์„ ์ด์šฉํ•˜์—ฌ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†
2.
์ด ์ ‘์†์„ ์œ„ํ•ด ๋„๋ฉ”์ธ ์ด๋ฆ„์„ DNS ์— ์งˆ์˜ํ•˜๊ณ  IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”
3.
๋ฐ˜ํ™˜๋œ IP ์ฃผ์†Œ๋กœ http ์š”์ฒญ ์ „๋‹ฌ
4.
์›น ์„œ๋ฒ„๋Š” html ํŽ˜์ด์ง€๋‚˜ json ํ˜•ํƒœ์˜ ์‘๋‹ต์„ ๋ฐ˜ํ™˜

DB ์„œ๋ฒ„

์‚ฌ์šฉ์ž๊ฐ€ ๋Š˜๋ฉด ๊ฐ€์žฅ ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์›น/๋ชจ๋ฐ”์ผ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์šฉ๋„์˜ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์šฉ ์„œ๋ฒ„๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด ๊ฐ๊ฐ์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

DB ์„ ํƒ

โ€ข
RDBMS
โ—ฆ
๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”๊ณผ ์นผ๋Ÿผ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
โ—ฆ
SQL ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ ๊ด€๊ณ„์— ๋”ฐ๋ผ ์กฐ์ธํ•˜๊ณ  ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
NoSQL
โ—ฆ
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ NoSQL ์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ํฌ๊ฒŒ ๋„ค ๋ถ€๋ฅ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
โ–ช
ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ, ๊ทธ๋ž˜ํ”„ ์ €์žฅ์†Œ, ์นผ๋Ÿผ ์ €์žฅ์†Œ, ๋ฌธ์„œ ์ €์žฅ์†Œ
โ€ข
๋ณดํ†ต ์นœ์ˆ™ํ•œ RDBMS ๋กœ ์‹œ์ž‘ํ•˜์ง€๋งŒ ์‹œ์Šคํ…œ์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ NoSQL ์„ ์„ ํƒํ•ด์•ผํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
โ—ฆ
์•„์ฃผ ๋‚ฎ์€ ์‘๋‹ต ์ง€์—ฐ์‹œ๊ฐ„(latency)์ด ํ•„์š”ํ•  ๋•Œ
โ—ฆ
๋‹ค๋ฃจ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์ •ํ˜•์ด๋ผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ ๋•Œ
โ—ฆ
์•„์ฃผ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ

์ˆ˜์ง์  ๊ทœ๋ชจ ํ™•์žฅ vs ์ˆ˜ํ‰์  ๊ทœ๋ชจ ํ™•์žฅ

โ€ข
์Šค์ผ€์ผ ์—…(์ˆ˜์ง์  ๊ทœ๋ชจ ํ™•์žฅ) ํ”„๋กœ์„ธ์Šค
โ—ฆ
์„œ๋ฒ„์— ๋” ์ข‹์€ CPU, ๋” ๋งŽ์€ RAM ๋“ฑ ๊ณ ์‚ฌ์–‘ ์ž์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ–‰์œ„์ด๋‹ค.
โ—ฆ
์„œ๋ฒ„๋กœ ์œ ์ž…๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์–‘์ด ์ ์„ ๋•Œ ์ข‹์€ ์„ ํƒ, ๋‹จ์ˆœํ•จ
โ—ฆ
ํ™•์žฅ์— ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.
โ—ฆ
์žฅ์• ์— ๋Œ€ํ•œ ์ž๋™๋ณต๊ตฌ(failover) ๋ฐฉ์•ˆ์ด๋‚˜ ๋‹ค์ค‘ํ™”(redundancy) ๋ฐฉ์•ˆ์„ ์ œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ—ฆ
์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์™„์ „ํžˆ ์ค‘๋‹จ
โ€ข
์Šค์ผ€์ผ ์•„์›ƒ(์ˆ˜ํ‰์  ๊ทœ๋ชจ ํ™•์žฅ) ํ”„๋กœ์„ธ์Šค
โ—ฆ
๋” ๋งŽ์€ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ํ–‰์œ„์ด๋‹ค.
โ—ฆ
์žฅ๋‹จ์ ์€ ์Šค์ผ€์ผ ์—…๊ณผ ๋ฐ˜๋Œ€

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ

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

DB ๋‹ค์ค‘ํ™”

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

์บ์‹œ

๊ฐ’๋น„์‹ผ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ๋˜๋Š” ์ž์ฃผ ์ฐธ์กฐ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ๋‘๊ณ  ์š”์ฒญ์ด ๋ณด๋‹ค ๋นจ๋ฆฌ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ €์žฅ์†Œ

์บ์‹œ ๊ณ„์ธต

์บ์‹œ ๊ณ„์ธต์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž ์‹œ ๋ณด๊ด€๋˜๋Š” ๊ณณ์œผ๋กœ DB๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. ์„ฑ๋Šฅ ๊ฐœ์„ ๊ณผ DB ๋ถ€ํ•˜ ๊ฐ์†Œ๊ฐ€ ์žฅ์ ์ด๋‹ค. ๋˜ํ•œ ์บ์‹œ ๊ณ„์ธต์˜ ๊ทœ๋ชจ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ์‹œํ‚ค๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ
1.
์บ์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ์œผ๋ฉด ๋ฐ”๋กœ ๋ฐ˜ํ™˜
2.
์—†๋‹ค๋ฉด DB ์ฟผ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ณ  ์บ์‹œ์— ์ €์žฅํ•œ๋’ค ๋ฐ˜ํ™˜
โ†’ ์ฝ๊ธฐ ์ฃผ๋„ํ˜• ์บ์‹œ ์ „๋žต(read-through caching strategy)
์บ์‹œํ•  ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜, ํฌ๊ธฐ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋งž๋Š” ์บ์‹œ ์ „๋žต์„ ์ž˜ ์„ ํƒํ•ด์•ผํ•จ

์บ์‹œ ์‚ฌ์šฉ ์‹œ ์œ ์˜์ 

โ€ข
์บ์‹œ๋Š” ์–ด๋–ค ์ƒํ™ฉ์— ๋ฐ”๋žŒ์งํ•œ๊ฐ€?
โ—ฆ
๋ฐ์ดํ„ฐ ๊ฐฑ์‹ ์€ ์ž์ฃผ ์ผ์–ด๋‚˜์ง€ ์•Š์ง€๋งŒ ์ฐธ์กฐ๋Š” ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚  ๋•Œ
โ€ข
์บ์‹œ์— ๋ณด๊ด€๋œ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋ฃŒ(expire)๋˜๋Š”๊ฐ€?
โ—ฆ
์ด์— ๋Œ€ํ•œ ์ •์ฑ…์„ ๋งˆ๋ จํ•ด ๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
โ—ฆ
๋งŒ๋ฃŒ ๊ธฐํ•œ์ด ๋„ˆ๋ฌด ์งง์œผ๋ฉด DB ๋ฅผ ์ž์ฃผ ์ฝ๋Š”๋‹ค.
โ—ฆ
๋งŒ๋ฃŒ ๊ธฐํ•œ์ด ๋„ˆ๋ฌด ๊ธธ๋ฉด ์›๋ณธ๊ณผ ์ฐจ์ด๊ฐ€ ๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค.
โ€ข
์ธ๊ด€์„ฑ์€ ์–ด๋–ป๊ฒŒ ์œ ์ง€๋˜๋Š”๊ฐ€?
โ—ฆ
์ผ๊ด€์„ฑ์€ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์˜ ์›๋ณธ๊ณผ ์บ์‹œ ์‚ฌ๋ณธ์ด ๊ฐ™์€์ง€ ์—ฌ๋ถ€
โ—ฆ
์ €์žฅ์†Œ์˜ ์›๋ณธ์„ ๊ฐฑ์‹ ํ•˜๋Š” ์—ฐ์‚ฐ๊ณผ ์บ์‹œ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ์—ฐ์‚ฐ์ด ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ผ๊ด€์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค.
โ€ข
์žฅ์•  ๋Œ€์ฒ˜
โ—ฆ
SPOF๊ฐ€ ๋˜์–ด๋ฒ„๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์–ด ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€ ๋‘์–ด์•ผ ํ•œ๋‹ค.
โ—ฆ
SPOF: ์–ด๋–ค ํŠน์ • ์ง€์ ์—์„œ์˜ ์žฅ์• ๊ฐ€ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ค‘๋‹จ์‹œํ‚ฌ ๋•Œ
โ€ข
์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋Š”?
โ—ฆ
๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ์ž์ฃผ evict ๋œ๋‹ค.
โ—ฆ
์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณผํ• ๋‹นํ•˜์—ฌ ์บ์‹œ์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋Š˜์–ด๋‚  ๋•Œ๋„ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
eviction ์ •์ฑ…์€?
โ—ฆ
์ผ๋ฐ˜์ ์œผ๋กœ LRU(Least-Recently-Used)
โ—ฆ
LFU ๋˜๋Š” FIFO ๋„ ์žˆ๋‹ค.

CDN

์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋˜์–ด ์žˆ๊ณ  ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ „์†กํ•˜๋Š”๋ฐ ์“ฐ์ด๋Š” ์„œ๋ฒ„์˜ ๋„คํŠธ์›Œํฌ
request path, query string, ์ฟ ํ‚ค, ํ—ค๋” ๋“ฑ์˜ ์ •๋ณด์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ html ํŽ˜์ด์ง€๋ฅผ ์บ์‹ฑํ•˜๋Š” ๋™์  ์ปจํ…์ธ  ์ „์†ก ์„œ๋ฒ„๋„ ์žˆ๊ธดํ•˜๋‹ค.
์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด CDN ์„œ๋ฒ„๊ฐ€ ์ •์  ์ปจํ…์ธ ๋ฅผ ์ „์†กํ•œ๋‹ค.
1.
์‚ฌ์šฉ์ž A๊ฐ€ image.png ๋ฅผ ์š”์ฒญํ•œ๋‹ค.
2.
CDN ์„œ๋ฒ„์˜ ์บ์‹œ์— ํ•ด๋‹น ์ด๋ฏธ์ง€๊ฐ€ ์—†๋‹ค๋ฉด ์›๋ณธ ์„œ๋ฒ„์— ์š”์ฒญํ•˜์—ฌ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜จ๋‹ค.
3.
์›๋ณธ ์„œ๋ฒ„๊ฐ€ ํŒŒ์ผ์„ CDN ์„œ๋ฒ„์— ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์‘๋‹ต ํ—ค๋”์—๋Š” TTL(Time-To-Live) ๊ฐ’์ด ๋“ค์–ด์žˆ๋‹ค.
4.
CDN ์„œ๋ฒ„๋Š” ํŒŒ์ผ์„ ์บ์‹œํ•˜๊ณ  ์‚ฌ์šฉ์ž A์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
5.
์‚ฌ์šฉ์ž B๊ฐ€ image.png ๋ฅผ ์š”์ฒญํ•œ๋‹ค.
6.
๋งŒ๋ฃŒ๋˜์ง€ ์•Š์€ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ CDN ์„œ๋ฒ„์˜ ์บ์‹œ๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•œ๋‹ค.

CDN ์‚ฌ์šฉ ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ

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

๋ฌด์ƒํƒœ(stateless) ์›น ๊ณ„์ธต

์›น ๊ณ„์ธต ์ˆ˜ํ‰์  ํ™•์žฅ์„ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์„ธ์…˜ ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์€ ์ƒํƒœ ์ •๋ณด๋ฅผ ์›น ๊ณ„์ธต์—์„œ ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค. ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ด€๊ณ„ํ˜• DB ๋‚˜ NoSQL ๊ณผ ๊ฐ™์€ ์˜์† ์ €์žฅ์†Œ์— ๋ณด๊ด€ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ๋‹ค.

์ƒํƒœ ์ •๋ณด ์˜์กด์ ์ธ ์•„ํ‚คํ…์ฒ˜

์ƒํƒœ์ •๋ณด๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ์ •๋ณด, ์ฆ‰ย ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์—ฌ ์š”์ฒญ๋“ค ์‚ฌ์ด์— ๊ณต์œ ๋˜๋„๋ก ํ•œ๋‹ค. ๋ฌด์ƒํƒœ ์„œ๋ฒ„์—๋Š” ์ด๋Ÿฐ ์žฅ์น˜๊ฐ€ ์—†๋‹ค.
์‚ฌ์šฉ์ž์˜ ์ƒํƒœ ์ •๋ณด๊ฐ€ ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„์— ์ €์žฅ๋œ๋‹ค๋ฉด ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ์ƒํƒœ ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ ์„œ๋ฒ„๋กœ๋งŒ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ์˜ ์š”์ฒญ์€ ํ•ญ์ƒ ๊ฐ™์€ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” Sticky Session ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ด๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ๋ถ€๋‹ด์„ ์ค€๋‹ค.

๋ฌด์ƒํƒœ ์•„ํ‚คํ…์ฒ˜

์›น ์„œ๋ฒ„๋Š” ์–ด๋–ค ์‚ฌ์šฉ์ž๋“  http ์š”์ฒญ์„ ๋ฐ›๊ณ  ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ ์ •๋ณด๋Š”ย ๋ณ„๋„์˜ ๊ณต์œ  ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฐ€์ ธ์˜จ๋‹ค. ์ด์— ๋”ฐ๋ผ ์ƒํƒœ ์ •๋ณด๋Š”ย ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ตฌ์กฐ๋Š”ย ๋‹จ์ˆœํ•˜๊ณ , ์•ˆ์ •์ ์ด๊ณ , ๊ทœ๋ชจ ํ™•์žฅ์ด ์‰ฝ๋‹ค. ๊ณต์œ  ์ €์žฅ์†Œ๋Š” RDB ์ผ ์ˆ˜๋„, Memcached/Redis ๊ฐ™์€ ์บ์‹œ ์‹œ์Šคํ…œ์ผ ์ˆ˜๋„, NoSQL ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทœ๋ชจ ํ™•์žฅ์ด ๊ฐ„ํŽธํ•ด์„œ ์ฑ…์—์„œ๋Š” NoSQL ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
๊ณต์œ  ์ €์žฅ์†Œ๋ฅผ ํฌํ•จํ•œ ํ˜„์žฌ๊นŒ์ง€์˜ ์„ค๊ณ„
์ž๋™ ๊ทœ๋ชจ ํ™•์žฅ์€ ํŠธ๋ž˜ํ”ฝ ์–‘์— ๋”ฐ๋ผ ์›น ์„œ๋ฒ„๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ƒํƒœ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•˜์˜€๊ธฐ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฅผ ํ™•์žฅํ•˜๊ณ  ์ถ•์†Œํ•˜๋Š” ๋ฐ์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

๋ฐ์ดํ„ฐ ์„ผํ„ฐ

๊ฐ€์šฉ์„ฑ์„ ๋†’์ด๊ณ ย ์ „ ์„ธ๊ณ„ ์–ด๋””์„œ๋„ ์พŒ์ ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ด๋‹ค. ์žฅ์• ๊ฐ€ ์—†๋Š” ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋กœ ๋ผ์šฐํŒ…๋˜๋Š”๋ฐ, ์ด ์ ˆ์ฐจ๋ฅผย ์ง€๋ฆฌ์  ๋ผ์šฐํŒ…์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ง€๋ฆฌ์  ๋ผ์šฐํŒ…์—์„œ geoDNS๋Š” ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์— ๋”ฐ๋ผ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์–ด๋–ค IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ• ์ง€ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” DNS ์„œ๋น„์Šค์ด๋‹ค.
๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ค‘ ํ•˜๋‚˜์— ์‹ฌ๊ฐํ•œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์€ ์žฅ์• ๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ์ „์†ก๋œ๋‹ค.
๋‹ค์ค‘ ๋ฐ์ดํ„ฐ์„ผํ„ฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ์ˆ ์  ๋‚œ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•œ๋‹ค.
โ€ข
ํŠธ๋ž˜ํ”ฝ ์šฐํšŒ:ย ์˜ฌ๋ฐ”๋ฅธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ด๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š”๋‹ค. geoDNS๋Š” ์‚ฌ์šฉ์ž์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.
โ€ข
๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”:ย ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋งˆ๋‹ค ๋ณ„๋„๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด, ์žฅ์• ๊ฐ€ ์ž๋™์œผ๋กœ ๋ณต๊ตฌ๋˜์–ด, ํŠธ๋ž˜ํ”ฝ์ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์šฐํšŒ๋œ๋‹ค ํ•ด๋„ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ๋งž์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ์ƒํ™ฉ์„ ๋ง‰๋Š” ๋ณดํŽธ์  ์ „๋žต์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ์„ผํ„ฐ์— ๊ฑธ์ณ ๋‹ค์ค‘ํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
โ€ข
ํ…Œ์ŠคํŠธ์™€ ๋ฐฐํฌ:ย ์›น ์‚ฌ์ดํŠธ ํ˜น์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ์œ„์น˜์—์„œ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์ž๋™ํ™”๋œ ๋ฐฐํฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋™์ผํ•œ ์„œ๋น„์Šค๊ฐ€ ์„ค์น˜๋˜๋„๋ก ํ•œ๋‹ค.

๋ฉ”์‹œ์ง€ ํ

์‹œ์Šคํ…œ์„ ๋” ํฐ ๊ทœ๋ชจ๋กœ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค. ๋ฉ”์‹œ์ง€ ํ๋Š” ๋งŽ์€ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์ฑ„์šฉํ•˜๊ณ  ์žˆ๋Š” ํ•ต์‹ฌ ์ „๋žต์ด๋‹ค.
๋ฉ”์‹œ์ง€ ํ๋Š” ๋ฉ”์‹œ์ง€์˜ ๋ฌด์†์‹ค์„ ๋ณด์žฅํ•˜๋Š” ๋น„๋™๊ธฐ ํ†ต์‹ ์„ ์ง€์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ๋ฉ”์‹œ์ง€์˜ ๋ฒ„ํผ ์—ญํ• ์„ ํ•˜๋ฉฐ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ „์†กํ•œ๋‹ค. ๋ฉ”์‹œ์ง€ ํ์˜ ๊ธฐ๋ณธ ์•„ํ‚คํ…์ณ๋Š” ์ƒ์‚ฐ์ž ๋˜๋Š” ๋ฐœํ–‰์ž(producer/publisher) ์ธ ์ž…๋ ฅ ์„œ๋น„์Šค๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ฉ”์‹œ์ง€ ํ์— ๋ฐœํ–‰(publish)ํ•œ๋‹ค. ํ์—๋Š” ์†Œ๋น„์ž ๋˜๋Š” ๊ตฌ๋…์ž(consumer/subscriber)์ธ ์„œ๋น„์Šค ๋˜๋Š” ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„ ๊ทธ์— ๋งž๋Š” ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
๋ฉ”์‹œ์ง€ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋น„์Šค ๋˜๋Š”ย ์„œ๋ฒ„ ๊ฐ„ ๊ฒฐํ•ฉ์ด ๋Š์Šจํ•ด์ ธ, ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•˜๋Š” ์•ˆ์ •์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์ข‹๋‹ค. ์ƒ์‚ฐ์ž๋Š” ์†Œ๋น„์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์šด๋˜์–ด ์žˆ์–ด๋„ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฐ˜๋Œ€๋กœย ์†Œ๋น„์ž๋Š” ์ƒ์‚ฐ์ž ์„œ๋น„์Šค๊ฐ€ ๋‹ค์šด๋˜์–ด ์žˆ์–ด๋„ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์‚ฌ์šฉ ์˜ˆ๋กœ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์‚ฌ์ง„ ๋ณด์ • ์ž‘์—…

๋กœ๊ทธ, ๋ฉ”ํŠธ๋ฆญ, ์ž๋™ํ™”

์›น ์‚ฌ์ดํŠธ์™€ ์‚ฌ์—… ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ๋กœ๊ทธ, ๋ฉ”ํŠธ๋ฆญ(metric), ์ž๋™ํ™”(automation)์— ํ•„์ˆ˜์ ์œผ๋กœ ํˆฌ์žํ•ด์•ผ ํ•œ๋‹ค.
โ€ข
๋กœ๊ทธ:ย ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค. ์‹œ์Šคํ…œ์˜ ์˜ค๋ฅ˜์™€ ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์„œ๋ฒ„ ๋‹จ์œ„๋กœ ๋กœ๊ทธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ, ๋กœ๊ทธ๋ฅผ ํ•˜๋‚˜๋กœ ๋ชจ์•„์ฃผ๋Š” ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ฒ€์ƒ‰, ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
๋ฉ”ํŠธ๋ฆญ:ย ๋ฉ”ํŠธ๋ฆญ์„ ์ž˜ ์ˆ˜์ง‘ํ•˜๋ฉด ์‚ฌ์—… ํ˜„ํ™ฉ์— ๊ด€ํ•œ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์–ป์„์ˆ˜๋„ ์žˆ๊ณ , ์‹œ์Šคํ…œ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์†์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค.
โ—ฆ
ํ˜ธ์ŠคํŠธ ๋‹จ์œ„ ๋ฉ”ํŠธ๋ฆญ: CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ I/O์— ๊ด€ํ•œ ๋ฉ”ํŠธ๋ฆญ
โ—ฆ
์ข…ํ•ฉ(aggregated) ๋ฉ”ํŠธ๋ฆญ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ธต์˜ ์„ฑ๋Šฅ, ์บ์‹œ ๊ณ„์ธต์˜ ์„ฑ๋Šฅ
โ—ฆ
ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฉ”ํŠธ๋ฆญ: ์ผ๋ณ„ ํ™œ์„ฑ ์‚ฌ์šฉ์ž(daily active user), ์ˆ˜์ต, ์žฌ๋ฐฉ๋ฌธ(retention) ๊ฐ™์€ ๊ฒƒ๋“ค
โ€ข
์ž๋™ํ™”:ย ์‹œ์Šคํ…œ์ด ํฌ๊ณ  ๋ณต์žกํ•ด์ง€๋ฉด, ์ƒ์‚ฐ์„ฑ์„ ์œ„ํ•ด ์ž๋™ํ™” ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•ด์•ผํ•œ๋‹ค. ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์˜ ์ ˆ์ฐจ๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฉ”์‹œ์ง€ ํ์™€ ๋กœ๊ทธ๋ฅผ ๋ฐ˜์˜ํ•œ ์„ค๊ณ„์•ˆ
โ€ข
๋ฉ”์‹œ์ง€ ํ๊ฐ€ ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋Š์Šจํ•œ ๊ฒฐํ•ฉ์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๊ฒฐํ•จ์— ๋Œ€ํ•œ ๋‚ด์„ฑ์„ ๋†’์ธ๋‹ค.
โ€ข
๋กœ๊ทธ, ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ฉ”ํŠธ๋ฆญ, ์ž๋™ํ™” ๋“ฑ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜ ์ถ”๊ฐ€

DB ๊ทœ๋ชจ ํ™•์žฅ

์ €์žฅํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ถ€ํ•˜๋„ ์ฆ๊ฐ€ํ•œ๋‹ค. ์ด ๋•Œ DB๋ฅผ ์ฆ์„คํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š”๋‹ค. DB ๊ทœ๋ชจ๋ฅผ ํ™•์žฅํ•˜๋Š” ๋ฐ์—๋Š” ์ˆ˜์ง์  ํ™•์žฅ๊ณผ ์ˆ˜ํ‰์  ํ™•์žฅ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

์ˆ˜์ง์  ํ™•์žฅ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ CPU, RAM, ๋””์Šคํฌ์™€ ๊ฐ™์€ ์ž์›์„ ์ฆ์„คํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ˆ˜์ง์  ์ ‘๊ทผ๋ฒ•์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์‹ฌ๊ฐํ•œ ์•ฝ์ ์ด ์žˆ๋‹ค.
โ€ข
์„œ๋ฒ„ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋ฌดํ•œ ์ฆ์„คํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.
โ€ข
SPOF๋กœ ์ธํ•œ ์œ„ํ—˜์„ฑ์ด ํฌ๋‹ค.
โ€ข
๊ณ ์„ฑ๋Šฅ ์„œ๋ฒ„๋กœ ๊ฐˆ์ˆ˜๋ก ๊ฐ€๊ฒฉ์ด ์˜ฌ๋ผ๊ฐ€๋ฏ€๋กœ ๋น„์šฉ์ด ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ˆ˜ํ‰์  ํ™•์žฅ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ย ์ˆ˜ํ‰์  ํ™•์žฅ์„ ์ƒค๋”ฉ(sharding)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋” ๋งŽ์€ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
์ƒค๋”ฉ์€ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผย ์ƒค๋“œ(shard)๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•œ๋‹ค. ๋ชจ๋“  ์ƒค๋“œ๋Š”ย ๊ฐ™์€ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์ƒค๋“œ์— ๋ณด๊ด€๋˜๋Š” ๋ฐ์ดํ„ฐ ์‚ฌ์ด์—๋Š”ย ์ค‘๋ณต์ด ์—†๋‹ค.
์ƒค๋“œ ๋ฐฉ์‹์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.ย ํ•ด์‹œ ์ƒค๋”ฉ(hash sharding)์€ ์ƒค๋“œ์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ฅธ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๊ด€๋˜๋Š” ์ƒค๋“œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒค๋“œ๊ฐ€ 4๊ฐœ์ธ ๊ฒฝ์šฐย user_id % 4ย ๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๊ด€๋  ์ƒค๋“œ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ƒค๋”ฉ ์ „๋žต์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ๊ณ ๋ คํ•  ๊ฒƒ์€ย ์ƒค๋”ฉ ํ‚ค๋ฅผ ์–ด๋–ป๊ฒŒ ์ •ํ•˜๋Š”์ง€์ด๋‹ค. ์ƒค๋”ฉ ํ‚ค๋Š”ย ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ์ƒค๋“œ์— ์ €์žฅ๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ปฌ๋Ÿผ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์œ„ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐย user_idย ๊ฐ€ ์ƒค๋”ฉ ํ‚ค์ด๋‹ค. ์ƒค๋”ฉํ‚ค๋ฅผ ์ •ํ• ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํ•  ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.
์ƒค๋”ฉ์„ ๋„์ž…ํ•˜๋ฉด ์‹œ์Šคํ…œ์ด ๋ณต์žกํ•ด์ง€๊ณ  ํ’€์–ด์•ผํ•  ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋„ ์ƒ๊ธด๋‹ค.
โ€ข
๋ฐ์ดํ„ฐ์˜ ์žฌ ์ƒค๋”ฉ(resharding):ย ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ ธย ํ•˜๋‚˜์˜ ์ƒค๋“œ๋กœ๋Š” ๊ฐ๋‹น์ด ์–ด๋ ต๊ฑฐ๋‚˜, ์ƒค๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ๊ท ๋“ฑํ•˜์ง€ ์•Š์•„ ์ผ๋ถ€ ์ƒค๋“œ์— ํ• ๋‹น๋œ ๊ณต๊ฐ„ ์†Œ๋ชจ๊ฐ€ ๋‹ค๋ฅธ ์ƒค๋“œ์— ๋น„ํ•ด ๋นจ๋ฆฌ ์†Œ๋ชจ๋  ๋•Œ ์žฌ ์ƒค๋”ฉ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผย ์ƒค๋“œ ์†Œ์ง„(shard exhaustion)์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋Š”๋ฐ, ์ด๋Ÿฐ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒค๋“œ ํ‚ค๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•ด์•ผํ•œ๋‹ค. ์•ˆ์ • ํ•ด์‹œ(consistent hashing)ย ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
์œ ๋ช…์ธ์‚ฌ ๋ฌธ์ œ:ย ํ•ซ์ŠคํŒŸ ํ‚ค(hotspot key) ๋ฌธ์ œ๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋Š”๋ฐ, ํŠน์ • ์ƒค๋“œ์— ์งˆ์˜๊ฐ€ ์ง‘์ค‘๋˜์–ด ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๋ฌธ์ œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ถ•๊ตฌ ์„ ์ˆ˜ DB ์— ๋ฉ”์‹œ์™€ ํ˜ธ๋‚ ๋‘๊ฐ€ ๊ฐ™์€ ์ƒค๋“œ์— ์žˆ์œผ๋ฉด ํ•ด๋‹น ์ƒค๋“œ๋Š” ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆด ๊ฒƒ์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์œ ๋ช…์ธ์‚ฌ ๊ฐ๊ฐ์— ์ƒค๋“œ ํ•˜๋‚˜์”ฉ์„ ํ• ๋‹นํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋” ์ž˜๊ฒŒ ์ƒค๋“œ๋ฅผ ์ชผ๊ฐœ์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
โ€ข
์กฐ์ธ๊ณผ ๋น„์ •๊ทœํ™”(join and de-normalization):ย ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋กœ ์ชผ๊ฐœ๋ฉด, ์—ฌ๋Ÿฌ ์ƒค๋“œ์— ๊ฑธ์นœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ธํ•˜๊ธฐ ํž˜๋“ค๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋น„์ •๊ทœํ™” ํ•˜์—ฌ ์กฐ์ธ ์—†์ด ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ์งˆ์˜๊ฐ€ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ƒค๋”ฉ์„ ์ ์šฉํ•œ ์•„ํ‚คํ…์ณ

์ •๋ฆฌ

โ€ข
์›น ๊ณ„์ธต์€ ๋ฌด์ƒํƒœ ๊ณ„์ธต
โ€ข
๋ชจ๋“  ๊ณ„์ธต ๋‹ค์ค‘ํ™” ๋„์ž…
โ€ข
๊ฐ€๋Šฅํ•œ ๋งŽ์€ ๋ฐ์ดํ„ฐ ์บ์‹œ
โ€ข
์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ง€์›
โ€ข
์ •์  ์ปจํ…์ธ ๋Š” CDN ์„ ํ†ตํ•ด ์„œ๋น„์Šค
โ€ข
๋ฐ์ดํ„ฐ ๊ณ„์ธต์€ ์ƒค๋”ฉ์„ ํ†ตํ•ด ๊ทœ๋ชจ ํ™•์žฅ
โ€ข
๊ฐ ๊ณ„์ธต์€ ๋…๋ฆฝ์  ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌ
โ€ข
์‹œ์Šคํ…œ์„ ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ž๋™ํ™” ๋„๊ตฌ ํ™œ์šฉ