EKS(kubernetes) 기반 DevOps 방식

모두·2025년 3월 22일

오늘은 쿠버네티스 기반 DevOps 방식에 대해 알아보려 한다.

EKS(kubernetes)

  • kubernetes: 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 플랫폼
    • 컨테이너 오케스트레이션: 컨테이너를 클러스터로 묶어 자동으로 배포, 확장, 복구를 관리
    • Auto-scaling
    • Self-healing
    • 로드 밸런싱: 여러 인스턴스 간에 트래픽을 분산시켜 시스템의 성능을 최적화
    • 자동 배포 및 롤백
  • EKS: AWS에서 제공하는 완전관리형 kubernetes 서비스

일반적인 EKS 구성

EKS 내에서 DB를 운영하는건 어떤가요?

  • container라는 overhead를 안고 언제 서버가 종료될지 모르는 클라우드에서
    stateful한 DB를 운영하는건 어려운 일

  • 호스트의 자원을 다른 서비스 공유하기 때문에 병목현상이 발생할 수 있음

  • 일반적으로 고가용성을 보장하기 어렵기 때문에 DB는 되도록 클라우드에서 제공하는 managed service를 사용함 (백업/복구, 로그, 메트릭 등등)

EKS 장/단점

  • 장점
    • 오픈소스: 벤더락인에서 일부 자유로워지고 Custom하게 사용 가능함
    • 관리형 서비스라서 상대적으로 운영 비용이 적음
  • 단점
    • 러닝 커브(배울게 너무 많다)
    • 지속적인 클러스터 버전 업그레이드(약 3개월 주기)
    • vanilla kubenetes와 managed kubenetes는 차이가 존재

EKS 의 고질적인 문제점

  • hypervisor overhead로 인한 성능 저하
    • 물리적 서버의 하드웨어를 가상 머신이 공유하도록 만들어주는 S/W
    • CPU, Memory, Disk, Network
  • echo system
    • 모니터링: ELK / Prometheus / Grafana
    • 인프라 관리: helm, kustomize, terraform
    • CI/CD: ArgoCD, Jenkin X, Tekton
    • 네트워크: Calico, Istio

DevOps 방식별 차이점 비교

한번에 Kubernetes로 넘거나는것은 어렵다!

  • 권장하는 방식

    • On-Premise -> Managed service
    • On-Premise -> EC2 -> Managed service -> Kubernetes
    • On-Premise -> On-Premise(docker) -> Kubernetes
  • 꼭 Kubernetes가 정답은 아니다!

    • 하지만 당분간 인프라의 엔드컨텐츠는 결국 Kubernetes이지 않을까…

0개의 댓글