5 min read

ํ—˜๋‚œํ•œ Kubernetes ์ „ํ™˜๊ธฐ (1) - Azure Kubernetes Service

Table of Contents

AKS Icon

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

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

1๋ฒˆ ํƒ€์ž, Azure

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

๊ทธ๋ž˜์„œ ์ฒซ ๋ฒˆ์งธ Kubernetes ํ™˜๊ฒฝ์€ AKS(Azure Kubernetes Service)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตฌ์ถ•ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

NAT Gateway

Kubernetes ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ–ˆ๋˜ ๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ์„ค์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ์ค‘์—์„œ๋„ NAT Gateway๋ฅผ ์šฐ์„  ๊ตฌ์„ฑํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

NAT Gateway๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์™€ ์ธํ„ฐ๋„ท์˜ ์ค‘๊ฐ„์— ์œ„์น˜ํ•ด์„œ ๋ถˆํ•„์š”ํ•œ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜๊ณ  ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ, ์ฆ‰ ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ๊ณผ ๊ทธ ์‘๋‹ต์œผ๋กœ ๋Œ์•„์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ๋งŒ NAT Gateway๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ๊ธˆ ๋” ํ˜„์‹ค์ ์ธ ์ด์œ ๋กœ๋Š”, ์ผ๋ณธ์˜ ์ƒ๋‹น์ˆ˜ ๊ณ ๊ฐ๋“ค์ด ์™ธ๋ถ€ ์„œ๋น„์Šค ์‚ฌ์šฉ ์‹œ ํŠน์ • IP ๋Œ€์—ญ๋งŒ ๋ฐฉํ™”๋ฒฝ์„ ๊ฐœ๋ฐฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๊ธ‰์  ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” IP ๋Œ€์—ญ์„ ๋‘๊ณ , ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์ด๋ฅผ ์‚ฌ์ „์— ์•ˆ๋‚ดํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ NAT Gateway๋ฅผ ๊ตฌ์„ฑํ•ด ๋‘๋ฉด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋ณ€๊ฒฝ์ด ์ƒ๊ธฐ๋”๋ผ๋„ ๊ณ ์ •๋œ ์ฃผ์†Œ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ์—ญ์‹œ ํฐ ์ด์œ ์˜€์Šต๋‹ˆ๋‹ค.

NAT Gateway๋Š” Stack Overflow์™€ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, ๋ณ„๋„ ์„ค์ •์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด NAT Gateway๋Š” Zone-redundant, ์ฆ‰ ํŠน์ • Availability zone์— ์ข…์†๋˜์ง€ ์•Š๋Š” ํ˜•ํƒœ๋กœ ๋ถ„์‚ฐ๋˜์–ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ €ํฌ๋Š” ํ•ด๋‹น ์„ค์ •์ด ์˜๋„์™€ ๋งž์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„ ์กฐ์น˜๋ฅผ ํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, ํŠน์ • ๋ฆฌ์ „์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Azure Load Balancer์™€ Azure Application Gateway

Azure Load Balancer๋Š” ๊ตฌ์ถ• ๊ณผ์ •์—์„œ ๊ฐ€์žฅ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ์ผ์œผํ‚จ ๋ถ€๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ์กด AWS ํ™˜๊ฒฝ์—์„œ๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— NGINX Ingress Controller๋ฅผ ALB(Application Load Balancer)๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ณ , ๋ณ„๋„์˜ ์„ค์ • ๋ณ€๊ฒฝ์„ ํ•˜์ง€ ์•Š์•„๋„ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” Azure์—๋„ ๋น„์Šทํ•˜๊ฒŒ NGINX Ingress Controller๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , Annotation ์ •๋„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Azure Load Balancer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ, ์˜ˆ์ƒ๊ณผ ๋‹ฌ๋ฆฌ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  1. Azure Load Balancer๋Š” ์ธ์ฆ์„œ๋ฅผ Load balancer์— ํ• ๋‹นํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. AWS์—๋Š” AWS Certificate Manager์—์„œ ์ƒ์„ฑํ•œ ์ธ์ฆ์„œ๋ฅผ ALB์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ณ , ์ธ์ฆ์„œ์˜ ์ž๋™ ๊ฐฑ์‹ ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    ํ•˜์ง€๋งŒ ์ดˆ๊ธฐ ๊ตฌ์„ฑ์—์„œ๋Š” ์ธ์ฆ์„œ ๊ด€๋ จ ์„ค์ •์„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  2. Azure Load Balancer๋Š” ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ๋งŽ์€ ์ œ์•ฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    ๊ธฐ๋ณธ์ ์œผ๋กœ L4 Load balancer์— ํ•ด๋‹นํ•˜๊ณ , ๋ฐฉํ™”๋ฒฝ๊ณผ ์š”์ฒญ ํ—ค๋” ๋ณ€๊ฒฝ ๋“ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜์ค‘์˜ ํŽธ์˜์„ฑ๋„ ๊ณ ๋ คํ•˜๊ณ , ์‹ค์ œ๋กœ ์ด๋กœ ์ธํ•ด ๋ถˆํŽธํ•จ์ด ์ƒ๊ธธ ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ €ํฌ๋Š” Azure์—์„œ ์ œ๊ณตํ•˜๋Š” L7 Load balancer์ธ Azure Application Gateway๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ ํ˜„์žฌ ์ธํ”„๋ผ๋ฅผ ๊ณ ๋ คํ–ˆ์„ ๋•Œ
AWS์—์„œ๋„ ๊ฐ€๊ธ‰์  L4 Load balancer์ธ NLB(Network Load Balancer)๋ณด๋‹ค L7 Load balancer์ธ ALB๋ฅผ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค๋Š” ๊ตํ›ˆ๋„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ค์ •์„ ๋งˆ์ณค์ง€๋งŒ ๋ฐฐํฌ ๊ณผ์ •์—์„œ 1๊ฐ€์ง€ ์ถ”๊ฐ€์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์›์ธ์€ ํฌ๊ฒŒ 2๊ฐ€์ง€์˜€์Šต๋‹ˆ๋‹ค.

  1. Azure์˜ AGIC(Application Gateway Ingress Controller)๋Š” ๋ณ„๋„ ์„ค์ •์ด ์—†๋‹ค๋ฉด
    X-Forwarded-For ํ—ค๋”๋ฅผ IP:Port ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐฑ์—”๋“œ์—์„œ ์ด ํ—ค๋” ๊ฐ’์„ ์ฝ์–ด ์ž‘์—…ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์—ˆ๊ณ , ํ•ด๋‹น ํ˜•์‹์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋…ธ๋“œ Auto Scaling

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

