๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด๋ณด๊ธฐ114

[Docker] 3. ๋„์ปค ์ปดํฌ์ฆˆ(Docker compose) ๋„์ปค ์ปดํฌ์ฆˆ(Docker compose)๋„์ปค ์ปดํฌ์ฆˆ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ˆœ์„œ์™€ ํ๋ฆ„์„ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹คํ–‰์— ๊ด€ํ•œ ๋ช…์„ธ๋ฅผ ์ ์–ด ๋†“์œผ๋‹ˆ ์–ด๋–ค ์„œ๋น„์Šค๋“ค์ด ์—ฐ๊ด€๋˜์–ด ์žˆ๊ณ  ์ˆœ์„œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ƒ์„ธ ์„ค๋ช…์ด ๋‚˜์˜ค๊ฒ ์ง€๋งŒ, ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋„์ปค ์ปดํฌ์ฆˆ์˜ ์ตœ๋Œ€ ์žฅ์ ์€ "Docker run(์‹คํ–‰)์˜ ์ฝ”๋“œํ™”"๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์‚ดํŽด๋ณด์‹œ์ฃ . Docker Compose๋ž€?Docker Compose๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋™์‹œ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ docker-compose.yml ํŒŒ์ผ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์ •์˜(์„œ๋น„์Šค, ๋„คํŠธ์›Œํฌ, ๋ณผ๋ฅจ ๋“ฑ)๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ๋ช…๋ น ํ•œ ์ค„๋กœ ๊ด€๋ จ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘, ์ค‘์ง€, ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Docke.. 2025. 1. 6.
[Docker] 2. ๋„์ปค ๋„คํŠธ์›Œํฌ์™€ ๋„์ปค ์Šคํ† ๋ฆฌ์ง€ ๋„์ปค ๋„คํŠธ์›Œํฌ(Docker Network)๋„์ปค์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ host๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™˜๊ฒฝ์ด์ง€๋งŒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‚ด๊ฐ€ ์›น์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ๊ฐ์ž ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ์›น์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ip์ฃผ์†Œ์™€ port๋ฅผ ์ •์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์€ ์šด์˜ํ™˜๊ฒฝ์—์„œ ๋งค์šฐ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žฌ์‹œ์ž‘ํ•ด์„œ ip์ฃผ์†Œ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ์—๋Š” ์›น์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ --link ์˜ต์…˜์„ ๋ถ€์—ฌํ•ด์„œ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ด ๋ฐฉ์‹ ๋˜ํ•œ ์šด์˜ํ™˜๊ฒฝ์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ๋ง์”€๋“œ๋ฆฌ๋ฉด, ์ปค์Šคํ…€ ๋„คํŠธ์›Œํฌ(Custom Network)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆฌ๊ณ  .. 2025. 1. 2.
[Docker] 1. ๋„์ปค, ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ DockerDocker๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์ข…์†์„ฑ์„ ํ•จ๊ป˜ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์‹คํ–‰ ํ™˜๊ฒฝ ๊ฐ„ ์ผ๊ด€์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋„ ์ผ๊ด€๋˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์šด์˜ ํ™˜๊ฒฝ ์‚ฌ์ด์˜ ์ฐจ์ด๋กœ ์ธํ•œ ๋ฌธ์ œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Docker Container๋Š” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋ฉฐ ํ™•์žฅ์„ฑ์ด ์ข‹์•„์„œ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.Docker๋Š” ์ฃผ๋กœ ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๋น„๊ต๋ฅผ ๋งŽ์ด ํ•˜๋Š”๋ฐ, ๊ธฐ์กด ๊ฐ€์ƒ๋จธ์‹ ์€ ๋ฌด๊ฒ๊ณ  ๋Š๋ฆฌ์ง€๋งŒ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋ฉฐ ํ˜ธ์ŠคํŠธ์˜ ์šด์˜์ฒด์ œ์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์™€ ๊ด€๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด.. 2024. 12. 24.
[Metric] ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค + ๊ทธ๋ผํŒŒ๋‚˜ ๋“ค์–ด๊ฐ€๋ฉฐ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ํ•ญ์ƒ ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค(Prometheus)์™€ ๊ทธ๋ผํŒŒ๋‚˜(Grafana)์ž…๋‹ˆ๋‹ค.๋‘ ๊ธฐ์ˆ ์€ ์ฒ ์ฒ˜ํžˆ ์„œ๋กœ ๋‹ค๋ฅธ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ๊ถํ•ฉ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋‘ ๊ฐ€์ง€ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ณ , ๊ฐ„๋‹จํžˆ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋งคํŠธ๋ฆญ(Prometheus Metrics)์ด๋ž€?ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค(Prometheus)๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์•Œ๋ฆผ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ์‹œ์Šคํ…œ์œผ๋กœ, ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ(time-series data)๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "๋งคํŠธ๋ฆญ(metric)"์€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜๋Š” ํŠน์ • ์ธก์ •๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋งคํŠธ๋ฆญ์˜ ์ฃผ์š” ํŠน์ง•์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ: ๋งคํŠธ๋ฆญ์€ ํŠน์ • ์‹œ๊ฐ„.. 2024. 12. 23.
QoS, Traffic Shaping, Traffic Policing QoS(Quality of Service) QoS(Quality of Service)๋ž€ ์„œ๋น„์Šค ํ’ˆ์งˆ(QoS)์€ ํ•œ์ •๋œ ๋„คํŠธ์›Œํฌ ์šฉ๋Ÿ‰์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•˜๊ณ  ์ฃผ์š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‚˜ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ†ต์‹  ๋„คํŠธ์›Œํฌ์ƒ์— ํ๋ฅด๋Š” ๋ฐ์ดํ„ฐ์˜ ์ค‘์š”๋„๋ฅผ ๋ถ„๋ฅ˜ํ•˜์—ฌ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. QoS ๊ทœ์น™์— ๋”ฐ๋ฅธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ตœ์ ํ™” ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. - ํŠธ๋ž˜ํ”ฝ ์šฐ์„  ์ˆœ์œ„ ์ง€์ •์„œ๋กœ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์กฐ์ง์˜ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์ค€์˜ ์ค‘์š”๋„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›๊ฒฉ ํšŒ์˜ ํŠธ๋ž˜ํ”ฝ์€ ์†Œ์…œ ๋ฏธ๋””์–ด ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์›น ์—ฐ๊ฒฐ๋ณด๋‹ค ๋” ์ค‘์š”ํ•˜๋ฉฐ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ ์ €ํ•˜์— ๋” ๋ฏผ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ ์„œ๋ช…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์˜ ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•จ์œผ๋กœ์จ ์กฐ์ง์˜ ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ๋Š” ํ•„์š”ํ•œ.. 2024. 12. 18.
[๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค] RabbitMQ vs Apache KafKa ๋“ค์–ด๊ฐ€๋ฉฐ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ๊ณผ ๋ฐ›๋Š” ์ชฝ ์‚ฌ์ด์—์„œ ์ ์ ˆํ•œ ๋ถ„๋ฐฐ๋ฅผ ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Publisher์™€ Subscriber๋Š” ์„œ๋น„์Šค์˜ ๋ณธ์งˆ์— ๋”ฐ๋ผ ์ž์‹ ์˜ ์—ญํ• ์— ์ข€๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์ฃ . ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค์˜ ์ข…๋ฅ˜๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค์ธ RabbitMQ์™€ Apache KafKa ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. RabbitMQ์™€ Kafka๋Š” ๋‘˜ ๋‹ค ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์ด์ง€๋งŒ, ์„ค๊ณ„ ์ฒ ํ•™๊ณผ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” RabbitMQ์™€ Kafka์˜ ์ฃผ์š” ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค.1. ์„ค๊ณ„ ์ฒ ํ•™RabbitMQ:AMQP(Advanced Message Queuing Protocol)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋œ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค.๋ฉ”์‹œ์ง€ ์ „๋‹ฌ, ๋ผ์šฐํŒ….. 2024. 12. 16.