์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

๋ฐ”๋กœ์“ฐ๋Š” CI/CD on EKS

์‹ค๋ฆฌ์ฝ˜ ๋ฐธ๋ฆฌ์˜ ์ตœ์ „์„ ์—์„œ ์ง์ ‘ ๊ฒฝํ—˜ํ•œ ์‹ค๋ฌด ์‚ฌ๋ก€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ DevOps ๊ฐ•์˜๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ์ด๋ก ์—๋งŒ ๋จธ๋ฌด๋ฅด์ง€ ์•Š๊ณ , ์‹ค์ œ ์—”์ง€๋‹ˆ์–ด๋ง ํ˜„์žฅ์—์„œ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” EKSํ™˜๊ฒฝ์—์„œ CI/CD ๊ด€๋ จ๋œ ๋„๊ตฌ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐ๋ธŒ์˜ต์Šค ยท ์ธํ”„๋ผ, Kubernetes] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Jenkins CI / ArgoCD / Vault ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

  • Terraform์œผ๋กœ ์ธํ”„๋ผ ๊ตฌ์„ฑ ์ž๋™ํ™”

  • Prometheus, Grafana, Loki ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๋กœ๊น…

  • VPC๋ถ€ํ„ฐ EKS ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ๊นŒ์ง€

EKS ์œ„์— CI/CD ํ™˜๊ฒฝ ๊ตฌ์„ฑ

์„  ๊ตฌ์ถ•, ํ›„ ์‘์šฉ!

๋ชจ๋“  ๊ฒƒ์„ ์•Œ๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์‹œ๋Œ€๋Š” ๊ฐ”์Šต๋‹ˆ๋‹ค. One Click ์„ค์น˜ ํ›„ ์šด์˜๋˜๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉด์„œ ์ ์‘ํ•˜์„ธ์š”~

์ด ๊ฐ•์˜๋Š” ๊ธฐ์กด์˜ ์ด๋ก  ๊ฐ•์˜๋‚˜ ๋‹จ์ˆœ ๊ตฌ์„ฑ ๋”ฐ๋ผ ํ•˜๊ธฐ ํ˜•์‹์ด ์•„๋‹™๋‹ˆ๋‹ค. Kubernetes๋ฟ๋งŒ ์•„๋‹ˆ๋ผ CI/CD, ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ™์€ ์ฃผ์ œ๋Š” ๋ฒ”์œ„๊ฐ€ ๋„“์–ด ๋ชจ๋‘๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ์—” ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‘๊บผ์šด ์ฑ…์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ณต๋ถ€ํ•˜๋Š” ๋ฐฉ์‹์€ ์‹ค์ œ ์‹œ์Šคํ…œ์„ ์ ‘ํ•˜๊ธฐ ์ „๊นŒ์ง€ ๊ธด ์‹œ๊ฐ„์„ ํ•„์š”๋กœ ํ•˜๋ฉฐ, ํฐ ๊ทธ๋ฆผ์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด ๊ฐ•์˜์—์„œ๋Š” ๋จผ์ € ์›ํด๋ฆญ์œผ๋กœ ๋ชจ๋“  ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜์—ฌ Demo ์•ฑ์„ CI/CD๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ ์‹œ์Šคํ…œ์„ ๋จผ์ € ๊ฒฝํ—˜ํ•ด๋ณด๊ณ , ์–ด๋–ค ์Šคํฌ๋ฆฝํŠธ์™€ ์„ค์ •์ด ์ ์šฉ๋˜์—ˆ๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

DevOps ๋ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์ž๋™ํ™”๋œ ์ธํ”„๋ผ ์„ค์ •๊ณผ ๊ด€๋ฆฌ๋ฅผ ๋ฐฐ์šฐ๋ ค๋Š” ๊ฐœ๋ฐœ์ž, ์‹œ์Šคํ…œ ์—”์ง€๋‹ˆ์–ด, ์šด์˜ ํŒ€์„ ์œ„ํ•œ ์‹ค์Šต ์ค‘์‹ฌ์˜ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. Amazon EKS์™€ Terraform์„ ์ด์šฉํ•œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ๋ถ€ํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ ์„ค์น˜, CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•๊นŒ์ง€ ๋ชจ๋“  ๊ณผ์ •์„ ์›ํด๋ฆญ์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ, ์‹ค๋ฌด์—์„œ ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ์ˆ ์„ ์Šต๋“ํ•˜๊ณ  ํ˜„์žฅ์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ์ž๋™ํ™” ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ํ‚ค์šฐ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

์ผ๋‹จ Kubernetes๊ฐ€ ๊ตฌ์„ฑ๋˜๋ฉด ๊ทธ ์ดํ›„์—๋Š” ํด๋ผ์šฐ๋“œ์—์„œ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ Kubernetes๋ฅผ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์— ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” EKS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ๋Š” ๋กœ์ปฌ Kubernetes๋ฅผ ๊ตฌ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ ค ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ 2 ๋Œ€์˜ PC๋กœ ๋น„์Šทํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๊ณ ์ž ํ•˜์‹ ๋‹ค๋ฉด ๋ฐ”๋กœ์“ฐ๋Š” CI/CD on K8S ๋กœ ์Šคํ„ฐ๋””ํ•˜์‹œ๋Š” ๊ฒƒ๋„ ์ถ”์ฒœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

K8S ์œ„์— Monitoring / Alertmanager

๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚˜๋ฉด ์‹ค์ „์šฉ EKS ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Terraform์„ ํ†ตํ•œ IAM ๋ฐ VPC ์ž๋™ ๊ตฌ์„ฑ

Terraform์œผ๋กœ IAM, VPC, EKS ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•œ ๊ฒฐ๊ณผ ํ™”๋ฉด. ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ๋ฐฐํฌ ์—†์ด ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

