Welcome! ๐Ÿ™‹โ€โ™‚๏ธ View more

Engineering ๐Ÿ’ป/MLOps

[Docker] ์ปจํ…Œ์ด๋„ˆ์™€ ๋„์ปค ๊ทธ๋ฆฌ๊ณ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค

DeepFlame 2022. 1. 18. 23:24

Cloud๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด ์ปจํ…Œ์ด๋„ˆ/๋„์ปค/์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ผ๋Š” ๊ฐœ๋…์ด ์ž์ฃผ ๋“ฑ์žฅํ•œ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ๊ณผ๊ฑฐ ๊ฐ€์ƒ๋จธ์‹ ์˜ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ์ปจํ…Œ์ด๋„ˆ์™€ ๋„์ปค๋ผ๋Š” ๊ฐœ๋…์ด ์ƒ๊ฒจ๋‚ฌ๊ณ , ์ปดํ“จํŒ… ํŒŒ์›Œ๊ฐ€ ๋Š˜์–ด๋‚˜๋‹ค๋ณด๋‹ˆ ๋‹ค์ˆ˜์˜ ๋„์ปค์™€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์šด์˜ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ƒ๊ฒจ๋‚ฌ๋‹ค. ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์ด ํ•ญ๋ชฉ๋“ค์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค.

 

 

๋„์ปค์™€ ์ปจํ…Œ์ด๋„ˆ


์†Œํ”„ํŠธ์›จ์–ด๋Š” OS์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์„ฑ๊ฒฉ์ด ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ(OS, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์ด ๋‹ค๋ฆ„)์—์„œ ๊ฐ™์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์–ด๋ ค์›€์„ ๋А๋‚„ ์ˆ˜ ์žˆ๋‹ค.

Docker๋Š” Container๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์ด๋‹ค. Docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Container๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ™์€ Container๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜๋‚˜์˜ OS์—์„œ ๋‹ค์ˆ˜์˜ Container๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋™์ ์ด๋ฉฐ, ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์œผ๋กœ ์šด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Java์•ฑ์ด ์ธ๊ธฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด Java ์ปจํ…Œ์ด๋„ˆ์˜ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ณ , ํŠธ๋ž˜ํ”ฝ์ด ์ค„๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์›์ƒํƒœ๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.

 

๊ธฐ์กด ๊ฐ€์ƒ๋จธ์‹ ์˜ ํ•œ๊ณ„

์ปจํ…Œ์ด๋„ˆ ์„œ๋ฒ„์™€ ๊ธฐ์กด ๊ฐ€์ƒ๋จธ์‹ 

  • ๊ธฐ์กด ๊ฐ€์ƒ๋จธ์‹ ์€ HyperVisor์—์„œ ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ƒ๋จธ์‹ ๋ณ„๋กœ ๋ฐฐ๋ถ„ํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ VM์€ ๋…๋ฆฝ์ ์ธ OS๋ฅผ ๊ฐ€์ง„๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ ์„œ๋ฒ„๋Š” ํ•˜๋‚˜์˜ Host OS์—์„œ CPU, RAM, Disk, Network์™€ ๊ฐ™์€ OS ์ž์›์„ ํ•„์š”ํ•œ ๋งŒํผ ๊ฒฉ๋ฆฌํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ์— ํ• ๋‹นํ•œ๋‹ค.

 

 

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค


 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” Container ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด์ด๋‹ค.

๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹คํ–‰์„ ๊ด€๋ฆฌ ๋ฐ ์กฐ์œจํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ƒ์„ฑ๊ณผ ์‚ญ์ œ, ์‹œ์ž‘ ๋ฐ ์ค‘๋‹จ ์‹œ์  ์ œ์–ด, ์Šค์ผ€์ค„๋ง, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ, ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋“ฑ์˜ ๊ณผ์ •์ด ์žˆ๋‹ค.

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋ชฉ์ 

  1. ๋‹ค์ˆ˜์˜ Docker ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜์˜ Pool๋กœ ๊ตฌ์„ฑ
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋‹ค์ค‘ ์„œ๋ฒ„์˜ ๋„์ปค ๋ฐ๋ชฌ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ์ž๋Š” ์„œ๋ฒ„์— ๋„์ปค๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ช‡ ๊ฐœ ์‹คํ–‰ ์ค‘์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
    • ์‚ฌ์šฉ์ž๋Š” ํ•„์š”ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์–ด๋–ค ๋ชฉ์ ์˜ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์ง€ ๋ช…๋ น๋งŒ ํ•˜๋ฉด๋œ๋‹ค.

  2. ๋‹ค์ค‘ ์„œ๋ฒ„์— ๋ถ„์‚ฐ๋˜์–ด ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ
    • ๋งŒ์•ฝ ๋‘ ๊ฐœ์˜ ์„œ๋ฒ„์— 3๊ฐœ์˜ Container๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์•Œ์•„์„œ ๋‚˜๋ˆ„์–ด ํ• ๋‹นํ•ด์ค€๋‹ค.
    • ์‚ฌ์šฉ์ž๋Š” Idle์ƒํƒœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง์ ‘ ์ฐพ์„ ํ•„์š”๊ฐ€ ์—†๋‹ค.
    • ๋˜ํ•œ ์ปจํ…Œ์ด๋„ˆ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ์„œ๋ฒ„ ๊ฐ„์— ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  3. ์ปจํ…Œ์ด๋„ˆ ์žฌ์ƒ์„ฑ
    • ๋‹จ์ผ ์„œ๋ฒ„์—์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์šด์˜ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ด ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง€์†์ ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

  4. Load Balance
    • ๋งŒ์•ฝ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ƒ์„ฑ๋œ ์›น์‚ฌ์ดํŠธ์— 3๊ฐœ์˜ Container๊ฐ€ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด ๊ทธ ์›น์‚ฌ์ดํŠธ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค Container1 → Container2 → Container3 ์ˆœ์„œ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก round-robinํ˜•์‹์˜ Load Balancing์„ ์ œ๊ณตํ•œ๋‹ค.

 

 

 

์ฐธ๊ณ 
https://kyumdoctor.co.kr/13
https://velog.io/@geunwoobaek/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EB%B0%8F-%EB%8F%84%EC%BB%A4-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC
https://wooono.tistory.com/109