๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
BackEnd๐ŸŒฑ/Etc

์•„ํ‚คํ…์ฒ˜ ๊ด€์ ์—์„œ ๋Š˜์–ด๋‚˜๋Š” ํŠธ๋ž˜ํ”ฝ ๋Œ€์‘ํ•˜๊ธฐ

by ์•ˆ์ฃผํ˜• 2024. 3. 24.

๊ฐœ์š”

์•„ํ‚คํ…์ฒ˜์˜ ๊ด€์ ์—์„œ ๋Š˜์–ด๋‚˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์–ด๋–ป๊ฒŒ ๋Œ€์‘ํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•ด ํ๋ฆ„์— ๋”ฐ๋ผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋“  ํ™˜์˜์ด๋ฉฐ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํ•œ๋Œ€์˜ ์ธ์Šคํ„ด์Šค

๋จผ์ € ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ํ•œ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  EC2์˜ IP๊ฐ€ ์œ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Elastic IP๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ ๋†“์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ , ์ด์— ๋”ฐ๋ผ ์„œ๋ฒ„๋กœ์˜ ํŠธ๋ž˜ํ”ฝ๋„ ๋Š˜์–ด๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด EC2 ์ธ์Šคํ„ด์Šค์˜ CPU ์‚ฌ์šฉ๋ฅ ์ด ์ฆ๊ฐ€ํ•˜์—ฌ ๋‹จ์ผ EC2 ์ธ์Šคํ„ด์Šค๋กœ๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•œ๊ณ„๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ EC2์˜ ์ธ์Šคํ„ด์Šค ์‚ฌ์–‘์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” Scale-Up์ž…๋‹ˆ๋‹ค.

 

Scale-Up

์œ„์™€ ๊ฐ™์ด T2 ์‚ฌ์–‘์˜ ์ธ์Šคํ„ด์Šค๋ฅผ T3๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ T2์—์„œ T3๋กœ ์Šค์ผ€์ผ ์—…ํ•˜๋Š” ๋™์•ˆ ์„œ๋น„์Šค๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ ์ค‘๋‹จ๋˜์–ด ํ•ด๋‹น ์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ๋‹ค์šดํƒ€์ž„์˜ ๋ฌธ์ œ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

Scale-Out

์Šค์ผ€์ผ ์—…์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์ฆ๊ฐ€์‹œ์ผฐ์Œ์—๋„ ์„œ๋น„์Šค ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ๊ณ„์†ํ•ด์„œ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ํŠธ๋ž˜ํ”ฝ์„ ๋” ์ด์ƒ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋Š” ์ˆ˜์ค€์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์  ๋ฆฌ์†Œ์Šค์˜ ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜€ ๋” ์ด์ƒ์˜ ์Šค์ผ€์ผ ์—…์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์ง€๊ณ , ๋น„์šฉ์ ์ธ ๋ถ€๋‹ด๋„ ๊ณ„์†ํ•ด์„œ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” Scale-Out ๋ฐฉ์‹์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

 

DNS

์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ๊ฐ์˜ IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ(DNS)์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” IP ์ฃผ์†Œ ๋Œ€์‹  dkswnkk.com๊ณผ ๊ฐ™์€ ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฌ์šด ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํ†ตํ•ด ์„œ๋น„์Šค์— ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. AWS์—์„œ๋Š” Route 53์ด๋ผ๋Š” ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋„๋ฉ”์ธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋‹จ์ˆœ ๋ผ์šฐํŒ…(Simple routing policy): ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ผ์šฐํŒ… ๋ฐฉ์‹์œผ๋กœ, ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ์— ํ•˜๋‚˜์˜ ๋ฆฌ์†Œ์Šค(์„œ๋ฒ„ ๋˜๋Š” IP ์ฃผ์†Œ)๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…(Weighted routing policy): ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค์— ๋ถ„์‚ฐ์‹œํ‚ค๋˜, ๊ฐ ๋ฆฌ์†Œ์Šค์— ๊ฐ€์ค‘์น˜๋ฅผ ํ• ๋‹นํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์˜ ๋ถ„๋ฐฐ ๋น„์œจ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. A/B ํ…Œ์ŠคํŒ… ๋˜๋Š” ์ ์ง์ „์ธ ๋ฐฐํฌ์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์ง€์—ญ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…(Geolocation routing policy): ์‚ฌ์šฉ์ž์˜ ์ง€๋ฆฌ์  ์œ„์น˜์— ๋”ฐ๋ผ ํŠธ๋ž˜ํ”ฝ์„ ๋‹ค๋ฅด๊ฒŒ ๋ผ์šฐํŒ… ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๋น ๋ฅธ ์‘๋‹ต ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ์ง€์—ญ์  ์ œํ•œ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ—ฌ์Šค ์ฒดํฌ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…(Health Checks): ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ , ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์ •์ƒ์ ์ธ ์„œ๋ฒ„๋กœ ์ž๋™์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ ˆ์ดํ„ด์‹œ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…(Latency-based Routing): ์‚ฌ์šฉ์ž์™€ ๊ฐ€์žฅ ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๊ฐ€์ง„ ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ… ํ•˜์—ฌ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋” ์ž์„ธํ•˜๊ณ  ๋งŽ์€ ์ •์ฑ…์€ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

