๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๋Š” MSA ํ‹ฐ์ผ“ ์˜ˆ๋งค ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ํ•˜๊ธฐ ( 1์ฃผ์ฐจ )

2026. 1. 9. 01:26ยทโš™๏ธ ์ธํ”„๋ผ(Devops)
728x90

๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๋Š” MSA ํ‹ฐ์ผ“ ์˜ˆ๋งค ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ํ•˜๊ธฐ ( 0์ฃผ์ฐจ )

1์ฃผ์ฐจ๋ฅผ ์ฝ๊ธฐ ์ „์— ๋จผ์ €, 0์ฃผ์ฐจ์—์„œ ๊ธฐ๋ณธ์ ์ธ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋ณธ ๊ธ€์„ ์ฝ๊ธฐ๋ฅผ ์ถ”์ฒœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. 

 

์„œ๋ฒ„ ํ™˜๊ฒฝ ๊ตฌ์ถ•

์œ„ ์„ค๊ณ„์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ๋“ฏ์ด ์ €ํฌ๊ฐ€ ๊ธฐ์กด์— ์„ค๊ณ„ํ•œ ์‹œ์Šคํ…œ์€ ์ด 4๋Œ€์˜ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋…๋ฆฝ๋œ ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด 4๋Œ€์˜ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ํ”„๋ก ํŠธ์—”๋“œ ์›น์„œ๋ฒ„ → ๋Ÿฐํƒ€์ž„ SSR ์ฒ˜๋ฆฌ
  2. ์ผ๋ฐ˜ API ์„œ๋ฒ„(WAS)
  3. ํ‹ฐ์ผ“ ์˜ˆ๋งค ์„œ๋ฒ„(Ticker WAS)
  4. ๋Œ€๊ธฐ์—ด ์„œ๋ฒ„(Queue WAS)

 

์ด๋ ‡๊ฒŒ ์„œ๋ฒ„๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•œ ๊ฒƒ์—๋Š” ‘์žฅ์•  ์ „ํŒŒ๋ฅผ ์ตœ์†Œํ™”ํ•˜์ž๋Š” ์˜๋„’์™€ ‘์ˆ˜์‹ญ๋งŒ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ž๋Š” ๋ชฉ์ ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์ง€๋งŒ, ์‹ค์ œ ๊ตฌํ˜„ ๋‹จ๊ณ„์— ๋“ค์–ด์„œ๋ฉด์„œ ๋ช‡ ๊ฐ€์ง€ ํ˜„์‹ค์ ์ธ ์ œ์•ฝ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ฒซ์งธ, ํŒ€์› ๋ชจ๋‘๊ฐ€ MSA ํ™˜๊ฒฝ ์šด์˜ ๊ฒฝํ—˜์ด ์—†๋Š” ์ƒํ™ฉ์—์„œ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๋™์‹œ์— ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ํ•™์Šต ๋ฐ ์šด์˜ ๋ถ€๋‹ด์ด ์ƒ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‘˜์งธ, ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์บ ํ”„์—์„œ ์ œ๊ณต๋˜๋Š” ์ธํ”„๋ผ ํฌ๋ ˆ๋”ง์ด ์ด 30๋งŒ ์›์ด๋ฉฐ, ์ตœ์†Œ 3๊ฐœ์›”๊ฐ„ ๋ฐฐํฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ํ…Œ์ŠคํŠธ ๋น„์šฉ๊ณผ ์˜ˆ๋น„ ๋น„์šฉ์„ ๊ณ ๋ คํ•ด ์•ฝ 5๋งŒ ์›์„ ์ œ์™ธํ•˜๋ฉด,

์‹ค์งˆ์ ์œผ๋กœ ์›”๋ณ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ๋น„์šฉ์€ ์•ฝ 7~8๋งŒ ์› ์ˆ˜์ค€ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ NCloud ๊ธฐ์ค€ ์ตœ์†Œ ์‚ฌ์–‘(vCPU 2, Memory 4GB) ์„œ๋ฒ„ ํ•œ ๋Œ€์˜ ์›” ๋น„์šฉ๋งŒ์œผ๋กœ๋„

์ด๋ฏธ ์ด ์˜ˆ์‚ฐ์— ๊ทผ์ ‘ํ•˜๋Š” ์ˆ˜์ค€์ด์—ˆ๊ณ , ๊ธฐ์กด์— ์„ค๊ณ„ํ•œ 3~4๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๊ทธ๋Œ€๋กœ ์šด์˜ํ•˜๋Š” ๊ฒƒ์€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋‚˜๋งˆ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๋Œ€์•ˆ์€

  • ๊ณ„์ •๋‹น 1๋Œ€ ์ œ๊ณต๋˜๋Š” Micro-g1 ๋ฌด๋ฃŒ ์„œ๋ฒ„
  • vCPU 1, Memory 1~2GB ์ˆ˜์ค€์˜ compact-g1 ์„œ๋ฒ„(์›” 26,000์›)

