์ค‘๊ฐ„

[1] ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ์„ Public Cloud ์ œ๊ณต์—…์ž์˜ ์ธก๋ฉด์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

AWS๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ, ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์„ ์œ„ํ•œ ํšŒ์‚ฌ ๋‚ด์—์„œ์˜ Private ํด๋ผ์šฐ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž๋“ค์ด ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์‹œ๊ฐ„์˜ ๊ฒฝ์šฐ ๋…ธ๋Š” ๋ฆฌ์†Œ์Šค๋“ค์ด ๋งŽ์•˜๋‹ค. ํ•ด๋‹น ์‹œ๊ฐ„๋Œ€์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฆฌ์†Œ์Šค๋“ค์„ ์ˆ˜์ต์„ ์–ป์œผ๋ฉฐ ์ž„๋Œ€ํ•จ์œผ๋กœ์จ Public ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์ด ํƒ„์ƒํ–ˆ๋‹ค.

[2] ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ์„œ๋น„์Šค ๋ชจ๋ธ 3๊ฐ€์ง€๋ฅผ ๋‚˜์—ดํ•˜๊ณ , ๊ฐ๊ฐ ๋ฌด์—‡์„ ์ œ๊ณตํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

SaaS(Software as a Service) : ๊ตฌ๊ธ€ ๋…์Šค, ์œ ํŠœ๋ธŒ ๋“ฑ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•œ๋‹ค. PaaS(Platform as a Service) : ๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ํ™œ์šฉํ•ด ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํˆด๋“ค์„ ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•œ๋‹ค. IaaS(Infrastructure as a Service) : ๊ธฐ์ดˆ์ ์ธ ์ปดํ“จํŒ… ์ž์›์„ ์ œ๊ณตํ•ด ์Šค์Šค๋กœ ์ œ์–ดํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.

[3] ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์—์„œ Public Cloud, Private Cloud ๋ฐ Hybrid Cloud๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Public Cloud๋Š” ๊ตฌ๊ธ€, ์•„๋งˆ์กด๊ณผ ๊ฐ™์ด ์ œ 3์ž์˜ ํด๋ผ์šฐ๋“œ๋ฅผ ๋Œ€๊ฐ€๋ฅผ ์ง€๋ถˆํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. Private Cloud๋Š” ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋œ ์กฐ์ง์ด ์†Œ์œ ํ•˜๊ณ , ์กฐ์ง ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๋งํ•œ๋‹ค. Hybrid Cloud๋Š” Private Cloud๋ฅผ ๊ฐ€์ง€๋ฉด์„œ ํ•„์š”์— ์˜ํ•ด Public Cloud๋ฅผ ์„ ํƒ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๋งํ•œ๋‹ค.

[4] Pet ๋ชจ๋ธ๊ณผ Cattle ๋ชจ๋ธ์€ ๋ฌด์—‡์ด๋ฉฐ, ์‹ค์ œ Container์˜ ์šด์˜์‹œ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.ย 

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

[5] IaC๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ, ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์šด์˜ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

IaC๋Š” Infrastructure as Code๋กœ, ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด์„œ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋“ฑ ์ž‘์—…์„ ์‚ฌ๋žŒ์ด ์ง์ ‘ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์ง€๋งŒ, IaC๋Š” ์„œ๋ฒ„, ๋„คํŠธ์›Œํฌ ๋“ฑ infrastructure๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋‹ค๋ฃจ๋ฉด์„œ ์„ค์ • ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

