4부 "잘 만들기"는 서비스가 이미 사용자를 확보한 뒤 트래픽·팀 규모·배포 빈도 증가로 생기는 운영 병목을 해소하는 단계를 다룬다. 이 책은 그 해법으로 컨테이너·오케스트레이션·선언적 인프라·자동화 운영을 아우르는 클라우드 네이티브 전환을 다룬다.
핵심은 쿠버네티스이며, 대부분의 스타트업·중소기업이 실제로 선택하는 매니지드 쿠버네티스(EKS/GKE) 중심으로 서술한다.
도입 신호는 다음 네 가지다.
반대로 서비스가 1~2개이고 트래픽이 예측 가능하다면 ECS/Fargate, Cloud Run 같은 관리형 컨테이너 서비스로 충분하다. 판단은 어디까지나 구체적 운영 고통을 기준으로 해야 한다.
세 오브젝트만 정확히 이해해도 실무 대부분을 판단할 수 있다.
| 오브젝트 | 역할 |
|---|---|
| Pod | 쿠버네티스에서 생성·관리 가능한 가장 작은 배포 단위 |
| Service | 재시작마다 IP가 바뀌는 휘발성 Pod 집합에 고정된 이름과 주소를 붙여주는 내부 로드밸런서 |
| Deployment | 원하는 상태(desired state)를 선언하면 컨트롤러가 현재 상태를 그 상태로 통제된 속도로 변경해 주는 오브젝트 |
컨트롤 플레인을 직접 운영할지 클라우드 제공자에게 맡길지는 스타트업·중소기업 단계에서는 사실상 정해진 답이다.
GitOps는 Git 저장소를 인프라·애플리케이션 상태의 단일 진실 공급원(source of truth)으로 삼는 배포 방식이다. 다음 네 원칙을 따른다.
전통적 CI/CD가 파이프라인이 클러스터에 "밀어넣는(push)" 방식이라면, GitOps는 클러스터 내부 컨트롤러가 Git을 계속 "당겨오는(pull)" 방식이다. 이 방식은 외부 접근 권한을 최소화하고 수동 변경(drift)을 자동 감지·복원한다.
대표 도구 Argo CD는 Git 커밋을 감지해 클러스터에 적용하고 drift를 자동 되돌린다.
기본적으로 갖춰야 할 운영 요소는 다음과 같다.
오토스케일링은 두 층위로 나뉜다.
| 층위 | 대상 |
|---|---|
| HPA | Pod 수 조정 |
| Cluster Autoscaler | 노드 수 조정 |
두 층위가 함께 동작해야 의미가 있다.
서비스 메시(Istio)는 사이드카 프록시로 서비스 간 재시도·타임아웃·서킷 브레이커를 코드 밖에서 설정으로 관리하지만, 서비스가 두세 개뿐이면 과한 복잡성이다.
메트릭 수집·시각화(Prometheus/Grafana)는 클라우드 네이티브 생태계의 표준이며, 자세한 내용은 13권에서 이어진다.
쿠버네티스·GitOps·오토스케일링은 모두 특정 규모·조직 구조에서 발생하는 구체적 운영 고통을 풀기 위한 도구다. 그 고통을 아직 겪지 않은 조직이 도구부터 들여오는 순서 역전이 문제다.
성공 사례들도 처음부터 완성된 형태로 도입한 것이 아니라 단계적으로 성숙시켰다는 공통점을 보여준다.
국내 스타트업 클라이원트의 배포 편의성 계기 쿠버네티스 도입, Spotify의 자체 오케스트레이션(Helios)에서 쿠버네티스로의 전환, Airbnb의 3단계에 걸친 멀티 클러스터 오토스케일링 진화가 소개된다.
아래 댓글로 남겨주세요. 로그인 없이도 바로 남길 수 있습니다.