1. Cloud Wiki - 100-hours-a-week/7-team-ddb-wiki GitHub Wiki

🌩️ Cloud Infrastructure Wiki

이 μœ„ν‚€λŠ” ν”„λ‘œμ νŠΈμ˜ ν΄λΌμš°λ“œ 인프라, CI/CD, IaC, λ³΄μ•ˆ 및 운영 κ΄€λ ¨ μ „λ°˜μ μΈ λ‚΄μš©μ„ λ¬Έμ„œν™”ν•œ κ³΅κ°„μž…λ‹ˆλ‹€. 각 μ„Ήμ…˜μ€ μ‹€μ œ ꡬ성 μ‹œ μ°Έκ³ ν•  수 μžˆλ„λ‘ λ‹€μ΄μ–΄κ·Έλž¨, 도ꡬ, μ •μ±… 등을 ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Cloud Repository



☁️ Cloud Infrastructure Design



πŸ“ 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 Branch μ „λž΅

git-branch

νŒŒμ΄ν”„λΌμΈ κ°œμš”

개발자 β†’ 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** ⚠️