[6] Mutable infrastructure์™€ Immutable infrastructure๋Š” ๋ฌด์—‡์ด๋ฉฐ, ์™œ Immutable infrastructure๋ฅผ ์ง€ํ–ฅํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ Mutable์€ ๋Š์ž„์—†์ด ๊ฐ ์„œ๋ฒ„์— ๋Œ€ํ•ด ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์กฐ์ •๋˜๋Š” ํ™˜๊ฒฝ์„ ๋งํ•˜๊ณ , Immutable์€ ๋ณ€ํ™”ํ•˜์ง€ ์•Š๊ณ  ๊ฐ ์„œ๋ฒ„์˜ ํ™˜๊ฒฝ์„ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. Mutable์˜ ๊ฒฝ์šฐ ๊ฐ ์„œ๋ฒ„๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ์„œ๋ฒ„๋งˆ๋‹ค ์„œ๋น„์Šค์—์„œ ์ฐจ์ด๊ฐ€ ์ƒ๊ธฐ๊ณ , ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ํ•˜์ง€๋งŒ, Immutable์˜ ๊ฒฝ์šฐ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ํ•ด์ฃผ๊ณ , ๋‹ค์‹œ ๋กค๋ฐฑํ•˜๋Š” ๋“ฑ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๋‹ค๋Š” ์ธก๋ฉด์—์„œ Immutable์„ ์ง€ํ–ฅํ•œ๋‹ค.

[7] Hypervisor๋ฅผ ์ˆ˜์—…์—์„œ ๋‘ ๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ ์ •์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค (type.1 & type.2). ๊ฐ๊ฐ์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Type1์€ ํ•˜๋“œ์›จ์–ด ์œ„์— ๋ฐ”๋กœ Hypervisor๊ฐ€ ์˜ฌ๋ผ๊ฐ„ ๋ชจ์–‘์ด๊ณ , Type2๋Š” Host OS ์œ„์— Hypervisor๊ฐ€ ์˜ฌ๋ผ๊ฐ„ ๋ฐฉ์‹์ด๋‹ค.

[8] Guest Linux OS over Host Linux OS ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

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

[9] ๋ฐ์ดํ„ฐ์„ผํ„ฐ์—์„œ์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ณผ ์šด์˜์—์„œ, Container ๊ธฐ์ˆ ์ด ๊ฐ€์ƒ ๋จธ์‹  ๊ธฐ์ˆ ์˜ ๋Œ€์•ˆ์ด ๋  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Guest Linux OS over Host Linux OS์˜ OS ์ค‘๋ณต ๋ฌธ์ œ๋กœ ์ธํ•ด ๋” ๋งŽ์€ ๋น„์šฉ์„ ์†Œ๋ชจํ•˜๋‚˜, ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์€ OS๋ฅผ ํ˜ธ์ŠคํŠธ OS์™€ ๊ณต์œ ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํŒจํ‚ค์ง•ํ•˜์—ฌ ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋งˆ๋‹ค ๋…๋ฆฝ๋œ ํ”„๋กœ์„ธ์Šค๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๋น ๋ฅธ ์†๋„, ์ ์€ ์šฉ๋Ÿ‰์˜ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ๋„ ๊ฐ์†Œํ•˜๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉฐ ๊ฐ€์ƒ ๋จธ์‹  ๊ธฐ์ˆ ์˜ ๋Œ€์•ˆ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

[10] Docker๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” CLI/Daemon ๋ฐ REST API์— ๋Œ€ํ•ด์„œ, ๊ฐ๊ฐ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

CLI(Command-Line Interface)๋Š” ๊ธ€์ž๋กœ ์ž…๋ ฅํ•ด ์ปดํ“จํ„ฐ์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋„์ปค์˜ ํด๋ผ์ด์–ธํŠธ ์—ญํ• ์„ ํ•œ๋‹ค. Daemon์€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜จ ๋ช…๋ น์„ ๋“ฃ๊ณ  ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. REST API๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋ƒˆ์„ ๋•Œ ๊ทธ์— ๋”ฐ๋ฅธ ์‘๋‹ต์„ ๋Œ๋ ค์ฃผ๋Š” ํ˜•์‹์„ ์˜๋ฏธํ•œ๋‹ค.

[11] IaC๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ณผ ์œ ์‚ฌํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ๊ฒƒ์œผ๋กœ ์„ค๋ช…ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Docker container๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์„ python/C++ ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •๊ณผ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ด ๋ด…๋‹ˆ๋‹ค.

