๐ŸŒฉ Cloud-Native Architecture ๋ถ„์„

ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ฒ˜(Cloud-Native Architecture)

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

1. ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

  • ํด๋ผ์šฐ๋“œ(AWS, Azure ๋“ฑ..)์˜ ๋ณดํŽธํ™”์— ๋”ฐ๋ผ, ํ•ด๋‹น ํ™˜๊ฒฝ(ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ)์— ๋งž๋Š” ์ ์ ˆํ•œ ํ”„๋กœ๊ทธ๋žจ(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์„ค๊ณ„ ๊ธฐ๋ฒ•์ด ํ•„์š”ํ•ด์กŒ๊ณ , ๊ทธ๋ ‡๊ฒŒ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ฒ˜ CNA์ด๋‹ค.

๋จผ์ €, ์šฐ๋ฆฌ๋Š” ์™œ ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜๊ณ  ์žˆ์„๊นŒ?

์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์•„๋Š” โ€˜๋„ทํ”Œ๋ฆญ์Šค(NETFLIX)โ€™์˜ ์‚ฌ๋ก€๋ฅผ ๋ณด๋„๋กํ•˜์ž.

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

์ดํ›„ ๋„ทํ”Œ๋ฆญ์Šค๋Š” ์‚ฌ๋‚ด ๋ชจ๋“  ์ปดํ“จํŒ… ์ธํ”„๋ผ๋ฅผ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์œผ๋กœ ์˜ฎ๊ฒจ, ์•ˆ์ •์ ์ธ ์ŠคํŠธ๋ฆฌ๋ฐ๊ณผ ์„œ๋น„์Šค ํ™•์žฅ์„ ์ด๋ค„๋ƒˆ๋‹ค.

๊ผญ ๋งค๋…„ ํฌ๊ฒŒ ์„ฑ์žฅํ•˜๋Š” ๊ธฐ์—…๋“ค ๋งŒ์ด ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ์— ์œ ๋ฆฌํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ํ•œ๊ฐ€์ง€ ์‚ฌ๋ก€๋ฅผ ๋” ๊ฐ€์ •ํ•ด๋ณด์ž.

ํ‰๊ท ์ ์œผ๋กœ ๋งค ์‹œ๊ฐ„ 100๋งŒ๋ช…์˜ ์œ ์ €๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ด๋•Œ, ์šฐ๋ฆฌ์˜ ์„œ๋ฒ„๋Š” 100๋งŒ๋ช…์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ŠคํŽ™์ด ๋˜์–ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์—ฐ๋ง ์—ฐ์ดˆ ์—ฐํœด์— ์„œ๋น„์Šค ์‚ฌ์šฉ์ž๋“ค์ด ํฌ๊ฒŒ ๋ชฐ๋ ค ์‹œ๊ฐ„ ๋‹น 1000๋งŒ๋ช… ์ˆ˜์ค€์ด ์œ ์ง€๋œ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด ์–ด๋– ํ•œ ์„ ํƒ์„ ํ•ด์•ผํ• ๊นŒ?

์ผ๋ฐ˜์ ์ธ ํšŒ์‚ฌ๋Š” ํŠน์ •ํ•œ ์ƒํ™ฉ์— ๋ชฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๋“ค์„ ์œ„ํ•ด 10๋ฐฐ ์ด์ƒ์˜ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•  ์—ฌ๋ ฅ์ด ์—†๋‹ค. ์—ฌ๊ธฐ์„œ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ์ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค.


2. ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ์˜ ์žฅ์ 


1. ๋น„์šฉ ์ ˆ๊ฐ

  • ํด๋ผ์šฐ๋“œ๋Š” ์˜จ๋””๋งจ๋“œ ์…€ํ”„ ์„œ๋น„์Šค (On-demand Self-Service) ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ํ•„์š”ํ•œ ์ž์›์„ ์š”์ฒญํ•˜๊ณ  ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋•Œ๋ฌธ์—, ์ดˆ๊ธฐ ์ธํ”„๋ผ ๊ตฌ์ถ• ๋น„์šฉ ์—†์ด ์‚ฌ์šฉ๋Ÿ‰๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด ์šด์˜ ์ธ๊ฑด๋น„๋ฅผ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž๋ณธ ๊ธฐ๋ฐ˜ ์ง€์ถœ์—์„œ โ†’ ์šด์˜ ๊ธฐ๋ฐ˜ ์ง€์ถœ๋กœ ์ง€์ถœ ๊ตฌ์กฐ๋ฅผ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์ฃผ์˜์ 

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

2. ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ

  • ๋ฐฉ๊ธˆ ๊ธฐ์ˆ ํ–ˆ๋˜ ํŠน์ง•์œผ๋กœ, ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์‹œ ์†์‰ฝ๊ฒŒ ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋˜ํ•œ, ๊ด‘๋ฒ”์œ„ํ•œ ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ์„ฑ์œผ๋กœ ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ์žฌํ•ด ๋ณต๊ตฌ ๋ฐ ๋ฐฑ์—…์— ์šฉ์˜

  • DR(Disaster Recovery) ์‹œ์Šคํ…œ์„ ์†์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต.
  • ์Šค๋ƒ…์ƒท, ๋ณต์ œ๋ณธ ๋“ฑ ๊ณ ๊ฐ€์šฉ์„ฑ ๋ฐ ๋ณต๊ตฌ ์„ค๊ณ„๊ฐ€ ์ˆ˜์›”ํ•˜๋‹ค.

4. ๋ณด์•ˆ

  • ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ๋“ค์€ ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๋ณด์•ˆ์„ ํ•ญ์ƒ ์œ ์ง€ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜๋“œ์›จ์–ด ๋ณด์•ˆ์— ํ•„์š”ํ•œ ๋…ธ๋ ฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.


3. ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ 


๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ๋“ค์€ ์œ„์—์„œ ๊ธฐ์ˆ ํ•œ ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ์˜ ์žฅ์ ์„ 100%๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋„์™€์ค€๋‹ค.

1. MSA(๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜)

  • ์ƒ์„ธํ•œ ์„ค๋ช… โ–ถโ–ถ ๐Ÿน MSA(Microservices Architecture)
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ APIํ˜ธ์ถœ์„ ํ†ตํ•ด ์„ธ๋ถ„ํ™” ๋˜๊ณ , ๋А์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ถ„ํ•ด๋˜์–ด ๊ด€๋ฆฌ๋œ๋‹ค.

2. ์ปจํ…Œ์ดํ„ฐ

  • ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ  โ–ถโ–ถ ๐Ÿ‹ docker ๋ž€
  • CI/CD๋™์•ˆ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ชจ๋“  ์ข…์†์„ฑ์€ ์ปจํ…Œ์ด๋„ˆ๋กœ์จ ๊ด€๋ฆฌ๋˜์–ด ํ™˜๊ฒฝ ์ „๋ฐ˜์— ๊ฑฐ๋ฆฐ ์†”๋ฃจ์…˜์˜ ์ด์‹์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

3. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

  • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ธฐ์ˆ  โ–ถโ–ถ ๐ŸšขKubernetes(k8s)๋ž€
  • ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ณ  ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.
  • ๋งŽ์€ ์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง์ ‘๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์ž๋™ํ™” ํ•จ์œผ๋กœ ํšจ์œจ์„ ์ฆ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

4. CI/CD

  • ๊ฐœ๋… ์„ค๋ช… โ–ถโ–ถ CICD
  • ์†Œํ”„ํŠธ์›จ์–ด ๋ฆด๋ฆฌ์ฆˆ์˜ ํšจ์œจ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค.
  • ๋นˆ๋ฒˆํ•˜๊ณ  ๋ฐ˜๋ณต์ ์ธ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์‹ ์†ํ•œ ํ”ผ๋“œ๋ฐฑ๊ณผ ํ•จ๊ป˜ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์ž๋™ํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.


๊ฒฐ๋ก 

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