Ingress-NGINX์™€ AWS AutoScaler ์„ค์น˜ ํ™”๋ฉด

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Ingress ์„ค์ •๊ณผ ๋™์  ํ™•์žฅ์„ ์ง€์›ํ•˜๋Š” AWS AutoScaler ์„ค์น˜ ๊ฒฐ๊ณผ. ์•ˆ์ •์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Prometheus ๋ฐ Grafana ๋Œ€์‹œ๋ณด๋“œ

์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ Prometheus์™€ Grafana ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๊ตฌ์„ฑํ•œ ํ™”๋ฉด์œผ๋กœ, ์‹ค์‹œ๊ฐ„ ๋ฉ”ํŠธ๋ฆญ ์‹œ๊ฐํ™”๋ฅผ ํ†ตํ•ด ํšจ์œจ์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ArgoCD์™€ Jenkins๋ฅผ ์ด์šฉํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ

ArgoCD์™€ Jenkins๋ฅผ ์‚ฌ์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐฐํฌ๋˜๋Š” CI/CD ํŒŒ์ดํ”„๋ผ์ธ ์„ค์ • ํ™”๋ฉด. ์ง€์†์  ํ†ตํ•ฉ ๋ฐ ๋ฐฐํฌ๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋˜๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

  • ์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ˆ˜๊ฐ•์ƒ์€ DevOps์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ดํ•ดํ•˜๊ณ , EKS ๊ธฐ๋ฐ˜ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ์ง์ ‘ ์ž๋™ํ™”ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด ํ™˜๊ฒฝ์—์„œ ๊ตฌ์„ฑ๊ณผ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์œผ๋กœ ํ•™์Šตํ•˜๋ฉฐ, ์‹œ์Šคํ…œ ๊ด€๋ฆฌ ๋ฐ ํ™•์žฅ์„ฑ์„ ๊ณ ๋ คํ•œ ์„ค์ • ๋Šฅ๋ ฅ์„ ํ‚ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํ•™์Šต ๋‚ด์šฉ

  • ์•„๋ž˜์˜ ํ™˜๊ฒฝ์„ One Click ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ž๋ฃŒ๋ฅผ Github Repo์™€ Docker image๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

One Click ๋นŒ๋“œ์šฉ Docker

Provisioning ๋ฐ CI / CD ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”

Docker ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Infra ์„ค์น˜ / ์ œ๊ฑฐ์šฉ Git Repo

Terraform ๋ฐ Helm ์‹คํ–‰์„ ํ†ตํ•œ Provisioning์„ ์ˆ˜ํ–‰ํ•˜๋Š” Git Repo ์ œ๊ณต

CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

Jenkins์™€ ArgoCD๋ฅผ ํ†ตํ•ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค์ •ํ•˜๊ณ , ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

  • ์™„์ „ํ•œ ์šด์˜์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” EKS ๊ธฐ๋ฐ˜ CI/CD ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„  ๊ตฌ์ถ•, ํ›„ ๋ถ„์„ / ์‘์šฉ

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „: macOS, Linux, Windows

  • ์‚ฌ์šฉ ๋„๊ตฌ: Terraform, Helm, Jenkins, ArgoCD ๋“ฑ

  • PC ์‚ฌ์–‘: ์ตœ์†Œ 8GB RAM, 4์ฝ”์–ด CPU ๊ถŒ์žฅ

  • ํ•™์Šต ์ž๋ฃŒ: PPT, ์†Œ์Šค ์ฝ”๋“œ, ์‹ค์Šต ์˜ˆ์ œ ์ œ๊ณต

ํ•™์Šต ์ž๋ฃŒ

  • ์ œ๊ณตํ•˜๋Š” ํ•™์Šต ์ž๋ฃŒ ํ˜•์‹ (PPT, ํด๋ผ์šฐ๋“œ ๋งํฌ, ํ…์ŠคํŠธ, ์†Œ์Šค ์ฝ”๋“œ, ์• ์…‹, ํ”„๋กœ๊ทธ๋žจ)


์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • DevOps์™€ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ, ๊ธฐ๋ณธ์ ์ธ Terraform ๋ฐ Kubernetes ์‚ฌ์šฉ ์ง€์‹์ด ํ•„์š”

  • ๊ฐ•์˜์™€ ํ•™์Šต ์ž๋ฃŒ์˜ ์ €์ž‘๊ถŒ์€ ๊ฐ•์˜ ์ œ์ž‘์ž์—๊ฒŒ ์žˆ์Œ

  • ์งˆ๋ฌธ/๋‹ต๋ณ€ ๋ฐ ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ๊ด€๋ จ ๋‚ด์šฉ

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • EKS ๊ตฌ์„ฑ์— ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ

  • K8S์—์„œ CI / CD ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

์•ˆ๋…•ํ•˜์„ธ์š”
Dewey Hong์ž…๋‹ˆ๋‹ค.

618

๋ช…

์ˆ˜๊ฐ•์ƒ

43

๊ฐœ

์ˆ˜๊ฐ•ํ‰

3

๊ฐœ

๋‹ต๋ณ€

4.6

์ 

๊ฐ•์˜ ํ‰์ 

5

๊ฐœ

๊ฐ•์˜

์‹ค๋ฆฌ์ฝ˜๋ฐธ๋ฆฌ์—์„œ 10๋…„ ์ด์ƒ ํ™œ๋™ํ•˜๊ณ  ์žˆ๋Š” DevOps ์‹œ๋‹ˆ์–ด ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด์ž…๋‹ˆ๋‹ค.

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

https://doohee323.github.io/

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

36๊ฐœ โˆ™ (2์‹œ๊ฐ„ 45๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!