목차
프로젝트 소개
AWS 기반 클라우드 환경에서 Kubernetes(EKS)를 활용해 애플리케이션의 빌드·배포·운영을 완전 자동화하는 CI/CD 파이프라인을 구축한 프로젝트입니다. 개발자가 코드를 푸시하면 빌드에서 배포까지 무중단으로 자동 진행되는 환경을 목표로 했습니다.
•
프로젝트명 : AWS를 활용한 EKS환경에서의 CI/CD 자동화 배포
•
진행 기간 : 2025.09.15 - 2025.09.26 (2주)
•
인원 : 1
목표
•
아키텍처를 기반으로 3-Tier 웹 애플리케이션을 컨테이너 단위로 분리·배포
•
CI/CD 파이프라인을 통한 자동화된 배포 프로세스를 도입
•
EKS(Elastic Kubernetes Service)를 기반으로 컨테이너 오케스트레이션 환경을 구축
주요 기술 스택
DevOps/Cloud
•
AWS
•
Kubernetes
CI / CD
•
GithubAction
•
ArgoCD
•
Kustomize
Monitoring
•
Whatap
인프라 설계
•
AWS VPC, Public/Private 서브넷, ALB, ECR을 포함한 EKS 클러스터를 구성하고, Pod 오토스케일링과 롤링업데이트 전략을 적용해 고가용성 아키텍처 구현
CI/CD 파이프라인
•
GitHub Actions로 커밋 시 자동 빌드 및 Docker 이미지 ECR 푸시, Argo CD를 통해 EKS 클러스터에 실시간 반영
운영 자동화
•
Liveness/Readiness Probe, HPA, 모니터링 도구(Whatap) 적용으로 서비스 안정성과 자원 활용 효율성 강화
성과 및 개선
이미지 경량화
이미지 경량화로 빌드·배포 속도와 저장소 효율을 상승시켰습니다.
프론트엔드 이미지 149MB → 25MB(83% 감소)
백엔드 이미지 426MB → 101MB(76% 감소)
사용 전략:
•
Alpine Linux 기반 이미지 적용
•
Multi-stage 빌드로 빌드 도구 제거
•
JRE 최소 버전 사용 (JDK → JRE)
Kustomize를 활용한 환경 분리
manifest repository/
├─ base/
├─ deployment.yaml
└─ service.yaml
└─ overlays/
├─ dev/
└─ kustomization.yaml
└─ prod/
└─ kustomization.yaml
JavaScript
복사
환경 분리 핵심 구조
Base (기본 설정)
모든 환경에서 공통으로 사용되는 Kubernetes 리소스 YAML 파일을 정의
(예: Deployment, Service)
Overlays (환경별 설정)
Base 설정을 기반으로 특정 환경(개발, 운영 등)에 맞게 변경되는 부분을 정의
(예: Replica 수, 이미지 태그, ConfigMap)
환경 분리를 통해 환경별 배포전략을 수립할 수 있었습니다.
개발(dev) 환경 - 빠른 배포 및 기능 테스트를 위해 개발 브랜치 Push 시 자동 배포 (CI/CD)
운영(prod) 환경 - 안정성과 확장성을 위해 개발자에 의한 수동 트리거를 활용한 배포
Karpenter
CA(Cluster Autoscaling)
1.
Pending Pod이 생성
2.
Pending Pod이 생성되고 29초에 Node가 생성되기 시작
3.
Node가 Ready 상태가 되기까지 16초
4.
Pod이 Running 상태가 되기까지 59초
Karpenter
1.
Pending Pod이 생성
2.
Pending Pod이 생성되고 6초에 Node가 생성되기 시작
3.
Node가 Ready 상태가 되기까지 14초
4.
Pod이 Running 상태가 되기까지 30초
Karpenter 적용으로 프로비저닝 시간 59s → 30s, 49% 단축
Whatap
실시간 EKS 클러스터 모니터링
Pod 기동 및 운영 상태를 실시간으로 추적하여 클러스터 전반의 가시성을 확보
비용 효율성 확보
적정 리소스 Requests/Limits 산정을 통해 클라우드 비용을 최적화하고 불필요한 지출을 줄임
배운점
•
CI/CD 자동화와 GitOps 개념을 실무 수준으로 구현하며, 코드 작성뿐 아니라 배포·운영까지 아우르는 시야를 확보할 수 있었습니다.
•
Karpenter와 Whatap을 통해 자동 확장·프로비저닝 최적화·실시간 모니터링의 중요성을 체득하며, 운영 효율성과 비용 관리 역량을 동시에 강화할 수 있었습니다.

.png&blockId=27ccfa54-c362-814a-89ae-fe9d01c329d2)
.png&blockId=27ccfa54-c362-81a2-a5f2-d18a63c319c1)













