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

[ํด๋ผ์šฐ๋“œ] AWS, Kubernetes

by - ์˜คํŠธ - 2022. 7. 6.

 

ํ•ด๋‹น ๋‚ด์šฉ์€ ์ฝ”๋ฉ˜ํ†  ์ง๋ฌด๋ถ€ํŠธ์บ ํ”„ + ๊ฐœ์ธ์ ์œผ๋กœ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด๋‹ค

 

1์ฐจ ๊ณผ์ œ

๋”๋ณด๊ธฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ๋ฐ˜์˜ Elastic Kubernetes Service๋ฅผ ์šด์˜ํ•˜๊ธฐ ์ „, AWS ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•

ํ•˜๋‚˜์˜ VPC์— ์ด์ค‘ํ™”๋œ subnet์„ ๊ตฌ์„ฑํ•œ ํ›„ Bastion host๋ฅผ ์ƒ์„ฑ

 

  1. AWS free tier ๊ณ„์ • ์ƒ์„ฑ
  2. AWS IAM ์„ค์ •
  3. VPC ๊ตฌ์ถ•
  4. Bastion host ์ƒ์„ฑ

 

AWS๋ž€?

์•ˆ์ •์„ฑ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ €๋ ดํ•œ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”Œ๋žซํผ

 

IAM์„ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

root ๊ณ„์ •์€ ๋„ˆ๋ฌด ๋ง‰๊ฐ•ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ์ƒ์˜ ์ด์œ ๋กœ ์ตœ์†Œํ•œ์˜ ๊ถŒํ•œ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” IAM ๊ณ„์ • ์ƒ์„ฑ ํ•„์š”

 

VPC ๊ตฌ์„ฑ์š”์†Œ

- VPC : ๋…ผ๋ฆฌ์ ์ธ ๋…๋ฆฝ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฆฌ๋กœ์Šค

- Subnet : ์‹ค์ œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๊ณต๊ฐ„ / ์ธํ„ฐ๋„ท๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด public subnet, ์•„๋‹ˆ๋ฉด private subnet / ์ด์ค‘ํ™” ๊ตฌ์„ฑํ•˜์—ฌ ํ•˜๋‚˜์˜ Availability Zone์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋ฌธ์ œ ์—†์Œ(aws ์ถ”๊ฐ€ ๋น„์šฉ x)

- ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ” : ๋ชฉ์ ์ง€์˜ ์ด์ •ํ‘œ

- ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด : VPC๋Š” ๋‚ด๋ถ€ ํ†ต์‹ ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ VPC์™€ ์™ธ๋ถ€๋ฅผ ํ†ต์‹ ํ•ด์ฃผ๋Š” ์—ญํ• 

 

Bastion Host

๋‚ด๋ถ€์™€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ ์‚ฌ์ด์—์„œ ๊ฒŒ์ดํŠธ ์—ญํ• ์„ ํ•˜๋Š” Host / ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก Public IP ๋ถ€์—ฌ

(๋น„์šฉ ๋ฌธ์ œ๋กœ NAT instance๋กœ ์ƒ์„ฑ)

 

https://err-bzz.oopy.io/f5616e26-79ca-4167-b2eb-140de69b9b54

 

Bastion Host์˜ ์ดํ•ด์™€ AWS์—์„œ์˜ ๊ตฌ์„ฑ (Proxy)

๋ณธ ํฌ์ŠคํŒ…์€ ์ œ๊ฐ€ ์ด์ „์— ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ์“ด ๊ธ€์„ ๋ฒ ์งฑ์ด ๋ธ”๋กœ๊ทธ์— ๋งž๊ฒŒ ์žฌ๊ตฌ์„ฑํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค

err-bzz.oopy.io


2์ฐจ ๊ณผ์ œ

๋”๋ณด๊ธฐ

CloudFormation์„ ํ™œ์šฉํ•˜์—ฌ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ๋ฐ˜์˜ EKS ํ™˜๊ฒฝ ๊ตฌ์„ฑ๊ณผ ์›น ์„œ๋น„์Šค ๊ตฌ์ถ•

MSA์˜ ๊ฝƒ์ธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•

CloudFormation์„ ์ด์šฉํ•˜์—ฌ EKS ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋…ธ๋“œ๊ทธ๋ฃน์„ ์ƒ์„ฑ

๊ตฌ์ถ•๋œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์— Nginx ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌ

 

  1. EKS cluster ์ƒ์„ฑ
  2. Worker node group ์ƒ์„ฑ
  3. Nginx ์„œ๋น„์Šค ๋ฐฐํฌ

 

Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์ปจํ…Œ์ด๋„ˆํ™”๋œ ์›Œํฌ๋กœ๋“œ์™€ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ด์‹ํ•  ์ˆ˜ ์žˆ๊ณ , ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ

 

Kubernetes ์ฃผ์š” ๊ฐœ๋…

๊ฐœ๋… ์„ค๋ช…
Pod ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ฐ€์žฅ ์ž‘์€ ๋ฐฐํฌ ๋‹จ์œ„, ๊ฐ๊ฐ์˜ WorkerNode์— ๋ฐฐํฌ๋˜๊ณ  ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์— ๋…ธ์ถœ
Deployment ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๊ฐ€ ๋˜๋Š” ๋ฆฌ์†Œ์Šค
Service Pod๋ฅผ ์™ธ๋ถ€์— ๋…ธ์ถœ์‹œ์ผœ์ฃผ๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

 

1) Deployment ์ •์˜(nginx-deployment.yaml ์ƒ์„ฑ) -> 2) Pod ๋ฐฐํฌ -> 3) Service ๋ฐฐํฌ(nginx-service.yaml ์ƒ์„ฑ)

 

nginx-deployment.yaml

- Deployment ์ •์˜

- Deployment์—์„œ ๊ด€๋ฆฌํ•˜๋Š” Pod ์ •์˜

- Pod์•ˆ์— ์ƒ์„ฑํ•  Container ์ •์˜

 

kubectl ๋ช…๋ น์–ด