python/C++์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ํ•„์š”ํ•œ ์ปค๋ฉ˜๋“œ๋ฅผ ํฌํ•จํ•œ Dockerfile์„ ๋งŒ๋“ ๋‹ค. Dockerfile์„ ์ด์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ณ , python/C++์˜ ์ปดํŒŒ์ผ, ๋นŒ๋“œ๋กœ ์‹คํ–‰ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ดํ›„, ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด, ์ปจํ…Œ์ด๋„ˆ์— ์‹คํ–‰ ๋ช…๋ น์„ ์ฃผ์–ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.

[12] Docker compose๋Š” ๋ณต์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ(์„œ๋น„์Šค)๋ฅผ ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ฒ˜๋Ÿผ ๊ตฌ๋™ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ธก๋ฉด์—์„œ ์ด๋ฅผ ์œ„ํ•˜์—ฌ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ DNS(Domain Name Service) ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด ์ด๋ฆ„์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

[13] PAT๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜๊ณ , Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์™œ ํ•„์š”ํ•œ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

PAT(Port Address Translation)๋Š” private ํฌํŠธ์™€ public ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ์™€ ๋–จ์–ด์ ธ ๋…๋ฆฝ์ ์œผ๋กœ ํŒจํ‚ค์ง•๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํฌํŠธ๋ฅผ ์„ค์ •ํ•ด๋„ ์™ธ๋ถ€์—์„œ๋Š” ๋‚ด๋ถ€์˜ ํฌํŠธ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๋•Œ๋ฌธ์—, ๋‚ด๋ถ€์˜ ํฌํŠธ๋„ ์™ธ๋ถ€์˜ ํ†ต์‹ ๊ณผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก private ํฌํŠธ์™€ public ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐํ•ด ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.

[14] curl ํ”„๋กœ๊ทธ๋žจ์ด ๋ฌด์—‡์ด๋ฉฐ, ์ˆ˜์—…์—์„œ ์–ด๋–ค ์šฉ๋„๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

curl(Client URL) ํ”„๋กœ๊ทธ๋žจ์€ ์—ฌ๋Ÿฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ปค๋ฉ˜๋“œ ๋ผ์ธ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ์ด๋‹ค. ์„œ๋ฒ„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋„์› ์„ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋ฐ›์•„์˜ค๋Š” http ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

[15] Docker์—์„œ Volume์€ ์–ด๋–ค ์šฉ๋„๋กœ ํ™œ์šฉํ•˜๋ฉฐ, ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Volume์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ด ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•ด ์‚ฌ์šฉํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด์ง€์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ณ , ํ˜ธ์ŠคํŠธ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ํ•œ ๋ถ€๋ถ„์„ ๋„์ปค๊ฐ€ ์ ์œ ํ•˜์—ฌ ์ €์žฅ๋œ๋‹ค.

[16] Docker์—์„œ Bind Mounts๋Š” ์–ด๋–ค ์šฉ๋„๋กœ ํ™œ์šฉํ•˜๋ฉฐ, Volume๊ณผ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Bind Mounts๋Š” ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ์Šคํ† ๋ฆฌ์ง€ ์ค‘ ํŠน์ • ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด ์—ฐ๊ฒฐํ•œ๋‹ค. ๋ฏผ๊ฐํ•œ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ธฐ ์ „์— ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ™œ์šฉํ•œ๋‹ค. Volumn์˜ ๊ฒฝ์šฐ ๋„์ปค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ, Bind Mounts๋Š” ๋„์ปค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์–ธ์ œ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

[17] Docker Machine์€ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์–ด๋–ค ์šฉ๋„๋กœ ํ™œ์šฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹ ์— ๋„์ปค ์—”์ง„์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋„์ปค ๋จธ์‹ ์€ ์˜ค๋ž˜๋œ ๋ฆฌ๋ˆ…์Šค ๋ฐ์Šคํฌํƒ‘์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋งฅ์ด๋‚˜ ์œˆ๋„์šฐ์—์„œ ๋„์ปค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ. ํ˜น์€ ์›๊ฒฉ ์‹œ์Šคํ…œ์— ๋„์ปค ํ˜ธ์ŠคํŠธ๋ฅผ ๊ณต๊ธ‰ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์— ํ™œ์šฉํ•œ๋‹ค.

