쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고
product.kyobobook.co.kr
최근, Next.js 프로젝트를 AWS EKS(Elastic Kubernetes Service)에 배포하는 경험을 했습니다.
이 과정에서 『쿠버네티스를 활용한 클라우드 네이티브 데브옵스』라는 책을 참고하며, 인프라에 대해 배운 내용을 제 방식대로 정리해봤습니다.
👨💻🛠️ 모든 것은 소프트웨어며 우리는 모두 엔지니어
이제는 프론트엔드 개발과 운영의 경계가 경계가 점점 사라지고 있습니다. HTML, CSS, JavaScript만 잘 다루면 됐던 시대를 지나 이제는 SSR, API 연동, 배포자동화, 모니터링 까지 고민해야 하죠.
이제 인프라도 코드로 작성하고 관리합니다.
package.json 을 다루듯, deployment.yaml, Dockerfile을 작성합니다.
결국, 인프라를 구성하는 것도 우리가 다루는 ‘코드’입니다.
그리고 코드는 바로 개발자가 잘 다루는 도구 입니다.
빠르고 안정적인 제품 전달은 특정 역할의 몫이 아니라, 모든 개발자의 책임입니다.
AI 시대에 우리는 점점 더 ‘경계를 넘는 개발자’가 되어야 합니다.
“나는 프론트만 해”라는 말보다, “이 기능을 어떻게 빠르게 사용자에게 전달하지?”라는 시야가 중요해졌습니다.
우리는 모두 ‘엔지니어’이고, 세상은 점점 더 모든 것을 ‘코드’로 표현하는 방향으로 나아가고 있으니까요.
🤖 왜 쿠버네티스인가?
비즈니스 관점에서는 “더 적게 실행하는 소프트웨어”가 중요합니다.
이 말은 꼭 적게 개발하자는 게 아니라, 이미 검증된 표준 기술을 활용해 핵심 기능에 집중하자는 의미입니다.
쿠버네티스(Kubernetes)는 그런 관점에서 사실상 인프라 관리의 표준이 되었습니다.
다수의 컨테이너를 한 번에 배포하고, 필요에 따라 스케일을 자동으로 조절해주고, 문제가 생긴 컨테이너는 알아서 다시 띄워줍니다.
프론트 기준으로 비유하자면 Turborepo가 모노레포 내에서 빌드 의존성을 분석하고, 필요한 부분만 선택적으로 빌드해주는 것처럼 쿠버네티스는 수많은 애플리케이션 인스턴스를 효율적으로 실행하고 관리해줍니다.
게다가 오토스케일링, 로드밸런싱 같은 기능도 AWS 같은 특정 클라우드에 종속되지 않고,
쿠버네티스 자체에 내장되어 있어 어떤 환경에서도 일관되게 작동합니다.
결국 우리는 인프라에 시간을 쏟기보다, 비즈니스 로직과 사용자 경험에 더 집중할 수 있게 되는 것이죠.
🧱 쿠버네티스 구조, 핵심 리소스 이해하기
쿠버네티스에서는 애플리케이션을 구성하는 요소들이 계층적으로 관리됩니다. 프론트엔드 개발자에게 익숙한 컴포넌트 트리처럼, 각각의 리소스가 어떤 역할을 하는지 이해하면 전체 구조가 훨씬 명확해집니다.
Pod
하나의 프로그램(보통 하나의 컨테이너)을 실행시키는 가장 작은 단위입니다.
프론트 기준으로 보면, 브라우저에서 하나의 탭이 하나의 페이지 앱을 띄우는 것처럼, Pod는 컨테이너 하나를 띄우는 최소 실행 단위입니다.
ReplicaSet
Pod를 몇 개 띄울지, 언제 다시 띄울지를 관리하는 리소스입니다.
마치 React에서 상태 변화를 감지해서 필요한 컴포넌트만 다시 그리는 것처럼,
ReplicaSet은 애플리케이션이 항상 원하는 수만큼 실행되도록 유지시켜줍니다.
Deployment
선언적인 방식으로 Pod와 ReplicaSet을 관리하는 상위 리소스입니다.
구조로 보면 Deployment → ReplicaSet → Pod 순서입니다.
쉽게 말해, “이 앱을 3개 실행시켜줘” 같은 요청을 코드(yaml)로 정의하고, 이 상태를 자동으로 유지하게 해주는 역할을 합니다.
Deployment는 .yaml 매니페스트로 관리되며, 실제 클러스터의 상태를 원하는 상태와 일치시키도록 쿠버네티스가 지속적으로 조율합니다.
이처럼 쿠버네티스는 복잡한 인프라 구성도 마치 컴포넌트처럼 구조화하고 선언적으로 관리할 수 있게 도와줍니다.
덕분에 인프라 변경도 코드 리뷰와 버전 관리를 통해 안전하게 수행할 수 있게 되는 거죠.
🩺 쿠버네티스의 헬스 체크
헬스 체크(Health Check)는 인프라 전반에서 널리 사용되는 개념이지만, 쿠버네티스는 이 기능을 체계화하고 자가 복구까지 연결 해 놓은 것이 큰 특징입니다. 단순히 컨테이너를 실행하는 것에 그치지 않고, 서비스가 “정상적으로 동작하는지” 판단해서 자동Pod의 응답이 없다면 그 Pod를 죽이고 새로 띄웁니다. 상태에 따라 직접 재시작 하거나 트래픽 대상에서 제외시키고 복구를 시도합니다. 즉 강력한 자가 복구를 해줍니다.
따라서 Next.js 에서는 아래와 같은 API ROUTE를 만들어줄 수 있습니다
// /pages/api/health.ts
export function GET() {
return NextResponse.json({ status: "ok" }, { status: 200 });
}
🌩️ 클라우드 네이티브 개발자?
클라우드 네이티브 개발자는, 클라우드 환경에 최적화된 방식으로 설계, 개발, 배포, 운영까지 고려하는 개발자를 말합니다.
요즘 프론트엔드는 단순한 SPA를 넘어, SSR, CSR, ISR 등 다양한 렌더링 방식에 따라 배포 전략도 달라집니다.
즉, 단순히 앱을 만드는 것뿐 아니라 어디에, 어떻게 띄우느냐"도 이제 중요한 개발의 일부가 된 것이죠.
아무리 인프라 담당자가 따로 있더라도, 도커 이미지 빌드, GitHub Actions 설정, ArgoCD로 배포 확인 및 롤백 같은 과정은 결국 프론트엔드 개발자가 직접 다루게 되는 영역입니다.
그래서 이제 프론트엔드 개발자도 클라우드 네이티브 개발자처럼 시스템 전반을 이해하고, 능동적으로 대처할 수 있는 역량이 필요해졌습니다. 단순히 UI만 잘 만드는 개발자를 넘어서, 인프라, 배포, 모니터링까지 포함한 전체 흐름을 이해해야 복잡한 문제를 "기술로 해결할 수 있는" 좀 더 나은 개발자로 성장할 수 있습니다.
이 글이 누군가에게는 그 여정을 시작하는 좋은 출발점이 되기를 바랍니다. 🙌
https://product.kyobobook.co.kr/detail/S000001810211?utm_source=google&utm_medium=cpc&utm_campaign=googleSearch>_network=g>_keyword=>_target_id=dsa-435935280379>_campaign_id=9979905549>_adgroup_id=132556570510&gad_source=1
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 6월 1일 오전 4:43
새로운 클라우드 네이티브 업데이트와 능동적으로 대응할 수 있는 역량이 기대됩니다. UIb 개발부터 시작하여 더 나은 인프라와 모니터링 프로세스를 구축하세요. https://repogame.co
1. 누군가가 화려한 단어나 두루뭉술한 개념을 많이 사용한다면 아마 자신이 무슨 말을 하는지도 모를 것이다.
엘박스는 300억원 규모 시리즈C 투자 라운드를 마무리했다. 이번 라운드는 키움인베스트먼트가 리드했으며 기존 투자자인 SV인베스트먼트도 참여했다. 글로벌 VC 레전드캐피탈도 투자자로 이름을 올렸다.
... 더 보기코
... 더 보기K
... 더 보기1. 파킨슨의 법칙에 따르면 어떤 일이든 주어진 시간이 모두 소진될 때까지 늘어진다고 한다.