์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด compact-g1 server ๊ธฐ์ค€์œผ๋กœ๋Š” ์ตœ๋Œ€ 3๋Œ€(78,000์›) ๊นŒ์ง€์˜ ์„œ๋ฒ„๋ฅผ ๋Œ€์—ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณ ๋ฏผ์œผ๋กœ๋„ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

 

“์ €์‚ฌ์–‘·์†Œ์ˆ˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ

‘์ˆ˜์‹ญ๋งŒ ๋ช… ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๋Š” ์‹œ์Šคํ…œ’์ด๋ผ๋Š” ๋ชฉํ‘œ๊ฐ€ ๊ณผ์—ฐ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์„๊นŒ?”

 

 

 

๋ฌผ๋ก  ๊ธฐ์ˆ ์  ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋‹จ์ผ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์–ด๋А ์ •๋„ ๋Œ์–ด์˜ฌ๋ฆด ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ทผ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์€ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋ผ๋Š” ๋ฌผ๋ฆฌ์  ์ž์›์— ๊ฐ•ํ•˜๊ฒŒ ์˜์กดํ•˜๋ฉฐ,

์ €์‚ฌ์–‘·์†Œ์ˆ˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์‹ค์ œ ์ˆ˜์‹ญ๋งŒ ๋ช…์˜ ๋™์‹œ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๋Š” ๊ฒƒ์€ ํ˜„์‹ค์ ์œผ๋กœ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์‚ฌ์‹ค ์ž์› ์ œํ•œ์ด ์—†๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ๋ฌดํ•œ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ๋Œ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์€ ์„œ๋ฒ„์˜ ์‚ฌ์–‘ ํ˜น์€ ๋Œ€์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์ด๋Ÿฌํ•œ ์‹œ๋„๊ฐ€ ๋‹จ์ˆœํžˆ ์„œ๋ฒ„๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์—์„œ ๊ทธ์น˜์ง€ ์•Š๊ณ  ์ด๋ฅผ ๊ธฐ์ˆ ์ ์œผ๋กœ ์˜๋ฏธ์žˆ๋Š” ๋„์ „์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ชฉํ‘œ๋ฅผ ์žฌ์ •์˜ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

  1. ์ฃผ์–ด์ง„ ๋น„์šฉ๊ณผ ์„œ๋ฒ„ ์ œ์•ฝ(์‚ฌ์–‘·๋Œ€์ˆ˜)์„ ๊ณ ์ •ํ•œ ์ƒํƒœ์—์„œ, ๊ทธ ์•ˆ์—์„œ ์ตœ๋Œ€ํ•œ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.
  2. ์ ˆ๋Œ€์ ์ธ ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„ 1๋Œ€๋‹น ๊ฐ๋‹น ๊ฐ€๋Šฅํ•œ ์ฒ˜๋ฆฌ๋Ÿ‰(๋‹จ์œ„ ์ฒ˜๋ฆฌ๋Ÿ‰)์— ์ง‘์ค‘ํ•œ๋‹ค.
  3. ๋งŒ์•ฝ compact-g1 server ํ•œ๋Œ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ตœ๋Œ€ 1๋งŒ๋ช…์˜ ์‚ฌ์šฉ์ž๊นŒ์ง€๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋ฉด, ์ด๋ฅผ 10๋Œ€๋กœ Auto-Scaling ํ–ˆ์„ ๋•Œ๋Š” ์ตœ๋Œ€ 10๋งŒ๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๊ณ ๋„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ก ์‹ค์ œ 10๋งŒ๋ช… ์œ ์ €์˜ ํŠธ๋ž˜ํ”ฝ์„ ํ…Œ์ŠคํŠธํ•ด๋ณด์ง€๋Š” ๋ชปํ–ˆ์–ด๋„, ๋น„์šฉ(๋ˆ)๋งŒ ์ถฉ๋ถ„ํ•˜๋‹ค๋ฉด ์ˆ˜์‹ญ๋ช…๊นŒ์ง€ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์ด๋ผ๋Š” ๊ฒƒ์„ ๊ฐ•์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

 

๋‘๊ฐ€์ง€ ํ˜„์‹ค์ ์ธ ๋Œ€์•ˆ

 