[18] Jenkins๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CI/CD๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ์ž‘์„ฑ์„ ๋งˆ์น˜๊ณ  ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆฐ ํ›„ ์ปดํŒŒ์ผ, ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์˜ ์ž‘์—…์„ ์‚ฌ๋žŒ์˜ ๊ฐœ์ž… ์—†์ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณผ์ •์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์‹œ๊ฐ„์„ ์„ค์ •ํ•ด์„œ ๋ฐฐํฌํ•˜๋Š” ๋“ฑ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ง

[1] Docker Swarm์—์„œ manager์™€ worker(slave)๋Š” ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

manager๋Š” Worker์™€ ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค๊ณ  Worker๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค.
Worker๋Š” Swarm์˜ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

[2] Docker Swarm์—์„œ join๊ณผ leave๋Š” ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

join์€ Worker๊ฐ€ Manager์—๊ฒŒ ๋“ฑ๋ก๋˜์–ด Manager์˜ ๊ด€๋ฆฌ๋ฅผ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. leave๋Š” Manager์—์„œ ๋“ฑ๋ก๋œ Worker๊ฐ€ ๋ถ„๋ฆฌ๋˜๋„๋ก ํ•œ๋‹ค.

[3] Monolithic architecture ๋Œ€๋น„ Microservice architecture๋ž€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Monolithic architecture๋Š” ํ•˜๋‚˜์˜ ์ปค๋‹ค๋ž€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋งํ•˜๊ณ , Microservice architecture๋Š” ํ•˜๋‚˜์˜ ์ปค๋‹ค๋ž€ ์„œ๋น„์Šค๋ฅผ ์ชผ๊ฐœ์„œ ๋…๋ฆฝ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ์„œ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ํ˜•ํƒœ์˜ ๊ธฐ์ˆ 

[4] Monolithic architecture ๋Œ€๋น„ Microservice architecture๊ฐ€ Scalability, Availability (Fault tolerance), Agility, Polyglot persistence, Maintainability๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์ด ์–ด๋–ค ๋‚ด์šฉ์ธ์ง€ ๊ฐ๊ฐ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.ย 

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

[5] Kubernetes์˜ Pod๊ณผ Docker์˜ Container์— ๋Œ€ํ•ด์„œ, ๊ธฐ์ˆ ์ ์ด ์œ ์‚ฌ์ (๊ณตํ†ต์  ๋“ฑ)๊ณผ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

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

[6] Kubernetes์˜ Ingress๋Š” ๋ฌด์—‡์ด๊ณ , ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Ingress๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์ ‘๊ทผ์„ ๋‹ค๋ฃจ๋Š” ๊ฐ์ฒด์ด๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์™€ ์™ธ๋ถ€์˜ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฐ›์€ ์š”์ฒญ์„ ์–ด๋–ค ํŒŸ์œผ๋กœ ๋ณด๋‚ผ ์ง€ ์กฐ์ •ํ•˜๋Š” load balancing, ํ•œ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ์ด๋ฆ„์„ ๋ฐ›์•„ ํ•ด๋‹นํ•˜๋Š” ๋ผ๋ฒจ๋กœ ์ „๋‹ฌํ•˜๋Š” name-based virtual hosting์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

[7] Kubernetes์˜ NodePort๋Š” ๋ฌด์—‡์ด๊ณ , ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

NodePort๋Š” ํŠน์ • ๋…ธ๋“œ์— ํฌํŠธ๋ฅผ ๋šซ์–ด ๋…ธ๋“œ๊ฐ€ ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. NodePort๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ์„œ๋น„์Šค๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด ํŒŸ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