DNS ๋ฌธ์ œ์ 

๊ทธ๋Ÿฌ๋‚˜ ํŠน์ • ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ EC2 ์ธ์Šคํ„ด์Šค ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ๊ฑฐ๋‚˜ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. DNS์˜ TTL(Time-to-Live) ์„ค์ • ๋•Œ๋ฌธ์—, DNS ์ •๋ณด๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์บ์‹ฑ๋˜์–ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด TTL ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋Š” ์‚ฌ์šฉ์ž๋“ค์ด DNS๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๋”๋ผ๋„ ์ด๋ฏธ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋œ ์ธ์Šคํ„ด์Šค๋กœ์˜ ์š”์ฒญ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋Š” TTL์ด ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” DNS Query๋กœ ์ƒˆ๋กœ์šด IP๋ฅผ ์–ป์–ด์˜ค์ง€ ๋ชปํ•ด ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ›์ง€ ๋ชปํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Elastic Load Balancer(ELB) ์‚ฌ์šฉ

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Elastic Load Balancer(ELB)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค๋“ค์˜ IP ์ฃผ์†Œ ๋Œ€์‹  ELB์˜ IP ์ฃผ์†Œ๋ฅผ DNS ์„ค์ •์— ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ์ธ์Šคํ„ด์Šค์˜ ์ถ”๊ฐ€๋‚˜ ์ œ๊ฑฐ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ELB๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค๋“ค์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธ์Šคํ„ด์Šค๋“ค์—๊ฒŒ๋งŒ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„๋ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ELB๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ๋ถ„์‚ฐ์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ผ์šฐํŒ… ์ •์ฑ…์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์ธ ์ฃผ์š” ๋ผ์šฐํŒ… ์ •์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ผ์šด๋“œ ๋กœ๋นˆ(Round Robin): ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ผ์šฐํŒ… ๋ฐฉ์‹์œผ๋กœ, ์š”์ฒญ์„ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ ์ธ์Šคํ„ด์Šค์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€์ค‘์น˜ ํ• ๋‹น(Weighted): ๊ฐ ์ธ์Šคํ„ด์Šค์— ๊ฐ€์ค‘์น˜๋ฅผ ํ• ๋‹นํ•˜์—ฌ, ํŠน์ • ์ธ์Šคํ„ด์Šค์— ๋” ๋งŽ๊ฑฐ๋‚˜ ์ ์€ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค์˜ ์„ฑ๋Šฅ์ด๋‚˜ ์šฉ๋Ÿ‰์ด ๋‹ค๋ฅผ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์ตœ์†Œ ์—ฐ๊ฒฐ(Least Connections): ๊ฐ€์žฅ ์ ์€ ์—ฐ๊ฒฐ์„ ๊ฐ€์ง„ ์ธ์Šคํ„ด์Šค์— ์šฐ์„ ์ ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋” ์ž์„ธํ•˜๊ณ  ๋งŽ์€ ์ •์ฑ…์€ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

Auto-Scaling ์‚ฌ์šฉ

๋งŒ์•ฝ ์ธ์Šคํ„ด์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์„ ๋งŽ์ด ์†Œ์š”ํ•œ๋‹ค๋ฉด, Auto Scaling์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Auto Scaling ๊ทธ๋ฃน์„ ์„ค์ •ํ•˜๋ฉด, ์‹œ์Šคํ…œ์ด ์ž๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ๋ณ€ํ™”์— ๋งž๊ฒŒ ํ•„์š”ํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