๋”ฐ๋ผ์„œ ์ €ํฌ๋Š” ํ˜„์‹ค์ ์ธ ์ž์›์˜ ํ•œ๊ณ„๋ฅผ ๊ณ ๋ คํ•ด์„œ ๋ณธ ์„ค๊ณ„ ๊ตฌ์กฐ๋ฅผ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•œ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•˜๊ณ , ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ์–‘์ด ์ข‹์€ ๋‹จ์ผ ์„œ๋ฒ„ ํ•œ๋Œ€์— ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ MSA ๊ตฌ์กฐ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ
    • ์žฅ์ 
      • ์„œ๋ฒ„ ์—ฌ๋Ÿฌ๋Œ€๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
    • ๋‹จ์ 
      • ๋„์ปค๋กœ๋Š” CPU / ๋ฉ”๋ชจ๋ฆฌ / ๋„คํŠธ์›Œํฌ ๋ฌผ๋ฆฌ ์ž์› ๊ฒฝํ•ฉ ์„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•จ
        • cgroup ์„ ํ†ตํ•ด ์ด๋ก ์ ์œผ๋กœ ์ž์›์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๊ฒฌ์ด ๋‚˜์™”์ง€๋งŒ ์ด๋Š” ๋…ผ๋ฆฌ์  ๋ถ„๋ฆฌ์ด์ง€ ๋ฌผ๋ฆฌ์  ๋ณดํ˜ธ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ, ์ปค๋„ ์Šค์ผ€์ค„๋Ÿฌ, GC ์ˆœ๊ฐ„ burst ๋“ฑ์œผ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค๊ณ  ํŒ๋‹จ.
      • ๋Œ€๊ธฐ์—ด ์„œ๋ฒ„ + ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS๋ฅผ ๊ฐ™์€ ๋ฌผ๋ฆฌ ์„œ๋ฒ„์— ์˜ฌ๋ฆฌ๋ฉด, ๋Œ€๊ธฐ์—ด ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€ ์‹œ CPU·๋ฉ”๋ชจ๋ฆฌ ์ž์› ๊ฒฝํ•ฉ(Resource Contention)์ด ๋ฐœ์ƒํ•˜์—ฌ ํ‹ฐ์ผ“ ์˜ˆ๋งค ์š”์ฒญ์ด ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ๋ชปํ•  ์œ„ํ—˜์ด ์žˆ๋‹ค.
  2. 3๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์šด์šฉ : ๊ฐ๊ฐ ํ”„๋ก ํŠธ์—”๋“œ ์›น์„œ๋ฒ„, ์ผ๋ฐ˜+ํ‹ฐ์ผ“ ์˜ˆ๋งค ์„œ๋ฒ„, ๋Œ€๊ธฐ์—ด ์„œ๋ฒ„ ๋กœ ๋‚˜๋ˆˆ๋‹ค.
    • ์žฅ์ 
      • ์ตœ์†Œํ•œ์˜ ์Šค์ผ€์ผ๋ง ๋‹จ์œ„๋Š” ์œ ์ง€ํ•˜๋ฉด์„œ ์žฅ์•  ์ „ํŒŒ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹จ์ 
      • ์„œ๋ฒ„ 3๋Œ€๋ฅผ ๋™์‹œ์— ์šด์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

3๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์šด์šฉํ•˜๊ธฐ

 

์šฐ์„  ์„œ๋ฒ„๋ฅผ 3๋Œ€๋ฐ–์— ํ™œ์šฉํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‘๊ฐœ์˜ ์„œ๋ฒ„๋Š” ํ•œ๋ฐ ๋ฌถ์–ด์„œ ๋ฐฐํฌํ•˜๋Š” ๊ฒฐ์ •์„ ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ๋‚˜ 3๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์šด์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ธฐ์กด ์„œ๋ฒ„ 4๋Œ€ ์ค‘ ์–ด๋–ค ์กฐํ•ฉ์€ ํ•ฉ์ณ๋„ ๊ดœ์ฐฎ์„์ง€์— ๋Œ€ํ•ด์„œ๋„ ๊ณ ๋ฏผ์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

 

1. Web Server + ์ผ๋ฐ˜ Backend 

 

์ฒ˜์Œ์—๋Š” ์ผ๋ฐ˜ Backend ์„œ๋ฒ„์— ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๊ฑฐ๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„, ํ”„๋ก ํŠธ์—”๋“œ์—์„œ๋Š” ํ•ญ์ƒ ์•ˆ์ •์ ์œผ๋กœ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ™”๋ฉด์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด Web Server ์™€ ์ผ๋ฐ˜ Backend ๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์„ ํƒ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ผ๋ฐ˜์ ์œผ๋กœ Web Server ์™€ ์ผ๋ฐ˜ Backend ๊ฐ€ ๊ฐ๋‹นํ•ด์•ผํ•˜๋Š” ์‚ฌ์šฉ์ž ์ˆ˜๋Š” ๊ฑฐ์˜ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด ์‹ค์ œ ํŠธ๋ž˜ํ”ฝ ํ”ผํฌ ์ƒํ™ฉ์—์„œ๋Š” Web Server ์™€ ์ผ๋ฐ˜ Backend ๊ฐ€ ๊ฐ๋‹นํ•ด์•ผ ํ•˜๋Š” ๋ถ€ํ•˜ ์ˆ˜์ค€์ด ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ผ๋ฐ˜ Backend ๊ฐ€ ํŠธ๋ž˜ํ”ฝ ๋ฌธ์ œ๋กœ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ์ •๋„์˜ ์ƒํ™ฉ์ด๋ผ๋ฉด, ๋™์ผํ•œ ์ธํ”„๋ผ ํ™˜๊ฒฝ์—์„œ๋Š” Web Server ์—ญ์‹œ ํ•จ๊ป˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ณ , ์ด ๊ฒฝ์šฐ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•˜๋”๋ผ๋„ ๋ณ‘๋ชฉ ์ง€์ ์„ ๋ถ„๋ฆฌํ•˜๋Š” ํšจ๊ณผ๋Š” ์ œํ•œ์ ์ด๋ผ๊ณ  ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ Web Server ์™€ ์ผ๋ฐ˜ Backend ๋Š” ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋กœ ํ†ตํ•ฉํ•ด๋„ ์ „์ฒด ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ ์ธก๋ฉด์—์„œ ํฐ ์†ํ•ด๋Š” ์—†๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