Azure์—์„œ๋Š” ์ด๋ฅผ ์œ„ํ•ด Cluster autoscaler๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
Terraform์—์„œ๋„ AKS ๊ตฌ์„ฑ์— ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋น„๊ต์  ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
Karpenter๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์ง€๋„ ์žˆ์—ˆ์ง€๋งŒ Azure ํ™˜๊ฒฝ์—์„œ๋Š” ์กฐ๊ฑด์ด ์ œํ•œ์ ์ด์–ด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

1๊ฐ€์ง€ ์•Œ์•„๋‘˜ ์ ์€, Cluster autoscaler์—์„œ ๋…ธ๋“œ ์ƒ์„ฑ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์ ์€ ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด Pod๊ฐ€ ์Šค์ผ€์ค„๋ง์ด ๋˜์ง€ ์•Š์„ ๋•Œ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ€ ์ค„์–ด๋“ค ๋•Œ๋Š” ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋ฅ ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๊ตฌ์„ฑ ๊ณผ์ •์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€๋Š” ์•Š์•„ ์„ค์ • ๋ณ€๊ฒฝ์€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋Š” 1์ฐจ์ ์œผ๋กœ Stress ์ด๋ฏธ์ง€๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐฐํฌํ•˜๋Š” ์‹์œผ๋กœ ๋ถ€ํ•˜๋ฅผ ์ฃผ์–ด ์ง„ํ–‰ํ•˜์˜€๊ณ , ์ดํ›„ ์‹ค์ œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•ด ๋ณด๋ฉด์„œ ๊ฒ€์ฆ์„ ๊ฑฐ์ณค๊ณ , ๋…ธ๋“œ ์‚ญ์ œ ์ด์ „ kubelet์˜ ์ƒํƒœ ์กฐํšŒ๊ฐ€ ์ค‘๋‹จ๋˜๊ณ  NotReady ์ƒํƒœ๋กœ ์ „ํ™˜๋œ ํ›„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ๊นŒ์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์‹ค์ œ ์‚ฌ์šฉํ•œ YAML ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

apiVersion: apps/v1
kind: Deployment
metadata:
  generation: 2
  labels:
    app: stress
  name: stress
spec:
  progressDeadlineSeconds: 600
  # replicas: 10
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: stress
  template:
    metadata:
      labels:
        app: stress
    spec:
      containers:
        - image: vish/stress
          imagePullPolicy: Always
          name: stress
          resources:
            limits:
              cpu: 2000m
              memory: 8Gi
            requests:
              cpu: 2000m
              memory: 8Gi
          args:
            - -cpus
            - "2"
            - -mem-alloc-size
            - "1Gi"
            - -mem-alloc-sleep
            - "1000ms"
            - -mem-total
            - "7Gi"
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

๋งˆ์น˜๋ฉฐ

Azure์—์„œ Kubernetes ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋ฉฐ ๊ฒช์€ ํฐ ๋ฌธ์ œ๋“ค์„ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์ด์™ธ์—๋„ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ์ง€๋งŒ, ๋‹ค ๋‚˜์—ดํ•˜๊ธฐ๋Š” ํž˜๋“ค๊ณ  ๊ณต๊ฐœํ•  ์ˆ˜ ์—†๋Š” ๋‚ด์šฉ๋“ค๋„ ์žˆ์–ด ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ฆฌํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

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

์ผ๋ณธ ์ง€์—ญ์„ ์‹œ์ž‘์œผ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ๋„ Kubernetes๋กœ ์ „ํ™˜ํ•˜๊ณ , ์ ์ง„์ ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „ํ™˜ํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ๋Š” ๊ธฐ์กด์˜ Docker Compose ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์„ ์™„์ „ํžˆ ์—†์• ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
์•ž์œผ๋กœ ๋” ๋งŽ์€ ๋ฌธ์ œ๋“ค์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ๊ผญ ํ•ด ๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ฐ๊นŒ์ง€ ๋…ธ๋ ฅํ•ด ๋ณด๊ณ  ์‹ถ๋„ค์š”.

์ฐธ๊ณ  ์ž๋ฃŒ