Cloud-Native & Serverless Evolution
물리적 인프라의 제약을 넘어 클라우드 네이티브 아키텍처와 서버리스 기술을 통한 무한 확장성과 운영 효율의 정점을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts7 min read
1. Overview
클라우드 네이티브 및 서버리스 진화(Cloud-Native & Serverless Evolution, CNSE)는 하드웨어 인프라를 추상화 수준의 극단으로 끌어올려, 오직 비즈니스 로직과 서비스 가치에만 집중하게 만드는 인프라 패러다임의 최종 단계를 다룹니다.
본 노드는 단순히 '클라우드 사용법'을 배우는 곳이 아니라, 인프라가 API처럼 작동하고 서버가 코드처럼 관리되는(IaC) 물리적 환경에서의 설계 사상을 탐구합니다. 학습자는 애플리케이션의 유연성을 극대화하는 클라우드 전용 패턴, 이벤트에 반응하여 즉각적으로 실행되는 서버리스(Serverless) 역학, 전 세계 사용자에게 지연 없이 데이터를 전달하는 엣지 컴퓨팅(Edge Computing), 그리고 인프라를 가시적인 코드로 제어하는 GitOps 방법론을 체계적으로 학습합니다.
2. Scope & Boundaries
In-Scope
- Cloud-Native Patterns: 12-Factor App, 사이드카(Sidecar), 서킷 브레이커 등 클라우드 특화 설계.
- Serverless & FaaS: 이벤트 기반 실행 모델, Cold Start 물리, 무상태(Stateless) 함수 설계.
- Edge Computing & CDN: 데이터의 물리적 거리를 좁히는 분산 캐시 및 엣지 로직 처리 역학.
- Infrastructure as Code (IaC): 선언적 인프라 정의(Terraform, Pulumi)와 GitOps 배포 파이프라인.
Out-of-Scope
- 특정 클라우드 벤더(AWS, Azure)의 독점 기술 세부 명세 (벤더 중립적 아키텍처 중심).
- 운영체제 수준의 가상화 기술 (03. OSSM 노드로 위임).
- 고수준 앱 개발 프레임워크 튜닝 (14. Web 노드로 위임).
Boundaries
- CNSE는 '인프라를 어떻게 구성하는가(IaC)'와 '그 인프라를 어떻게 활용하는가(Patterns)'의 구조적 결합에 집중하며, 개별 서비스의 내부 로직 구현은 각 도메인 노드에서 분담합니다.
3. Counterexample
- 클라우드 콘솔 수동 조작: 클릭으로 리소스를 생성하는 행위는 CNSE 학습이 아닙니다. 왜 해당 환경을 **코드(GitOps)**로 관리해야만 대규모 분산 시스템의 신뢰성을 물리적으로 보장할 수 있는지 논증하는 것이 핵심입니다.
- 단순한 Lambda 호출: 서버리스 함수를 단순히 실행하는 것은 활용 단계입니다. 왜 서버리스 환경에서 **지연 시간(Cold Start)**이 발생하는지, 이를 해결하기 위해 메모리 할당과 실행 컨텍스트를 어떻게 조율해야 하는지 분석하는 능력이 요구됩니다.
4. Prerequisites
- 시스템 아키텍처 기초 (Basic): 레이어드 아키텍처와 마이크로서비스의 기본 개념 이해. (07. FAP)
- 확장성 및 고가용성 설계 (Recommended): 로드 밸런싱과 수평 확장의 물리적 원리 파악. (07. SHA)
- 네트워크 및 보안 (Practical): 가상 네트워크(VPC), DNS 라우팅 및 HTTPS 보안 프레토콜 숙지. (08. NC)
5. Learning Map
- Cloud-Native Design: 클라우드 인프라의 동적 특성에 최적화된 앱 배치를 배웁니다. (Industry
) - Serverless Dynamics: 서버 관리 없는 이벤트 기반 연산의 물리적 메커니즘을 익힙니다. (Industry
) - Edge Optimization: 사용자 물리 위치에 대응하는 분산 알고리즘과 캐싱을 완성합니다. (Industry
) - Declarative Ops: 인프라를 코드로 정의하고 Git으로 변경을 제어하는 모델을 구축합니다. (Industry
)
6. Learning Topics
Basic
Core Topic 01: 클라우드 네이티브 설계와 12-Factor App (Cloud-Native Patterns)
- Why to Learn: 어떤 인프라 환경에서도 유연하게 적응하고 확장 가능한 '격리된 앱'을 설계하기 위함입니다.
- What to Learn:
- Concepts: 상태 없는(Stateless) 프로세스, 환경 설정의 코드 분리, 배킹 서비스(Backing Services)와 부착(Attach) 구조.
- Skills: 설정 정보를 환경 변수로 빼내고, 일회성 작업과 대기 프로세스를 분리하기.
- Tools: Config Service, Environmental Variables.
- Trade-offs: 높은 이식성 vs 초기 설정의 복잡도 및 리소스 명세 관리 오버헤드.
- How to Learn:
- 1단계: 기존 모놀리식 앱에서 로그 출력과 파일 저장을 코드가 아닌 환경 설정으로 분리해 봅니다.
- 2단계: 신규 노드 추가 시 코드 변경 없이 수평 확장이 가능한지 시뮬레이션합니다.
- Implement: 특정 클라우드 환경에 즉시 배포 가능한 12-Factor 준수 앱 아키텍처 가이드.
Recommended
Core Topic 02: 서버리스 컴퓨팅과 FaaS 역학 (Serverless & FaaS)
- Why to Learn: 유휴 장비 비용을 제로화하고, 이벤트 발생 시에만 즉각적으로 하드웨어 자원을 점유하기 위함입니다.
- What to Learn:
- Concepts: 함수 단위 실행(FaaS), 트리거(Trigger) 메커니즘, Cold Start vs Warm Start 물리적 차이.
- Skills: 짧고 독립적인 실행 단위를 위한 무상태 함수 설계, 타임아웃 및 동시성 제약 관리.
- Tools: AWS Lambda, Google Cloud Functions, OpenFaaS.
- Trade-offs: 비용 절감 및 무한 확장 vs 초기 응답 지연(Latency) 및 특정 벤더 종속성.
- How to Learn:
- 1단계: 특정 이벤트(예: 파일 업로드) 발생 시 이미지를 리사이징하는 서버리스 함수를 기획합니다.
- 2단계: 함수 호출 빈도에 따른 CPU 점유 시간과 비용의 상관관계를 측정합니다.
- Implement: 주기적 배치 작업이나 이벤트 반응형 작업을 위한 서버리스 파이프라인 설계도.
Practical
Core Topic 03: 엣지 컴퓨팅과 콘텐츠 가속 (Edge Computing & CDN)
- Why to Learn: 중앙 센터까지의 물리적 거리를 극복하여 초저지연 사용자 경험을 제공하고 트래픽을 지역별로 분산하기 위함입니다.
- What to Learn:
- Concepts: 엣지 서버(Edge Locations), 캐싱 무효화(Invalidation) 전략, 지역별 요청 라우팅 물리.
- Skills: 사용자 물리 위치 기반 데이터 전송 경로 최적화, 엣지 로직(Edge Workers) 구현.
- Tools: Cloudflare Workers, AWS CloudFront, Fastly.
- Trade-offs: 최상의 응답 속도 vs 전역 데이터 정합성 유지 복잡도 증가.
- How to Learn:
- 1단계: 정적 자원을 CDN에 배치하고 전 세계 여러 지점에서의 로드 속도를 벤치마킹합니다.
- 2단계: 엣지 수준에서 직접 보안 인증이나 헤더 조작을 수행하는 로직을 삽입해 봅니다.
- Implement: 글로벌 서비스를 위한 엣지 캐싱 및 지역별 최적화 배포 전략 보고서.
Advanced
Core Topic 04: 코드형 인프라와 GitOps (IaC & GitOps)
- Why to Learn: 복잡한 클라우드 구성을 수동 작업 없이 100% 재현 가능하게 하고, 인프라의 모든 변경 사항을 추적 및 복구하기 위함입니다.
- What to Learn:
- Concepts: 선언적 인프라(Declarative), 불변 인프라(Immutable), GitOps 풀 모델(Pull Model) vs 푸시 모델.
- Skills: 인프라 명세를 코드로 작성하여 하드웨어를 프로비저닝하고, Git Commit이 실제 운영 환경을 자동으로 업데이트하게 구현하기.
- Tools: Terraform, Pulumi, ArgoCD, Flux.
- Trade-offs: 높은 운영 안정성 및 형상 관리 vs IaC 학습 곡선 및 상태 기록(State file) 관리 리스크.
- How to Learn:
- 1단계: 테라폼을 이용해 가상 네트워크와 서버 인스턴스를 스크립트로 생성합니다.
- 2단계: ArgoCD를 구축하여 Git 리포지토리의 매니페스트 변경이 클러스터에 실시간 반영되는 과정을 하드닝합니다.
- Implement: 전체 시스템 환경(Dev/Prod)을 1분 내에 복구 가능한 코드형 인프라(IaC) 템플릿 셋.
7. Terminology
8. References
Primary References
- [P2] SWEBOK v4: Software Construction - Cloud Computing — Construction patterns.
- [P1] CS2023: SE - SaaS and Cloud Computing — Design principles.
Secondary References
- [Cloud Native Patterns] Cornelia Davis — 클라우드 네이티브의 기본 원리와 패턴 상세.
- [Infrastructure as Code] Kief Morris — 선언적 인프라 관리의 바이블.
Industry References
- [CNCF Cloud Native Definition] — 클라우드 네이티브 기술의 공식 정의 및 생태계 로드맵.
- [The 12-Factor App] — 현대적인 앱 구축을 위한 12가지 가이드라인.
9. Final Checklist
Primary Checklist
- 특정 애플리케이션이 클라우드 네이티브 기준(12-Factor)을 얼마나 충족하는지 정량적으로 평가할 수 있는가? (P1)
- 서버리스 환경에서 콜드 스타트(Cold Start) 지연을 줄이기 위한 물리적 해결책(메모리 할당, Warm-up)을 제안 가능한가? (Industry)
Secondary Checklist
- 엣지 컴퓨팅을 도입했을 때 중앙 집중형 구조 대비 사용자 시점 Latency 감소분을 공학적으로 산출했는가?
- 인프라 변경 시 수동 조작 대신 IaC와 GitOps를 통해 물리적 형상 관리를 100% 보장하고 있는가?
Industry Checklist
- 특정 클라우드 벤더의 장애 상황(Region Outage)에 대응하기 위한 멀티 리전(Multi-region) 설계 역량을 입증했는가?
- 서버리스 함수 간의 상태 공유 난제를 해결하기 위한 외부 저장소(Redis, S3) 결합 설계를 논리적으로 기술 가능한가?