๋‹ค๋งŒ, ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฅผ CDN ๊ฐ™์€ ๊ณณ์— ๋ฐฐํฌํ•ด์„œ ํŠธ๋ž˜ํ”ฝ์— ์œ ๋™์ ์œผ๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ํ™•์‹คํžˆ ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋„ ์ •์  ๋นŒ๋“œ ๊ฒฐ๊ณผ(HTML&CSS&JS) ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ

์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์•„์˜ˆ ์ ‘์†ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์€ ๋ฒŒ์–ด์ง€์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. ( ์ตœ์†Œํ•œ ์—๋Ÿฌ ํŽ˜์ด์ง€๋Š” ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Œ )

 

 

๋”๋ณด๊ธฐ

์ •์  ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์™€ API ์„œ๋ฒ„์˜ ๋ถ€ํ•˜ ๊ทœ๋ชจ์™€ ํŒจํ„ด์€ ๋‹ค๋ฅธ๋ฐ, ์™œ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋‹จ์ •ํ•˜์ง€?

๋ฌผ๋ก , ์ •์  ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์™€ API ์„œ๋ฒ„์˜ ๋ถ€ํ•˜ ํŒจํ„ด๊ณผ ๊ทœ๋ชจ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ์›น์„œ๋ฒ„๋Š” ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์„œ๋น™ํ•˜๋Š” ์—ญํ• ์„ ๋งก์Šต๋‹ˆ๋‹ค.
  • ๋งŒ์ผ SSR ์€ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด, SPA + CSR ๊ตฌ์กฐ์—์„œ๋Š” ์ •์  ๋ฆฌ์†Œ์Šค ์š”์ฒญ์ด ์ดˆ๊ธฐ ๋กœ๋”ฉ์— ์ง‘์ค‘๋˜๊ณ , ์ดํ›„ ํŠธ๋ž˜ํ”ฝ์˜ ๋Œ€๋ถ€๋ถ„์€ API ์š”์ฒญ ํ˜•ํƒœ๋กœ ์ผ๋ฐ˜ Backend ์— ์ง‘์ค‘๋ฉ๋‹ˆ๋‹ค.
  • ์ •์  ๋ฆฌ์†Œ์Šค ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ํŒŒ์ผ์„ ์ฝ๊ณ  ์ „๋‹ฌ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ€๋ฒผ์šด ์ž‘์—…์ด๋ฉฐ, CDN / ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ๋กœ ๋ถ€ํ•˜๋ฅผ ๊ฐ์†Œํ•  ์ˆ˜ ์žˆ๊ธฐ์— ๊ฒฐ๊ตญ ํŠธ๋ž˜ํ”ฝ ํ”ผํฌ์˜ ์‹ค์งˆ์ ์ธ ์›์ธ์€ API ์š”์ฒญ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • API ์„œ๋ฒ„์—์„œ๋Š” ์ธ์ฆ/์ธ๊ฐ€ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ์ƒ๋Œ€์ ์œผ๋กœ ํฐ CPU ์™€ ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ์†Œ๋ชจํ•˜๊ฒŒ ๋˜๊ณ , DB I/O (DB, Redis) ๋“ฑ์œผ๋กœ ์••๋„์ ์œผ๋กœ ๋น„์šฉ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๋™์‹œ์— ๊ฐ™์€ ์ˆ˜์˜ ์œ ์ €๊ฐ€ ์ ‘์†ํ–ˆ์„ ๋•Œ, ๋ฐฑ์—”๋“œ API์„œ๋ฒ„๋งŒ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ ค์„œ ํ„ฐ์ง€๊ณ , ์ƒ๋Œ€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์š”์ฒญ์ด ๊ฐ€๋ฒผ์šด ํ”„๋ก ํŠธ ์›น์„œ๋ฒ„๋Š” ํ„ฐ์ง€์ง€ ์•Š๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ๊ฒฝ์šฐ์—๋Š” ๋ณ‘๋ชฉ ์ง€์ ์„ ๋ถ„๋ฆฌํ•ด์„œ ํ•ญ์ƒ HTML ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•˜๋Š”๊ฒŒ ์˜๋ฏธ ์žˆ๋Š” ์„ ํƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜, ์ €ํฌ๊ฐ€ ์ €์‚ฌ์–‘ ์„œ๋ฒ„ (vCPU 1, 1~2GB RAM)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ด€์ ์—์„œ๋Š” ์•„๋ฌด๋ฆฌ ์ •์  ์„œ๋ฒ„๊ฐ€ ๊ฐ€๋ณ๋‹ค๊ณ  ํ•ด๋„ ๋„คํŠธ์›Œํฌ / ์ด๋ฒคํŠธ ๋ฃจํ”„ / ๋ฉ”๋ชจ๋ฆฌ ์••๋ฐ• ์€ ๊ฐ™์ด ๋ฐ›์„ํ…Œ๋‹ˆ API ์„œ๋ฒ„๋งŒ ํ„ฐ์ง€๊ณ  ํ”„๋ก ํŠธ๋Š” ๋ฉ€์ฉกํ•œ ์ด์ƒ์ ์ธ ๊ทธ๋ฆผ์ด ์ž˜ ๊ทธ๋ ค์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด, ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋ก ํŠธ์—”๋“œ ์ •์  ์›น์„œ๋ฒ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜๋งŒ ~ ์ˆ˜์‹ญ๋งŒ rps (Requests Per Second), ์ผ๋ฐ˜ API ๋Š” 1์ฒœ ~ ์ˆ˜์ฒœ rps ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด,




