cloud ‐ 제공 템플릿 - 100-hours-a-week/2-hertz-wiki GitHub Wiki

🌩️ Cloud Infrastructure Wiki

이 위키는 프로젝트의 클라우드 인프라, CI/CD, IaC, 보안 및 운영 관련 전반적인 내용을 문서화한 공간입니다. 각 섹션은 실제 구성 시 참고할 수 있도록 다이어그램, 도구, 정책 등을 포함하고 있습니다.


📐 01. 아키텍처 개요

시스템 구성도

  • 모놀리식 → 마이크로서비스 전환 고려
  • VPC, 서브넷, NAT, 인터넷 게이트웨이 구성
  • Bastion Host / Load Balancer / DB / Object Storage 등

네트워크 구성

  • Public / Private Subnet 분리
  • 서브넷 간 라우팅 정책 정의
  • 보안 그룹 / NACL 구성

서비스 흐름

  1. 사용자가 Load Balancer 접근
  2. 서비스는 컨테이너 내부로 라우팅
  3. 백엔드는 RDS 및 외부 API 호출
  4. 결과는 캐시 or 직접 응답

🧪 02. 환경 구성

환경 구분

환경 목적 특징
Dev 개발용 자유로운 실험 가능
Staging 테스트 운영 환경과 유사
Prod 실제 서비스 고가용성, 보안 최우선

환경별 리소스 예시

  • S3 버킷: myapp-dev-*, myapp-stg-*, myapp-prod-*
  • EKS 클러스터: eks-dev, eks-stg, eks-prod
  • DB 인스턴스: 스테이징은 RDS 테스트 클래스 사용

🚀 03. 배포 전략 및 CI/CD

파이프라인 개요

개발자 → Git Push
         ↓
 GitHub Actions → 도커 빌드 & 이미지 Push
         ↓
     Helm 변경 → GitOps Repo 반영
         ↓
       Argo CD 자동 Sync

GitHub Actions

  • .github/workflows/deploy.yml
  • 주요 단계: Lint → Test → Build → Push → Notify

Argo CD

  • App of Apps 패턴 사용
  • 자동/수동 Sync 제어
  • Health Check 기반 롤백

배포 전략

  • Staging: 롤링 배포
  • Production: 블루그린 or 카나리

📦 04. Docker 및 컨테이너 관리

Dockerfile 표준

  • 멀티 스테이지 빌드
  • 취약점 스캔: Trivy, Grype

이미지 관리

  • 레지스트리: AWS ECR or GitHub Packages
  • 태깅 정책: latest, dev-<hash>, release-<ver>

실행환경

  • EKS + Helm + ArgoCD 연동
  • 리소스 제한: CPU/Memory 설정 명확히

🏗️ 05. IaC 및 Terraform

디렉토리 구조 예시

terraform/
├── modules/
│   ├── vpc/
│   └── eks/
├── environments/
│   ├── dev/
│   └── prod/
└── backend.tf

모듈화 전략

  • 재사용 가능한 공통 모듈 구성
  • locals / outputs 활용

상태 관리

  • 원격 backend: S3 + DynamoDB
  • 환경별 workspace 사용

🩺 06. 모니터링 및 관측성

주요 도구

목적 도구
Metrics Prometheus, CloudWatch
Logs Loki, EFK stack
Tracing Tempo, Jaeger

알림 시스템

  • Slack 연동
  • AlertManager 룰 정의

🔒 07. 보안 설계

IAM 정책

  • 최소 권한 원칙 (Least Privilege)
  • Role 기반 접근 제어 (RBAC)

Secrets 관리

  • AWS Secrets Manager or SOPS
  • GitHub Actions에 Mask 처리

네트워크 보안

  • 보안 그룹 제한
  • DB 접근은 Bastion Host 통해서만

💥 08. 재해 복구 및 백업

복구 전략

  • RTO: 1시간 내
  • RPO: 5분 내

백업 구성

  • RDS 자동 백업
  • S3 버전 관리 + 수명 주기 정책
  • Terraform 상태파일 주기적 백업

시나리오 예시

  • DB 장애 → 스냅샷 복원 후 재연결
  • 리전 장애 → DR 리전에 템플릿 기반 재구성

🛠️ 09. 운영 가이드

신규 서비스 배포

  1. GitHub PR 생성
  2. 리뷰 및 머지
  3. CI → CD 파이프라인 자동 실행

인프라 변경 절차

  • Terraform 변경 PR → plan 결과 확인 → 머지 후 apply

장애 대응

  • Prometheus Alert → Slack
  • kubectl logs + describe로 1차 확인
  • 필요 시 롤백

🧰 10. 사용 도구 및 버전

도구 버전 설명
Terraform 1.6.x IaC 구성
Helm 3.x Kubernetes 패키징
Argo CD 2.x GitOps CD
GitHub Actions 최신 CI / 릴리스 자동화
Prometheus 2.x 모니터링 시스템
Grafana 9.x 시각화 대시보드
Trivy 최신 컨테이너 이미지 보안 스캔

📎 참고 링크

⚠️ **GitHub.com Fallback** ⚠️