클라우드 네이티브 전달은 CI 정의, Infrastructure as Code, 선언적 Orchestration, 운영 데이터 처리를 결합합니다. 이 챌린지형 프로젝트에서는 준비된 로컬 환경의 구체적 산출물로 각 형태를 시험합니다.
GitHub Actions Workflow, Terraform Docker Container, 다중 Resource Kubernetes Manifest, Python Access Log Analyzer를 만듭니다. 단계는 전달이라는 주제를 공유하지만 연결된 프로덕션 Pipeline이 아닌 독립 검증 연습입니다.
학습 내용
mainPush에서 Checkout, Node Setup, Install, Test를 실행하는Node.js CIWorkflow 정의하기- Terraform Docker Provider를 구성하고
terraform-webNginx Container를8080:80으로 만들기 - Terraform을 Init·Apply하고 Docker와 HTTP로 로컬 Container 검증하기
- 3개의
nginx:alpineReplica와 일치하는 Label·Selector를 가진 Kubernetes Deployment 적용하기 - NodePort Service로 Workload를 노출하고 로컬 Cluster의 두 Resource 확인하기
- Python으로 준비된 Log의 첫 Field IP를 Set으로 중복 제거하고 개수 출력하기
추천 대상
단계별 명령 없이 입문 CI, Terraform, Kubernetes, Python을 적용할 DevOps 학습자에게 적합합니다.
선수 지식: YAML, GitHub Actions 구조, Terraform Provider·Resource, Docker Port, Kubernetes Deployment·Service, Python File Iteration·Set, Linux Terminal에 익숙해야 하는 평가형 프로젝트입니다.
학습 환경: Docker, Terraform, 로컬 Minikube, kubectl, Python 3, Node.js Project Context, 준비된 Log가 있는 브라우저 기반 Linux이며 Cloud Account나 GitHub Push는 필요하지 않습니다.
자주 묻는 질문
Workflow가 실제 GitHub에서 실행되나요?
아니요. .github/workflows/ci.yml을 로컬에서 만들고 검증합니다. Push, Hosted Runner, 원격 npm test 성공 확인은 없습니다.
Terraform이 Cloud Infrastructure를 프로비저닝하나요?
아니요. kreuzwerker/docker로 로컬 nginx:latest Container 하나를 실행합니다. Cloud Provider, Remote State, Module, 프로덕션 Network는 범위 밖입니다.
Kubernetes가 Terraform Container나 CI와 연결되나요?
아니요. 별도 Minikube 연습으로 3 Replica와 NodePort를 만듭니다. Pipeline은 배포하지 않고 Terraform도 관리하지 않습니다.
Python Automation은 무엇을 하나요?
access.log 첫 Field를 읽고 Set으로 고유 IP를 세어 Unique IPs: 10을 출력합니다. Log Stream, API 호출, Infrastructure 변경은 하지 않습니다.