์ •์  ๋ฆฌ์†Œ์Šค 50,000+ rps
SSR 200~500 rps
์ผ๋ฐ˜ API 1,000~2,000 rps
ํ‹ฐ์ผ“ํŒ… API 50~200 rps

๋Œ€๋žต์ ์œผ๋กœ ๊ณ„์‚ฐํ–ˆ์„ ๋•Œ, ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ 5์ดˆ์— 1๋ฒˆ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๋ฉด, API ์„œ๋ฒ„๋Š” ์ตœ๋Œ€ 400๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ๋ฐ˜๋ฉด, ์ •์  ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„๋Š” 50,000๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๊ฐ€ ๋ณ‘๋ชฉ ์ง€์  ๋ถ„๋ฆฌ๋กœ ์‹คํšจ์„ฑ์„ ๋ฐœํœ˜ํ•˜๋Š” ๊ฒƒ์€ 400~50,000๋ช… ์‚ฌ์ด ๊ตฌ๊ฐ„์˜ ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ์ด๊ณ , 5๋งŒ๋ช… ์ด์ƒ์˜ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆด ๊ฒฝ์šฐ์—๋Š” ๋‘ ์„œ๋ฒ„๊ฐ€ ๋ชจ๋‘ ํ„ฐ์ ธ์„œ ๋ณ‘๋ชฉ ์ง€์ ์„ ๋ถ„๋ฆฌํ•œ ๊ฒƒ์ด ํฌ๊ฒŒ ์˜๋ฏธ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฐ๋ก ์— ์ด๋ฆ…๋‹ˆ๋‹ค.


 

2. ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS + ์ผ๋ฐ˜ Backend (์ดˆ๊ธฐ)

 

๋‘๋ฒˆ์งธ๋Š” WAS ์™€ ์ผ๋ฐ˜ Backend ๋ฅผ ํ•ฉ์น˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ด ๋‘˜์˜ ๋ฐฐํฌ๋‹จ์œ„๋ฅผ ๋ถ„๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„ํ•œ ์ด์œ ๋„ ์•ž์„  ์ด์œ ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ์ผ๋ฐ˜ Backend(WAS)์™€ ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS๋ฅผ ๋ถ„๋ฆฌํ•ด ๋ฐฐํฌํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ์ผ๋ฐ˜ WAS๋Š” ์ฑ„ํŒ…, ๊ณต์—ฐ ์กฐํšŒ ๋“ฑ ๋น„๊ต์  ๊ฐ€๋ฒผ์šด ์š”์ฒญ์„ ์ง€์†์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ˜๋ฉด,

ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS๋Š” ์˜ˆ๋งค ์‹œ์ž‘ ์‹œ์ ์— ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉฐ

์ˆœ๊ฐ„์ ์ธ ํŠธ๋ž˜ํ”ฝ ํ”ผํฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ๊ณ  ์ด๊ฒƒ์ด ์ผ๋ฐ˜ ๊ธฐ๋Šฅ ์‚ฌ์šฉ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ธํ„ฐํŒŒํฌ์—์„œ ๋Œ€ํ˜• ์ฝ˜์„œํŠธ ํ‹ฐ์ผ“ํŒ…์ด ์ง„ํ–‰๋˜๋”๋ผ๋„,

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

ํ•˜์ง€๋งŒ ๋‹ค์‹œ ๊ตฌ์กฐ๋ฅผ ๊ฒ€ํ† ํ•˜๋ฉด์„œ, ์˜คํžˆ๋ ค ์ผ๋ฐ˜ WAS ๊ฐ€ ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS ๋ณด๋‹ค๋„ ๋” ๋งŽ์€ ์‹ค์‹œ๊ฐ„ ์š”์ฒญ์„ ๊ฐ๋‹นํ•˜๊ณ  ์žˆ์–ด์•ผ ํ• ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS ์—์„œ ์ˆœ๊ฐ„์ ์œผ๋กœ ์˜ˆ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ์š”์ฒญ ์ˆ˜๋Š” ํ˜„์žฌ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ˆ˜๋ฅผ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 


 10๋งŒ๋ช… ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋А์ •๋„์˜ ์„œ๋ฒ„ ์‚ฌ์–‘์ด ํ•„์š”ํ• ๊นŒ?

 