[8] Kubernetes์—์„œ ์„œ๋น„์Šค ์šด์˜์‹œ IP ์–ด๋“œ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์ด์œ ์™€, IP ์–ด๋“œ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํŒŸ๋“ค์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๊ณ ์ณ์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒํ•˜๊ณ  ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” cattle ๋ฐฉ์‹์ด๋‹ค. ๋•Œ๋ฌธ์— ์ƒˆ๋กœ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด IP ์ฃผ์†Œ๋ฅผ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— IP ์ฃผ์†Œ๋ฅผ ๋งค๋ฒˆ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์—†์–ด IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. IP ์ฃผ์†Œ ๋Œ€์‹  Label์„ ์„ค์ •ํ•ด์„œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  label์„ ์‚ฌ์šฉํ•ด ๋™์ž‘์„ ์ง€์ •ํ•œ๋‹ค.

[9] Replica Controller์˜ ์—ญํ• ๊ณผ ์ด์˜ ๊ตฌ๋™์„ ์œ„ํ•œ yaml ํ™”์ธ ์•ˆ์˜ selector, template, replicas๊ฐ€ ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

selector : ์šด์˜์ž๊ฐ€ ์š”๊ตฌํ•œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ช…๋ นํ•  ๋Œ€์ƒ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„์„ ์„ค์ •ํ•œ๋‹ค.
replicas : ์ƒ์„ฑํ•˜๊ณ ์ž ํฌ๋งํ•˜๋Š” ํŒŸ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.
template : ๋ณต์ œํ•  ์ƒˆ๋กœ์šด ํŒŸ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•œ ํ…œํ”Œ๋ฆฟ์„ ์„ค์ •ํ•œ๋‹ค.

[10] Deployment๋Š” ์–ด๋– ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ˆ˜์—…์—์„œ์˜ ํ™œ์šฉ ์‚ฌ๋ก€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ฒ„์ „ 1์˜ Replication Controller๊ฐ€ ๋ฒ„์ „ 1 ํŒŸ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ๋•Œ ์ƒˆ๋กœ์šด ๋ฒ„์ „ 2์˜ Replication Controller๋ฅผ ์ƒ์„ฑํ•ด ๋ฒ„์ „ 2์˜ ํŒŸ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ 2๊ฐœ ์ด์ƒ ๋ณต์ˆ˜์˜ ReplicaSet Controller๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Deployment๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

[11] Kubernetes์˜ Client API๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ์™œ ํ•„์š”ํ•˜๊ณ , ์–ด๋–ค ์šฉ๋„๋กœ ํ™œ์šฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Client API๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ, ์‚ญ์ œ ๋“ฑ์˜ ๋™์ž‘์„ ํŠน์ • ๋ช…๋ น์„ ํ†ตํ•ด์„œ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋™์ž‘์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜์ง€๋งŒ API๋ฅผ ํ†ตํ•ด์„œ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ํ•„์š”ํ•˜๋‹ค.
๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  kubectl์„ ํ†ตํ•ด CLI์—์„œ๋„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API๋ฅผ ํ˜ธ์ถœํ•ด ์›ํ•˜๋Š” ๋ช…๋ น์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋‹ค.

[12] Kubernetes์˜ย object๋ผ๋Š”ย ๊ฒƒ์ดย ๋ฌด์—‡์ด๊ณ ,ย ์–ด๋–คย ์šฉ๋„๋กœย ํ™œ์šฉํ•˜๋Š”์ง€ย ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.ย ๊ทธ๋ฆฌ๊ณ ย ์™œย ํ”„๋กœ๊ทธ๋ž˜๋ฐย ์–ธ์–ด์—์„œ์˜ย object์™€ย ์œ ์‚ฌํ•˜๋‹ค๊ณ ย ํ•˜๋Š”์ง€ย ์ถ”๊ฐ€ย ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Object๋Š” ๋ฆฌ์†Œ์Šค ํƒ€์ž…์˜ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งํ•œ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•จ์œผ๋กœ์จ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹œ์Šคํ…œ์— ํด๋Ÿฌ์Šคํ„ฐ์˜ desired state๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ผ์ • ํ‹€์˜ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ทธ ์ธ์Šคํ„ด์Šค object๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋„ ํด๋ž˜์Šค์™€ ์œ ์‚ฌํ•œ ๋ฆฌ์†Œ์Šค ํƒ€์ž…์„ ์ •์˜ํ•˜๊ณ  ๊ทธ ์ธ์Šคํ„ด์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์‚ฌํ•˜๋‹ค.

