내일배움캠프

[내일배움캠프] MSA 마무리

munsik22 2026. 4. 15. 14:17

🤷‍♂️ 무조건 MSA를 써야 하는 건가요?
아닙니다! MSA를 도입하기 위해서는 많은 설정들이 필요하기 때문에, 일단 모놀리틱 아키텍처로 시작한 다음 부분 부분 전환하는 방법도 가능합니다.

🧩 쿠버네티스란?

쿠버네티스(Kubernetes)

  • 컨테이너화된 애플리케이션의 배포, 확장, 운영을 자동화하는 오픈소스 플랫폼
  • Google에서 개발하고 현재는 CNCF(Cloud Native Computing Foundation)에서 관리함
  • 컨테이너 오케스트레이션 도구로, 다수의 컨테이너를 효율적으로 관리할 수 있음

주요 개념

  • 컨테이너: 애플리케이션과 그 종속성을 함께 패키징한 가상화된 환경
  • Pod: 쿠버네티스에서 실행되는 최소 단위의 배포 객체
  • 노드: 쿠버네티스 클러스터에서 Pod가 실행되는 물리적 또는 가상 머신
  • 클러스터: 여러 노드로 구성된 쿠버네티스의 집합
  • 네임스페이스: 클러스터 내에서 리소스를 논리적으로 구분하는 단위

Spring Cloud와 비교

  • 공통점: 확장성, 관리성, 고가용성
  • 차이점
  Spring Cloud Kubernetes
초점 MSA 간의 통신, 서비스 디스커버리, 구성 관리 등 애플리케이션 레벨의 문제 해결에 초점 컨테이너 관리, 배포, 스케일링 등 인프라 레벨의 문제 해결에 초점
구성 요소 Eureka, Ribbon, Zuul, Config Server, Hystrix 등 다양한 마이크로서비스 패턴을 지원하는 구성 요소 Pod, Deployment, Service, Ingress, ConfigMap, Secret 등 컨테이너 오케스트레이션에 필요한 구성 요소
배포 방식 애플리케이션 코드와 함께 다양한 클라우드 서비스에 직접 배포 컨테이너 이미지를 기반으로 클러스터 내에서 배포 및 관리

Spring Cloud Kubernetes

  • Spring Cloud와 Kubernetes의 통합을 지원함
  • 서비스 디스커버리, ConfigMap, Secrets 등을 Spring Cloud 애플리케이션에서 사용할 수 있도록 지원함
  • 주요 기능
    • 서비스 디스커버리: Kubernetes API를 통해 서비스 인스턴스를 동적으로 검색하고 로드 밸런싱을 수행함
    • 구성 관리: Kubernetes ConfigMap과 Secrets을 사용하여 애플리케이션 설정을 중앙에서 관리함
    • 자동화된 배포: CI/CD 파이프라인과 통합하여 애플리케이션의 자동 배포와 관리를 지원함

쿠버네티스의 장단점 및 사례

  • 장점: 확장성, 자동화, 유연성
  • 단점: 복잡성, 운영 비용, 디버깅 어려움
  • 성공 사례: Google, Netflix, Airbnb
  • 실폐 사례와 교훈: 초기 설정의 복잡성, 리소스 관리의 중요성, 전문성 부족

🧩 최종 프로젝트

 

GitHub - qkrwns1478/spring-eureka-shop: MSA 실습

MSA 실습. Contribute to qkrwns1478/spring-eureka-shop development by creating an account on GitHub.

github.com