๋งŒ์•ฝ ํ˜„์žฌ ์›น์‚ฌ์ดํŠธ ์ ‘์†์ž ์ˆ˜๊ฐ€ 10๋งŒ๋ช…์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

1. ์ฒซ๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค : 10๋งŒ๋ช…์ด ๋™์‹œ์— ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด์„œ ์ดํ›„์—๋Š” 5์ดˆ์— 1๋ฒˆ ์ฑ„ํŒ… ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์ƒํ™ฉ

๋ฉ”์ธํŽ˜์ด์ง€์— 5๊ฐœ์˜ API ๋ฅผ ํ˜ธ์ถœ๋œ๋‹ค๊ณ  ์น˜๋ฉด,

์ผ๋ฐ˜ WAS ๋Š” ์ตœ์ดˆ ์ ‘์† ์‹œ์ ์—๋Š” ์ˆœ๊ฐ„์ ์œผ๋กœ ์ตœ๋Œ€ ์ดˆ๋‹น 50๋งŒ๊ฐœ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ ,

100,000 * 5 = 500,000 rps 

์ดํ›„์—๋Š” ์ดˆ๋‹น 2๋งŒ๊ฐœ์˜ ์š”์ฒญ์„ ์ง€์†์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

RPS = 100,000 / 5 = 20,000 rps

๋ฐ˜๋ฉด ํ‹ฐ์ผ“ WAS ๋Š” 10๋งŒ๊ฐœ์˜ ์š”์ฒญ์„ ์ˆœ๊ฐ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

2. ๋‘๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค : 10๋งŒ๋ช…์˜ ์ธ์›์ด ์ ์ง„์ ์œผ๋กœ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•œ ์ƒํ™ฉ

๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ๋Œ€๊ทœ๋ชจ ์ธ์›์ด ํ•œ๋ฒˆ์— ๋™์‹œ ์ ‘์†ํ•˜๋Š” ๊ฑด ์‹ค์ œ ์ƒํ™ฉ๊ณผ ์•ฝ๊ฐ„ ์ฐจ์ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ ์ง„์ ์œผ๋กœ ์ ‘์†ํ•˜๋Š” ์ƒํ™ฉ ๋˜ํ•œ ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ์—๋Š” ์˜ˆ๋งค๊ฐ€ ์˜คํ”ˆํ•˜๊ธฐ 5๋ถ„ ์ „์— 10๋งŒ๋ช…์˜ ์ ‘์†์ด ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์ผ๋ฐ˜ WAS๋Š” ์ดˆ๋‹น ํ‰๊ท ์ ์œผ๋กœ 1666 ๊ฐœ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์ค„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 RPS = 100,000 * 5 / 5 * 60  = 1666 rps

์ฆ‰, ์ผ๋ฐ˜ WAS ๋Š” ์ˆ˜์‹ญ๋งŒ๋ช…์„ ๊ฐ๋‹นํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ์†Œ 1666rps ๋ถ€ํ„ฐ ์ˆœ๊ฐ„์ ์œผ๋กœ๋Š” 500,000 rps๊นŒ์ง€ ์ง€์†์ ์œผ๋กœ ๋†’์€ ์ˆ˜์ค€์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์š”๊ตฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

vCPU 1, Memory 1~2GB ์ˆ˜์ค€์˜ compact-g1 ์—์„œ๋Š” ์š”์ฒญ์„ ์ตœ๋Œ€ ๋ช‡๋ช…๊นŒ์ง€ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ์„๊นŒ?

 

  1. ์ผ๋ฐ˜ API ์„œ๋ฒ„

์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ฐ˜ API ์„œ๋ฒ„๊ฐ€ ์ดˆ๋‹น 2,000 rps๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ ,

์‚ฌ์šฉ์ž 1๋ช…์ด ์ตœ์ดˆ ์ ‘์†ํ–ˆ์„ ๋•Œ๋Š” 5ํšŒ์˜ API ์š”์ฒญ, ์ดํ›„์—๋Š” ์ง€์†์ ์œผ๋กœ 0.2 ํšŒ API ์š”์ฒญ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด,

  • ์ฒซ๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์ˆœ๊ฐ„์ ์œผ๋กœ ์ตœ๋Œ€ ์•ฝ 400๋ช…์˜ ์‚ฌ์šฉ์ž๊นŒ์ง€ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ( worst case )
  • 400 * 5 = 2,000 rps
  • ๋‘๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ๊ฐ™์€ ์ŠคํŽ™์˜ ์„œ๋ฒ„์— ๋Œ€ํ•ด์„œ๋„ 5๋ถ„๊ฐ„ ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„์‚ฐํ•ด์„œ ๋“ค์–ด์˜ค๋ฏ€๋กœ ์ €์ŠคํŽ™์œผ๋กœ๋„ ๋Œ€๊ทœ๋ชจ ์ธ์›์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ⇒ ํŠธ๋ž˜ํ”ฝ์ด ๋‚˜๋ˆ ์„œ ๋“ค์–ด์˜จ๋‹ค๋ฉด 2,000 rps ์„œ๋ฒ„๋กœ ์ดˆ๋‹น 400๋ช…์”ฉ ๊พธ์ค€ํžˆ ๋ฐ›์•„์„œ 5๋ถ„๋™์•ˆ ์ตœ๋Œ€ 120,000๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS

๋ฐ˜๋ฉด ํ‹ฐ์ผ“ ์˜ˆ๋งค WAS๋Š” ์ˆœ๊ฐ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์„ฑ์„ ์ง€๋‹™๋‹ˆ๋‹ค.

์˜ˆ๋งค ์š”์ฒญ์€ ์‚ฌ์šฉ์ž ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•ด ๋ฐœ์ƒํ•  ์ˆ˜๋Š” ์—†์œผ๋ฉฐ,

๋ฝ์ด๋‚˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋กœ ์ธํ•ด ์š”์ฒญ 1๊ฑด๋‹น ๋น„์šฉ์€ ์ƒ๋Œ€์ ์œผ๋กœ ์กฐ๊ธˆ ๋” ๋†’์Šต๋‹ˆ๋‹ค.

์ˆœ๊ฐ„์ ์œผ๋กœ ๋งŽ์€ ์š”์ฒญ์„ ์•ˆ์ •์„ฑ ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๊ณผ ํฐ ๊ทœ๋ชจ์˜ ์š”์ฒญ์„ ์ง€์†์ ์œผ๋กœ ์•ˆ์ •์„ฑ ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋ถ„๋ช… ๋‹ค๋ฅธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ, ์ด๊ฒƒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„๊ฐ€ ํ˜„์žฌ ์ ‘์†ํ•œ ์œ ์ €์— ๋Œ€ํ•œ ์ผ๋ฐ˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ API ์š”์ฒญ์€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,

๊ทธ ์ด์ƒ์˜ ์˜ˆ๋งค ์š”์ฒญ์ด ์ˆœ๊ฐ„์ ์œผ๋กœ ๋ชฐ๋ ค์„œ ์ด๊ฑธ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์„ ๋•Œ์—๋งŒ ๋ณ‘๋ชฉ์ง€์ ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒฐ๋ก ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ API ์„œ๋ฒ„๊ฐ€ ์ดˆ๋‹น 2,000 rps๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ์ž 1๋ช…๋‹น ์ดˆ๋‹น ํ‰๊ท  5ํšŒ์˜ API ์š”์ฒญ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๋™์‹œ์— ์•ฝ 400๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ํ‹ฐ์ผ“ ์˜ˆ๋งค API๋Š” ์š”์ฒญ 1๊ฑด๋‹น ์ฒ˜๋ฆฌ ๋น„์šฉ์ด ๋†’์•„ ์ดˆ๋‹น 50~200 rps ์ˆ˜์ค€์˜ ์ฒ˜๋ฆฌ๋Ÿ‰๋งŒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ 400๋ช… ์ด์ƒ์ด ์ ‘์†ํ•œ ์ƒํƒœ์—์„œ๋Š” ์ผ๋ฐ˜ API ๋งŒ์œผ๋กœ ์„œ๋ฒ„ ์ž์›์ด ๋‹ค ์†Œ์ง„๋˜๊ณ ,

200๋ช… ์ด์ƒ์ผ ๊ฒฝ์šฐ์—๋„ ์ˆœ๊ฐ„์ ์œผ๋กœ ์˜ˆ๋งค ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋ฉด ( ์ผ๋ฐ˜ 200 + ํ‹ฐ์ผ“์˜ˆ๋งค 200 ) ์ตœ๋Œ€ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ๋Ÿ‰์„ ๋„˜์–ด์„œ์„œ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ๋ชปํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

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

์ฆ‰, ์˜ˆ์ƒ๋˜๋Š” ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ 200๋ช… ์ด์ƒ์ธ ๊ฒฝ์šฐ์—๋Š”, ํ‹ฐ์ผ“ ์˜ˆ๋งค ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌ ๋ฐฐํฌํ•˜์—ฌ

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

 

 