[13] Kubernetes์—์„œ imagePullPolicy์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.ย 

IfNotPresent : ์ด๋ฏธ์ง€๊ฐ€ Local, ํ•ด๋‹น ๋…ธ๋“œ์— ์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์ด๋ฏธ์ง€๋ฅผ pullํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.
Always : ์ด๋ฏธ์ง€๋ฅผ ํŒŸ์ด ์‹œ์ž‘๋˜๋Š” ๋•Œ์— ํ•ญ์ƒ pullํ•œ๋‹ค. (์ˆ˜์‹œ๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๊ณ  ์ตœ์‹  ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ)
Never : Remote์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Local์— ์žˆ๋Š” ๊ฒƒ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. (๋ณด์•ˆ ์ƒ์˜ ๊ฒฝ์šฐ)

[14] Kubernetes์˜ย Cluster IP, Node Port, Ingress๋Š”ย ๋ฌด์—‡์ด๋ฉฐ,ย ์–ด๋–คย ์šฉ๋„๋กœย ํ™œ์šฉํ•˜๋Š”์ง€ย ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Cluster IP๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์—์„œ ์œ ํšจํ•œ IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์˜ ๋‹ค๋ฅธ ํŒŸ๊ณผ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด๋ถ€ IP ์ฃผ์†Œ์ด๋‹ค.
NodePort๋Š” ๋…ธ๋“œ์— ํฌํŠธ๋ฅผ ๋šซ๋Š” ๊ฐ์ฒด์ด๋‹ค. ํฌํŠธ๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์™€์˜ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.
Ingress๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์ ‘๊ทผ์„ ๋‹ค๋ฃจ๋Š” ๊ฐ์ฒด์ด๋‹ค. ๊ฐ ์„œ๋น„์Šค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋‚˜๋ˆ„๋Š” load balancing, ํ•œ ๋Œ€์˜ ์ปดํ“จํ„ฐ์— ์—ฌ๋Ÿฌ ์ด๋ฆ„์„ ๊ฐ–๋Š” name-based virtual hosting์„ ์ˆ˜ํ–‰ํ•ด ๋ผ๋ฒจ์— ๋”ฐ๋ผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์šฉ๋„๋กœ ํ™œ์šฉํ•œ๋‹ค.

[15] Kubernetes์˜ Storage์ธ emptyDir, hostPath, PVC(Persistent Volume Claim)์— ๋Œ€ํ•ด์„œ, ๊ฐ๊ฐ ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜๊ฐ€ ์–ด๋””์ด๊ณ , ํ™œ์šฉ ์šฉ๋„๋Š” ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

emptyDir๋Š” ํŒŸ์— ์œ„์น˜ํ•œ๋‹ค. ์ž„์‹œ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ๋“ค์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. hostPath๋Š” ๋…ธ๋“œ์— ์œ„์น˜ํ•œ๋‹ค. ๋…ธ๋“œ์— ์œ„์น˜ํ•ด ๋…ธ๋“œ์˜ ํŠน์ • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ํŒŒ์ผ์‹œ์Šคํ…œ์— ๋งˆ์šดํŠธํ•œ๋‹ค. PVC๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— ์œ„์น˜ํ•œ๋‹ค. PV ์‚ฌ์šฉ ์š”์ฒญ์„ ํ†ตํ•ด PV๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉํ•œ๋‹ค.