๊ฐค๋ฌ๋ฆฌ ๋ณด๊ธฐ
ย Project 1: COME2US
Role: Infra & DevOps โ ์ํคํ
์ฒ ์ค๊ณ ์ฃผ๋ | 1โข2์ฐจ ์ธํ๋ผ ๋จ๋
๊ตฌ์ถ, 3์ฐจ ์ค๊ณ ์ฃผ๋โข๊ตฌ์ถ | CI/CD ๊ตฌ์ถโข์ด์ ์ฃผ๋ | Istio ๋์
์ฃผ๋
Period: 2025.10 โ 2025.12
Key Tech: AWS EKS, Istio, Terraform, Jenkins, ArgoCD
Links: [GitHub], [์ํคํ
์ฒ ์ค๊ณ], [RCA Report]
ํ๋ก์ ํธ ์๊ฐ: ํธ๋ํฝ ์ฆ๊ฐ ์ํฉ์ ๊ฐ์ ํ MSA ๊ธฐ๋ฐ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ผ๋ก, ์ด์ ๋ณต์ก๋์ ๋ณ๊ฒฝ ๋น์ฉ์ ๋ฎ์ถ๊ธฐ ์ํด ์ํคํ
์ฒ๋ฅผ 3๋จ๊ณ์ ๊ฑธ์ณ ๊ณ ๋ํํ์ต๋๋ค. ๊ฐ ๋จ๊ณ๋ ์ด์ ๊ตฌ์กฐ์ ํ๊ณ๋ฅผ ๊ฒฝํํ ๋ค ๋ค์ ์ ํ์ ๊ทผ๊ฑฐ๋ก ์ผ๋ ๋ฐฉ์์ผ๋ก ์งํ๋์์ต๋๋ค.
1. ์ํคํ ์ฒ ๊ณ ๋ํ: ๊ฐ ๋จ๊ณ์ ํ๊ณ๋ฅผ ๋ค์ ์ ํ์ ๊ทผ๊ฑฐ๋ก
โ๋จ์ํ ๊ธฐ์ ์ ๊ต์ฒดํ ๊ฒ์ด ์๋๋ผ, ๊ฐ ๊ตฌ์กฐ๊ฐ ๋ง๋ค์ด๋ธ ์ด์ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ๊ณ ๊ทธ ๊ทผ๊ฑฐ๋ก ๋ค์ ๋จ๊ณ๋ฅผ ๊ฒฐ์ ํ์ต๋๋ค.โ
[์ด๋ฏธ์ง 1] COME2US ์ํคํ
์ฒ โ Event-Driven MSA ์ํคํ
์ฒ (AWS EKS, Kafka, Istio)
Phase 1 โ Monolith
โข
๋จ์ผ EC2์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋์ปค ์ปจํ
์ด๋๋ก ๋ฐฐํฌํ๋ ๊ตฌ์กฐ๋ก MVP๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐฐํฌ
โข
ํ๊ณ: ํธ๋ํฝ ์ฆ๊ฐ ์ ์์ง ํ์ฅ(Scale-up)์ ์์กดํ๋ฉฐ, ์๋น์ค ์ผ๋ถ ์ฅ์ ๊ฐ ์ ์ฒด ๋ค์ด์ผ๋ก ํ์ฐ๋๋ ๊ตฌ์กฐ์ ์ทจ์ฝ์ ํ์ธ
โ ์๋น์ค ๋
๋ฆฝ์ฑ๊ณผ ์ํ ํ์ฅ์ ์ํด MSA + ECS Fargate๋ก ์ ํ ๊ฒฐ์
Phase 2 โ ECS MSA
โข
์๋น์ค๋ฅผ ๋
๋ฆฝ ์ปจํ
์ด๋๋ก ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ณ ํ์ฅ๊ณผ ์ฅ์ ๊ฒฉ๋ฆฌ์ ์ฑ๊ณต
โข
ํ๊ณ:
โฆ
ECS Fargate๋ task ๋ด๋ถ IP์ ์ธ๋ถ ๋
ธ์ถ IP๊ฐ ๋ฌ๋ผ Eureka ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๊ฐ ์ ์ ๋์ํ์ง ์๋ ๊ตฌ์กฐ์ ๋ฌธ์ ๋ฐ์ (ํ๊ฒฝ๋ณ์๋ก hostname์ ์ง์ ์ฃผ์
ํ๋ ๋ฐฉ์์ผ๋ก ์์ ํด๊ฒฐ)
โฆ
์๋น์ค๊ฐ ๋์ด๋ ์๋ก ์๋น์ค๋ง๋ค hostname์ ๋ณ๋ ๊ด๋ฆฌํด์ผ ํ๋ ์ด์ ํ์ฅ์ฑ/๊ด๋ฆฌ์ฑ ํ๊ณ ์ธ์
โ Spring Cloud ์ปดํฌ๋ํธ ์์กด ๊ตฌ์กฐ์ ํ๊ณ๋ฅผ ๋ฒ์ด๋๊ธฐ ์ํด Kubernetes ๋ค์ดํฐ๋ธ ํ๊ฒฝ์ผ๋ก ์ ํ ๊ฒฐ์
Phase 3 โ EKS Cloud-Native
โข
Kubernetes ์ ์ธํ ๋ฆฌ์์ค๋ก ๋ฐฐํฌโข์ ์ฑ
์ ํ์คํํ๊ณ , Istio Service Mesh๋ก ๊ณตํต ์ ์ฑ
์ ํ๋ซํผ ๊ณ์ธต์ผ๋ก ์ด๊ด
โข
์ธ์ฆ/์ธ๊ฐโข๋ผ์ฐํ
์ ์ฑ
๋ณ๊ฒฝ์ด ์๋น์ค ์ฌ๋ฐฐํฌ ์์ด Manifest PR โ ArgoCD Sync ๋จ์๋ก ์ฒ๋ฆฌ
โ Spring Cloud ์ปดํฌ๋ํธ ์์ ์ ๊ฑฐ, ์ ์ฑ
๋ณ๊ฒฝ ๋ฆฌ๋ํ์ ๋จ์ถ
2. Service Mesh ๋์ : Spring Cloud ์ข ์ ์ ๊ฑฐ์ ์ด์ ๋ฆฌ์คํฌ ํด์
โIstio๋ฅผ ๋จ์ํ ํต์ ํ๋ก์๊ฐ ์๋ ์ ์ฑ
์ ์ด ํ๋ฉด(Control Plane)์ผ๋ก ์ฌ์ฉํด, ์ธ์ฆโข์ธ๊ฐโข๋ผ์ฐํ
์ ์ฑ
์ Git ๊ธฐ๋ฐ ์ ์ธํ ๋ฆฌ์์ค(CRD)๋ก ์ ํํ์ต๋๋ค.โ
๋ฐฐ๊ฒฝ
ECS ํ๊ฒฝ์์ ๋ฐ์ํ Eureka IP ๋ถ์ผ์น ๋ฌธ์ ๋ฅผ ๊ณ๊ธฐ๋ก Spring Cloud ์ปดํฌ๋ํธ ์ ๊ฑฐ๋ฅผ ๊ฒฐ์ ํ์ต๋๋ค. ๋ผ์ฐํ
๋์ฒด์ ๋ก Kubernetes Ingress๊ฐ ์์ฐ์ค๋ฌ์ด ์ ํ์ง๋ก ๋ ์ฌ๋๊ณ , ๋์์ ArgoCD ๋์
๊ณผ ํจ๊ป Canary ๋ฐฐํฌ๋ฅผ ๋ชฉํ๋ก ์ค์ ํ์ต๋๋ค. Canary ๋ฐฐํฌ์ Spring Cloud Gateway๊ฐ ์ํํ๋ ์ธ์ฆโข์ธ๊ฐโขํํฐ๋ง์ ํ๋ซํผ ๋ ์ด์ด์์ ํตํฉ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก Istio๋ฅผ ํ์ธํ์์ต๋๋ค. ๊ธ์ ๊ฑฐ๋๊ฐ ํฌํจ๋ E-Commerce ์๋น์ค ํน์ฑ ์ ์๋น์ค ๊ฐ ํต์ ์ํธํ๊ฐ ๋ณด์์ ์ผ๋ก ์ ์๋ฏธํ๋ค๊ณ ํ๋จํ์ฌ mTLS ์ ์ฉ์ ํตํ ์๋น์ค ๊ฐ ํต์ ๋ณด์ ๊ฐํ๋ฅผ ์ถ๊ฐ ๋ชฉํ๋ก ์ค์ ํ์ต๋๋ค.
๊ตฌํ
โข
AuthN/AuthZ Offloading: Ingress์์ RequestAuthentication(JWKS) + AuthorizationPolicy๋ก JWT ๊ฒ์ฆ/๊ถํ์ ์ฒ๋ฆฌํด ์๋น์ค ์ฝ๋์ ์ธ์ฆ ์์กด์ ์ ๊ฑฐ
โข
Traffic Management: Gateway/VirtualService๋ก ๋ผ์ฐํ
/๋ณด์ ์ ์ฑ
์ ์ ์ธ์ ์ผ๋ก ๊ด๋ฆฌํด, ์ ์ฑ
๋ณ๊ฒฝ์ ์๋น์ค ๋ฐฐํฌ๊ฐ ์๋ โManifest PR โ ArgoCD Syncโ ๋จ์๋ก ์ ํ
โข
Observability ์ฐ๋: Istio ๋์
์ผ๋ก ์ธํ ์ด์ ๋ณต์ก๋ ์ฆ๊ฐ๋ฅผ ์ธ์งํ๊ณ , OTel ํธ๋ ์ด์ฑ ์ฐ๋ ์ค์ ์ ํตํด Mesh ๋ด ํธ์ถ ๊ฒฝ๋ก ๊ฐ์์ฑ ํ๋ณด
[์ด๋ฏธ์ง 2] Istio ์๋น์ค ํ๋ฆ
[์ด๋ฏธ์ง 3] Istio JWT ์ธ์ฆ ํ๋ฆ
Trade-off
Istio ๋์
์ ์ด์ ๋ณต์ก๋/ํ์ต๋น์ฉ์ ์ฆ๊ฐ๋ฅผ ์๋ฐํฉ๋๋ค. ์ค๋ฒ์์ง๋์ด๋ง์ด ๋ ์ ์์ง๋ง, ์๋น์ค ํ์ฅ ๋จ๊ณ์์ ์ ์ฑ
๋ณ๊ฒฝ ๋น์ฉ๊ณผ ๊ด์ธก ๊ณต๋ฐฑ์ด ์ด์ ๋ฆฌ์คํฌ๋ก ์ปค์ง ์์ ์ ๋์
์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ํ๋จํ์ต๋๋ค.
๊ฒฐ๊ณผ
Spring Cloud ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ๋ฌธ์ ๋ฅผ Kubernetes ๋ค์ดํฐ๋ธ๋ก ํด์ํ๋ฉฐ, ์ ์ฑ
๋ณ๊ฒฝ์ ์ฌ๋ฐฐํฌ ์์ด ์ ์ธ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ํ๋ฆฝํ์ต๋๋ค. ๋ํ ์๋น์ค ๊ฐ mTLS๋ฅผ ์ ์ฉํ์ฌ ์ ๋ขฐ์ฑ์ ๋์์ต๋๋ค.
3. CI/CD ๊ณ ๋ํ: ํํธํ โ ํ์คํ โ ์ญํ ๋ถ๋ฆฌ
โโ๋ ์ข์ ๋๊ตฌโ๋ฅผ ์ซ์ ๊ฒ์ด ์๋, ๊ฐ ์์ ์ ์ด์ ๋ฌธ์ ๋ฅผ ๊ทผ๊ฑฐ๋ก ํ์ดํ๋ผ์ธ ์ ๋ต์ ์ ํํ์ต๋๋ค.โ
Phase 1 โ GitHub Actions
โข
๋จ์ผ ์๋น์ค ๊ตฌ์กฐ์์ GitHub Actions๋ก ๊ฐ๋จํ CI ๊ตฌ์ฑ
Phase 2 โ Jenkins ๋์
โข
๋ฌธ์ : MSA๋ก ์ ํํ๋ฉฐ ์๋น์ค๊ฐ ๋์ด๋์ ๊ฐ ์๋น์ค๋ง๋ค ๋ณ๋ ํ์ดํ๋ผ์ธ์ด ์๊ฒจ ์ค๋ณต ์ฝ๋์ ๊ด๋ฆฌ ๋น์ฉ ๊ธ์ฆ
โข
๊ตฌํ:
โฆ
Jenkins Shared Library๋ก ๊ณตํต CI(๋น๋/ํ
์คํธ, ์ด๋ฏธ์ง ๋น๋โขํธ์, ์๋ฆผ) ํ์คํ
โฆ
Gradle ๋น๋ ์บ์โขDocker BuildKit ๋ ์ด์ด ์บ์ ์ ์ฉ์ผ๋ก ๋ฐ๋ณต ๋น๋ ํจ์จ ๊ฐ์
โฆ
Terraform ์ฐ๊ณ Blue/Green ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๊ตฌํ (CI โ Warm-up ์๋น์ค ์์ฑ โ Health Check โ ALB Target Group ์ ํ โ ์ด์ ํ๊ฒฝ ์ ๋ฆฌ)
[์ด๋ฏธ์ง 4] Docker Layer Cache ์ ์ฉ ์ /ํ: 1๋ถ 3์ด โ 3.2์ด (95% ๋จ์ถ)
โข
๊ฒฐ๊ณผ: ์๋น์ค๋ณ ํ์ดํ๋ผ์ธ ์ค๋ณต ์ ๊ฑฐ ๋ฐ ๊ณตํต CI ํ์คํ
Phase 3 โ GitHub Actions + ArgoCD
โข
๋ฌธ์ : Jenkins ์์ฒด๊ฐ ๋ณ๋ ์ธํ๋ผ๋ก ์กด์ฌํ๋ฉฐ ์ ์งโข๊ด๋ฆฌ ๋ถ๋ด์ด ์๋ก์ด ์ด์ ๋น์ฉ์ผ๋ก ๋ถ๊ฐ๋จ
โข
๊ตฌํ:
โฆ
CI โ GitHub Actions๋ก ๋จ์ํํ์ฌ ๋ณ๋ ์๋ฒ ์ด์ ๋ถ๋ด ํด์
โฆ
CD โ ArgoCD + Helm Chart ๊ธฐ๋ฐ GitOps๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ธ์ ๋ฐฐํฌ ์ฌํ์ฑ ํ๋ณด
โข
๊ฒฐ๊ณผ: CI๋ ๋น๋ ๋ฐ ๊ฒ์ฆ, CD๋ ๋ฐฐํฌ ๋ฐ ์๋ ด์ ์ญํ ๋ก ๋ถ๋ฆฌ, Jenkins ์ด์ ๋ถ๋ด ํด์
4. ์ฅ์ ๋์: Jenkins ๋ ธ๋ Hang ์์ธ ๊ท๋ช ๊ณผ ์ฌ๋ฐ ๋ฐฉ์ง
"๋จ์ ์๋ฒ ์ฆ์ค์ด ์๋, CloudWatch ์งํ๋ก ๋ณ๋ชฉ์ ์ฆ๋ช
ํ๊ณ ๊ตฌ์กฐ์ ์ผ๋ก ์ฌ๋ฐ์ ๋ง์์ต๋๋ค."
(Phase2: Jenkins ๊ธฐ๋ฐ CI ์ฅ์ โ Phase3: GitOps ์ ํ์ผ๋ก ๋์ฒด)
โข
๋ฌธ์ : ํน์ ์๋น์ค์ Docker ์ด๋ฏธ์ง ๋น๋ ๊ตฌ๊ฐ์์ Jenkins UI๊ฐ 504 Gateway Timeout์ ๋ฐํํ๊ณ , ์ดํ SSH ์ ์ ๋ถ๊ฐ(๋
ธ๋ Hang/์์คํ
์ ์ง) ์ํ๋ก ์ ํ๋์ด CI ํ์ดํ๋ผ์ธ์ด ์ค๋จ๋จ. CPU/Memory ์ฌ์ฉ๋์ ์ ์ ๋ฒ์์๊ธฐ ๋๋ฌธ์ ๋จ์ ๋ฆฌ์์ค ๋ถ์กฑ์ ๋ณผ ์ ์์์
โข
์์ธ ๋ถ์ (RCA):
โฆ
CloudWatch ๋ถ์ ๊ฒฐ๊ณผ, EBS BurstBalance๊ฐ 0%๋ก ๋จ์ด์ง๊ณ VolumeTotalReadTime ์ต๋ 119์ด, VolumeQueueLength๊ฐ ๊ธ์ฆํ๋ ํจํด ๋ฐ๊ฒฌ
โฆ
๋จ์ผ Root EBS(gp2)์์ OS์ Docker I/O๊ฐ ๊ฒฝํฉ
โ gp2 ๋ณผ๋ฅจ์ IOPS Throttling์ ๊ทผ๋ณธ ์์ธ์ผ๋ก ๊ท๋ช
โข
์ธก์ ๊ธฐ์ค: CloudWatch BurstBalance/VolumeQueueLength/VolumeTotalReadTime (1m period) ๊ธฐ์ค, ๋์ผ ๋น๋ ์๋๋ฆฌ์ค์์ ๋ณ๊ฒฝ ์ /ํ 3ํ ์ฌํํ์ฌ ๋น๊ต
[์ด๋ฏธ์ง 5] EBS gp2 ๋ณผ๋ฅจ์ BurstBalance ๊ณ ๊ฐ
[์ด๋ฏธ์ง 6] EBS gp2 ๋ณผ๋ฅจ์ QueueLength ๊ธ์ฆ๊ณผ ์ ์ง
[์ด๋ฏธ์ง 7] EBS gp2 ๋ณผ๋ฅจ์ TotalReadTime ๊ธ์ฆ๊ณผ ์ ์ง
โข
ํด๊ฒฐ ์ ๋ต:
1.
Root/Data ๋ณผ๋ฅจ ๋ถ๋ฆฌ๋ก ๋น๋ ์ํฌ๋ก๋์ I/O ์ํฅ์ OS ๋ ์ด์ด์ ๊ฒฉ๋ฆฌ
2.
gp3(Provisioned IOPS 6000)๋ก ๋ง์ด๊ทธ๋ ์ด์
ํจ์ผ๋ก์จ ํฌ๋ ๋ง ๊ธฐ๋ฐ ๊ฐ๋ณ IOPS์์ ๊ณ ์ IOPS ๊ตฌ์กฐ๋ก ์ ํ
โข
๊ฒฐ๊ณผ: Jenkins 504/๋
ธ๋ Hang ์ฅ์ ์ ๊ฑฐ, EBS ๋ณ๋ชฉ ์งํ ์์ ํ
[์ด๋ฏธ์ง 8] EBS gp3 ๋ณผ๋ฅจ ๋ณ๊ฒฝ ํ QueueLength ๊ฐ์ (ํผํฌ ํ ์์ ํ)
[์ด๋ฏธ์ง 9] EBS gp3 ๋ณผ๋ฅจ ๋ณ๊ฒฝ ํ TotalReadTime ๊ฐ์ (ํผํฌ ํ ์์ ํ)
5. Packer์ Terraform์ ํตํ CI ํ๋ซํผ ์ฌํ ์๋ํ (๋น์ฉ ์ ์ฝ ํ๊ฒฝ ์ด์ ๋ฆฌ์คํฌ ์ ๊ฑฐ)
โข
๋ฐฐ๊ฒฝ: ๋น์ฉ ์ ์ฝ์ผ๋ก AWS ๋ฆฌ์์ค Destroy/Recreate๊ฐ ๋น๋ฒํ์ฌ, Jenkins ์๋ฒ ๋ฐ ์ค์ ์ ์ฌ๊ตฌ์ฑ์ด ์๊ตฌ๋์ด ์ค์ ๋๋ฝ, ํ๊ฒฝ ๋ถ์ผ์น ๋ฑ์ ์ด์ ๋ฆฌ์คํฌ์ ์๊ฐ ๋น์ฉ ๋ฐ์
โข
๊ตฌํ:
โฆ
Docker ์ฌ์ ๊ตฌ์ฑ Golden AMI๋ฅผ Packer๋ก ๋น๋ํ์ฌ ์ผ๊ด๋ ์ด๋ฏธ์ง ํ๋ณด
โฆ
Terraform์ผ๋ก EC2 + EBS(์์ ๋ฐ์ดํฐ) + ALB ๋
ธ์ถ + Jenkins ์ปจํ
์ด๋ ๊ธฐ๋๊น์ง ์๋ํ
โข
ํจ๊ณผ: terraform apply๋ง์ผ๋ก Jenkins๋ฅผ ๋ฐ๋ณต ์ฌ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ด์ ๋ชจ๋ธ๋ก ์ ํํ์ฌ, ์ฌ๊ตฌ์ถ ๋ฆฌ๋ํ์๊ณผ ์์
์ค๋จ ๋น์ฉ์ ์ ๊ฑฐ
ย Project 2: CINEBOX
Role: BE, Infra & DevOps Lead โ ์ํคํ
์ฒ ์ค๊ณ ๋ฐ ์ธํ๋ผ ๋จ๋
๊ตฌ์ถ | CI/CDโข๋ชจ๋ํฐ๋ง ์ ๋ด
Period: 2025.02 โ 2025.03
Key Tech: AWS EKS, ArgoCD, Prometheus, Loki, Grafana, Terraform
Links:ย [GitHub Repository] | [Report PDF]
ํ๋ก์ ํธ ์๊ฐ: ์ค์๊ฐ ์ข์ ์ ์ ์ ์๋งค๊ฐ ๋ฐ์ํ๋ ๊ณ ๊ฐ์ฉ์ฑ ์๊ตฌ์ฌํญ์ ๊ฐ์ ํ ์ํ ์๋งค ์๋น์ค์
๋๋ค. ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ๋ฅผ ์์ฌ๊ฒฐ์ ์ ๊ทผ๊ฑฐ๋ก ์ผ์ ํ์ฅ ์ ์ด์ ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ์ ํ์ผ๋ฉฐ, ์ด์ ํ๊ฒฝ์ ์ ๋ขฐ์ฑ๊ณผ ์ฌํ์ฑ์ ์ํด GitOps๋ฅผ ๋์
ํ์ต๋๋ค.
[์ด๋ฏธ์ง 10] CINEBOX ์ํคํ
์ฒ
1. ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฐ ์์ฌ๊ฒฐ์
๊ด์ธก ์ฒด๊ณ ๊ตฌ์ถ
โข
Grafana/Prometheus๋ก ์ธํ๋ผ ๋ฆฌ์์ค์ ์ ํ๋ฆฌ์ผ์ด์
์ํ ํตํฉ ๋ชจ๋ํฐ๋ง
โข
Loki๋ฅผ ํตํ ํฉ์ด์ง ํ๋ ๋ก๊ทธ๋ฅผ ์ค์ ์์งํ์ฌ Grafana์์ ํตํฉ ํ์ธ ๊ฐ๋ฅํ ๊ตฌ์กฐ ํ๋ณด
์์ฌ๊ฒฐ์
โข
๋ชจ๋ํฐ๋ง ๊ฒฐ๊ณผ movie ๋๋ฉ์ธ GET ์์ฒญ์ ํธ๋ํฝ์ด ์ง์ค๋จ์ ํ์ธ
โข
DB๋ฅผ Master/Replica ๊ตฌ์กฐ๋ก ๋ถ๋ฆฌํ์ฌ ์กฐํ ํธ๋ํฝ์ Replica์์ ์ฒ๋ฆฌ
โ ์ฝ๊ธฐ ํธ๋ํฝ์ Replica๋ก ๋ถ์ฐํ์ฌ Master ๋ถํ ๊ฐ์
2. GitOps ๋์ : Dev/Prod ํ๊ฒฝ ๋ถ๋ฆฌ์ ์ ์ธ์ ๋ฐฐํฌ ์ฌํ์ฑ ํ๋ณด
๋จ์ํ "๋ฐฐํฌํ๋ค"๊ฐ ์๋๋ผ, Dev์ Prod ํ๊ฒฝ์ ์ค์ ์ถฉ๋์ ๊ตฌ์กฐ์ ์ผ๋ก ์ฐจ๋จํ๊ณ ๋ชจ๋ ๋ณ๊ฒฝ์ ์ถ์ ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์์ต๋๋ค.
๋ฐฐ๊ฒฝ
Dev์ Prod ํ๊ฒฝ์ ๋์์ ์ด์ํ๋ฉด์ ํ๊ฒฝ๋ณ ์ค์ ์ kubectl๋ก ์ง์ ์ ์ฉํ๋ฉด ์ค์ ํด๋ฌ์คํฐ ์ํ์ ์ฝ๋ ๋ฒ ์ด์ค๊ฐ ๋ฌ๋ผ์ง๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ ๊ตฌ์กฐ์์ต๋๋ค. ํนํ Dev์์ ๊ฒ์ฆํ ์ค์ ์ด Prod์ ๊ทธ๋๋ก ๋ฐ์๋๋ค๋ ๋ณด์ฅ์ด ์์๊ณ , ๋ฐฐํฌ ์ด๋ ฅ๋ ๋จ์ง ์์์ต๋๋ค. GitOps๋ฅผ ํตํด Git์ ๋จ์ผ ์ง์ ์ผ๋ก ์ผ์ ์ด ๋ฌธ์ ๋ฅผ ์ฐจ๋จํ๊ณ ์ ํ์ต๋๋ค.
๊ตฌํ
โข
ArgoCD: ํด๋ฌ์คํฐ์ ํ์ฌ ์ํ์ Git์ ์ ์๋ ์ํ(Desired State)๋ฅผ ์ค์๊ฐ ๋๊ธฐํ. ์๋ ๋ณ๊ฒฝ์ PR ๊ธฐ๋ฐ์ผ๋ก ์ ํํด Drift ๋ฐ์ ๊ฐ๋ฅ ์ง์ ์ต์ํ
โข
Kustomize: Base์ Overlay(Dev/Prod) ๊ตฌ์กฐ๋ก ๋๋์ด ํ๊ฒฝ๋ณ ๋ฆฌ์์ค ๊ฒฉ๋ฆฌ ๊ด๋ฆฌ, ๊ฐ๋ฐ ๊ฒ์ฆ ํ ์์ ์ ํ๋ก๋์
์ผ๋ก ๋ฐฐํฌํ๋ ํ๋ฆ ํ์คํ
โข
GitHub Actions โ ArgoCD ํ๋ฆ์ผ๋ก CI์ CD ์ญํ ๋ถ๋ฆฌ
๊ฒฐ๊ณผ
ํ๊ฒฝ๋ณ ์ค์ ์ถฉ๋ ๋ฐฉ์ง, ์ ์ธ์ ๋ฐฐํฌ ์ฌํ์ฑ ํ๋ณด
3. Troubleshooting โ CoreDNS Taint ์ถฉ๋
๋ฌธ์
์ ํ๋ฆฌ์ผ์ด์
Pod๊ฐ RDS์ ์ฐ๊ฒฐ์ ์คํจํ๋ฉฐ ์ง์์ ์ผ๋ก CrashLoopBackOff ์ํ๋ก ๋ฐ๋ณต ์ฌ์์
์์ธ ์ถ์
1.
RDS ์ค์ , Security Group, ํ๊ฒฝ ๋ณ์ ํ์ธ โ ์ ์
2.
์ฐ๊ฒฐ ์คํจ๊ฐ IP๊ฐ ์๋ endpoint ๊ธฐ๋ฐ์ธ ์ ์ ์ฃผ๋ชฉ โ DNS ํด์ ๋ฌธ์ ์์ฌ
3.
CoreDNS Pod ์ํ ํ์ธ โ Pending โ ๋ชจ๋ ๋
ธ๋์ Taint๊ฐ ์ ์ฉ๋์ด ์์ด CoreDNS๊ฐ ์ด๋ค ๋
ธ๋์๋ ์ค์ผ์ค๋ง๋์ง ๋ชปํ ๊ฒ์ด ์์ธ
๊ฒฐ๋ก
ํด๋ฌ์คํฐ ๋ด๋ถ DNS ํด์ ๋ถ๊ฐ โ RDS endpoint๋ฅผ IP๋ก ๋ณํํ์ง ๋ชปํ ์ฐ๊ฒฐ ์คํจ
ํด๊ฒฐ
CoreDNS Deployment์ tolerations๋ฅผ ์ถ๊ฐํ์ฌ ๋ชจ๋ ๋
ธ๋์์ ์ค์ผ์ค๋ง ๊ฐ๋ฅํ๋๋ก ๋ณ๊ฒฝ
โ CoreDNS ์ ์ ์ค์ผ์ค๋ง, ์ ํ๋ฆฌ์ผ์ด์
-RDS ์ฐ๊ฒฐ ์ ์ํ