๊ฒฐ๋ก 

 

 

  1. ์ €ํฌ๋Š” Websever ๋Š” CDN ๊ฐ™์€๋ฐ์— ์˜ฌ๋ ค์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์Šค์ผ€์ผ๋ง ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์„œ ์ตœ์†Œํ•œ์˜ ํŽ˜์ด์ง€ ์ œ๊ณต์€ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ ,
  2. ๋‚˜๋จธ์ง€ Backend + ์ผ๋ฐ˜ API ๋ฅผ ๊ทธ๋ƒฅ ์„œ๋ฒ„ ํ•œ๋Œ€์— ๋ฐฐํฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์„œ๋ฒ„๋ฅผ ๋‚˜๋ˆ ๋„, ๊ฐ ์„œ๋ฒ„๊ฐ€ ๋ณ‘๋ชฉ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ์ ์ด ๊ฑฐ์˜ ๋น„์Šทํ•ด์„œ ์ „์ฒด ์‹œ์Šคํ…œ์ด ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์‚ฌ์šฉ์ž ์ˆ˜๋Š” ๊ฑฐ์˜ ๋Š˜์ง€ ์•Š๊ณ 
    • ์„œ๋ฒ„๋ฅผ ๋‚˜๋ˆ ์„œ400๋ช…์ด ์›น์‚ฌ์ดํŠธ์— ์ ‘์† ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ํ•˜๋”๋ผ๋„ ์‹ค์ œ์ ์œผ๋กœ๋Š” 200๋ช…๋งŒ ์˜ˆ๋งค๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ถ”๊ฐ€ 200๋ช…์˜ ๋‹จ์ˆœ ์›น์‚ฌ์ดํŠธ ์ ‘์† ๋งŒ์„ ์œ„ํ•ด์„œ ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ? ๊ณ ๋ฏผ์„ ํ–ˆ์„ ๋•Œ, ๊ทธ๋ ‡๊ฒŒ ํฐ ์ด์ต์€ ์•„๋‹ˆ๋ผ๊ณ  ํŒ๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
      ์„œ๋ฒ„ ํ†ตํ•ฉ ~200๋ช… ~200๋ช…
      ์„œ๋ฒ„ ๋ถ„๋ฆฌ ~400๋ช… ~200๋ช…
    • ์•„๋งˆ ์ด ๋ถ€๋ถ„์€ ์‹ค์ œ ์„œ๋น„์Šค ๋˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด ์‹ค์ œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ‰๊ท  ์ ‘์†์ž ์ˆ˜๋ฅผ ๊ฐ์•ˆํ•˜์—ฌ ๋” ์ƒํ™ฉ์— ์ ํ•ฉํ•œ ๊ฒฐ์ •์„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

'โš™๏ธ ์ธํ”„๋ผ(Devops)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๋Š” MSA ํ‹ฐ์ผ“ ์˜ˆ๋งค ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„  (0) 2026.01.09
'โš™๏ธ ์ธํ”„๋ผ(Devops)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๋Š” MSA ํ‹ฐ์ผ“ ์˜ˆ๋งค ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„
nut.hazel
nut.hazel
  • nut.hazel
    Hazel' s develog ๐Ÿƒ
    nut.hazel
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (81)
      • โœ๏ธ ๊ฐœ๋ฐœํšŒ๊ณ ๋ก (7)
      • ๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (3)
      • ๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE) (19)
        • HTML (0)
        • CSS (0)
        • Javascript (0)
        • React (0)
        • Next.js (0)
        • webpack & babel (0)
      • ๐Ÿ’ป ๋ฐฑ์—”๋“œ(BE) (2)
        • Nest.js (0)
        • Express.js (0)
        • MySQL (1)
      • โš™๏ธ ์ธํ”„๋ผ(Devops) (2)
      • ๐Ÿค– AI (1)
      • ๐ŸŒ WEB (8)
      • ๐Ÿ’ป CS (16)
        • ์ž๋ฃŒ๊ตฌ์กฐ (0)
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (1)
        • ์šด์˜์ฒด์ œ (0)
        • ์ธ๊ณต์ง€๋Šฅ (8)
        • ์›น ๋ณด์•ˆ (1)
        • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… (6)
      • ๐Ÿ–‹๏ธ DevLog (1)
      • ๐Ÿฆพ ๋กœ๋ณดํ‹ฑ์Šค (4)
      • ๐Ÿ“— ๋„ค์ด๋ฒ„๋ถ€์ŠคํŠธ์บ ํ”„ ์›น ๋ชจ๋ฐ”์ผ (0)
      • ๐ŸŽฎ Unity(C#) (10)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (4)
        • C (4)
        • C++ (0)
        • Java (0)
        • Python (0)
      • MSA (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฐฑ์ค€
    next.js12
    ์ŠคํŒธ๋ฉ”์ผ๋ถ„๋ฅ˜๊ธฐ
    c์–ธ์–ด
    c++
    client-streaming
    ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต #๋„์ „ํ•™๊ธฐ์ œ
    nav2
    ros workspace
    ์กฐํ•ฉ
    auto-scaling
    ๊ธฐ์ดˆ์•Œ๊ณ ๋ฆฌ์ฆ˜
    Devops #๋Œ€๊ทœ๋ชจํŠธ๋ž˜ํ”ฝ์ฒ˜๋ฆฌ
    deploy-aws
    ros bridge
    ๋ฆฌ์•กํŠธ
    turtlebot
    C#
    isaac automator
    ์ˆœ์—ด
    ํŒŒ์ผํŠธ๋ฆฌ
    ์ฝ”๋”ํŒจ๋“œ
    soft margin svm
    gaussian rbf svm
    AWS
    ์ŠคํŒธ๋ถ„๋ฅ˜๊ธฐ
    C
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    hard margin svm
    advaned detail
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
nut.hazel
๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•˜๋Š” MSA ํ‹ฐ์ผ“ ์˜ˆ๋งค ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ํ•˜๊ธฐ ( 1์ฃผ์ฐจ )
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”