Auto Scaling์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •์ฑ…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋™์  ์Šค์ผ€์ผ๋ง(Dynamic Scaling Policy): ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™”ํ•˜๋Š” ์ˆ˜์š”์— ๋”ฐ๋ผ ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” CloudWatch ์•Œ๋žŒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ •์ฑ…์„ ์„ค์ •ํ•˜์—ฌ CPU ์‚ฌ์šฉ๋Ÿ‰, ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๋“ฑ์˜ ๋ฉ”ํŠธ๋ฆญ์— ๋”ฐ๋ผ ์ธ์Šคํ„ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ์•ฝ๋œ ์Šค์ผ€์ผ๋ง(Scheduled Scaling Policy): ํŠน์ • ์‹œ๊ฐ„์— ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์ƒ๋˜๋Š” ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์— ๋Œ€๋น„ํ•˜์—ฌ ๋ฏธ๋ฆฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋ชจ์…˜ ๊ธฐ๊ฐ„์ด๋‚˜ ํŠน์ • ์ด๋ฒคํŠธ ๋™์•ˆ ๋ฏธ๋ฆฌ ์Šค์ผ€์ผ๋ง์„ ๊ฑธ์–ด๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์š” ๊ธฐ๋ฐ˜ ์Šค์ผ€์ผ๋ง(Predictive Scaling Policy): AWS์˜ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํ™œ์šฉํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ํŒจํ„ด์„ ์˜ˆ์ธกํ•˜๊ณ , ์ด์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์Šค์ผ€์ผ๋งํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ž์„ธํ•˜๊ณ  ๋” ๋งŽ์€ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐ€์šฉ ์˜์—ญ(Availability Zone, AZ) ๋ถ„๋ฆฌ

์ง€์ง„๊ณผ ๊ฐ™์€ ์ž์—ฐ์žฌํ•ด๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๋™์‹œ์— ์˜ํ–ฅ์„ ๋ฐ›์•„ ๋‹ค์šด๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ„ํ—˜์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์šฉ ์˜์—ญ(Availability Zone, AZ)์— ๊ฑธ์ณ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ถ„์‚ฐ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๊ฐ€์šฉ ์˜์—ญ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ ๊ฐ€์šฉ ์˜์—ญ์— ์œ„์น˜ํ•œ ์ธ์Šคํ„ด์Šค๋“ค์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์•„ ์„œ๋น„์Šค๋ฅผ ๊ณ„์†ํ•ด์„œ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

DB๊ฐ€ ๋ถ™์–ด์žˆ์„ ๊ฒฝ์šฐ

๋งŒ์•ฝ ๊ธฐ์กด์˜ ํ”Œ๋กœ์šฐ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ์Šต์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

DB ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ ์ƒ์„ฑ

ํŠธ๋ž˜ํ”ฝ์ด ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ Scale-Up์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์—์„œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ(Read-Replica)์˜ ์ƒ์„ฑ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์“ฐ๊ธฐ์™€ ์ฝ๊ธฐ ์ž‘์—…์„ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ณต์ œ๋ณธ์€ ์ฝ๊ธฐ ์ž‘์—… ์ „์šฉ์œผ๋กœ ์„ค์ •ํ•จ์œผ๋กœ์จ DB ์š”์ฒญ์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

DB Proxy ๋‘๊ธฐ

๋‹จ์ˆœํžˆ ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ์„ ๋„์ž…ํ•˜๋ฉด ๊ฐ ์ธ์Šคํ„ด์Šค(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)๊ฐ€ RDS์˜ ๋งˆ์Šคํ„ฐ์™€ ๋ณต์ œ๋ณธ์˜ ์ฃผ์†Œ๋ฅผ ์ „๋ถ€ ์•Œ์•„์•ผ ํ•˜๋Š” ๋ณต์žก์„ฑ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด RDS ์•ž๋‹จ์— ํ”„๋ก์‹œ๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์š”์ฒญ์„ RDS Proxy๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•˜๊ณ  ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)๋Š” ํ”„๋ก์‹œ์˜ IP ์ฃผ์†Œ๋งŒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋˜๋ฏ€๋กœ ๊ตฌ์„ฑ๊ณผ ๊ด€๋ฆฌ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋งˆ๋ฌด๋ฆฌ

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

๊ฐ™์ด๋ณด๋ฉด ์ข‹์€ ๊ธ€: AWS VPC๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์•Œ์•„์•ผ ํ•  ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹

๋Œ“๊ธ€