Cloud wiki - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

๐ŸŒ… ํ”„๋กœ์ ํŠธ ๋ฆด๋ฆฌ์ฆˆ ๊ธฐ๋ก ๋ฐ ์œ„ํ‚ค ๋ฉ”์ธ ํŽ˜์ด์ง€

์ด ๋ฌธ์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ฐ ์Šคํ”„๋ฆฐํŠธ ๋ฆด๋ฆฌ์ฆˆ ๊ธฐ๋ก์„ ์ •๋ฆฌํ•œ ๋ฉ”์ธ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
์•„๋ž˜ ๋ฆด๋ฆฌ์ฆˆ ๋งํฌ๋ฅผ ํ†ตํ•ด ๊ฐ ๋‹จ๊ณ„์—์„œ ์–ด๋–ค ์ž‘์—…์ด ์ง„ํ–‰๋˜์—ˆ๊ณ , ์–ด๋–ค ์ธํ”„๋ผ/๋ณด์•ˆ/์šด์˜ ์š”์†Œ๊ฐ€ ๋„์ž…๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ (Table of Contents)

๋‹จ๊ณ„๋ณ„ ์ž‘์—…

๊ด€๋ จ ๋ฌธ์„œ

Ongi ํ”„๋กœ์ ํŠธ์˜ ์ธํ”„๋ผ ์ „๋žต๊ณผ ๊ธฐ์ˆ  ์„ ํƒ์˜ ์ „๊ฐœ ๊ณผ์ •์„ ๋‹ด์€ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ฆด๋ฆฌ์ฆˆ ๋‹จ๊ณ„๋งˆ๋‹ค ์„œ๋น„์Šค ๊ทœ๋ชจ, ์šด์˜ ํšจ์œจ์„ฑ, ์•ˆ์ •์„ฑ ์š”๊ตฌ์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ๊ธฐ์ˆ ๊ณผ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•˜๊ณ  ๊ฒ€์ฆํ•œ ๊ทผ๊ฑฐ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

TroubleShooting && Test

Ongi ํ”„๋กœ์ ํŠธ์˜ ์šด์˜ ์•ˆ์ •์„ฑ ๋ฐ ํ’ˆ์งˆ ๋ณด์ฆ์„ ์œ„ํ•œ ์šด์˜ยท๊ฒ€์ฆ ๋งค๋‰ด์–ผ์ž…๋‹ˆ๋‹ค. โ€ข ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๊ฐ€์ด๋“œ ์žฅ์•  ์ฆ์ƒ๋ณ„ ์ง„๋‹จ ์ ˆ์ฐจ, ๋กœ๊ทธ ๋ถ„์„ยท๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋ฒ•, ์žฌํ˜„ ํ…Œ์ŠคํŠธ์™€ ์›์ธ ๊ทœ๋ช… ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•˜๊ณ , ๊ณผ๊ฑฐ ์‚ฌ๋ก€๋ณ„ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์Šคํฌ๋ฆฝํŠธ์™€ ํ•จ๊ป˜ ๊ธฐ๋กํ•˜์—ฌ ์‹ ์†ํ•œ ๋ณต๊ตฌ ์—ญ๋Ÿ‰์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค. โ€ข ํ…Œ์ŠคํŠธ ํŽ˜์ด์ง€ ์•ˆ๋‚ด ์œ ๋‹›ยทํ†ตํ•ฉยท๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ, ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ, ์„ฑ๋Šฅ ์ธก์ • ์ง€ํ‘œ, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ฐฉ์•ˆ์„ ๋ฆด๋ฆฌ์ฆˆ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•˜๊ณ , ์ฃผ์š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์™€ ์‹ค์ œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ(๋กœ๊ทธยท๊ทธ๋ž˜ํ”„ ํฌํ•จ)๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ์„œ๋น„์Šค ์ถœ์‹œ ์ „ํ›„ ํ’ˆ์งˆ ๋ณด์ฆ์˜ ๊ทผ๊ฑฐ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.


๋ฆด๋ฆฌ์ฆˆ ์š”์•ฝ

๋ฆด๋ฆฌ์ฆˆ ์ฃผ์š” ๋ชฉํ‘œ ํ•ต์‹ฌ ์ž‘์—… ์™„๋ฃŒ์ผ
1์ฐจ ๋ฆด๋ฆฌ์ฆˆ MVP ๊ธฐ์ดˆ ๊ธฐ๋Šฅ ๋ฐฐํฌ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค, ๊ธฐ๋ณธ ๋ชจ๋‹ˆํ„ฐ๋ง, ๋กœ๊ทธ ์ˆ˜์ง‘ Sprint 3 ์™„๋ฃŒ ์‹œ์ 
2์ฐจ ๋ฆด๋ฆฌ์ฆˆ Kubernetes ์ „ํ™˜ EKS ํด๋Ÿฌ์Šคํ„ฐ ๋„์ž…, ์„œ๋น„์Šค ์ด์ „, Helm ๋ฐฐํฌ Sprint 6 ์™„๋ฃŒ ์‹œ์ 
3์ฐจ ๋ฆด๋ฆฌ์ฆˆ ์žฅ์•  ๋Œ€์‘ ๋ฐ ์šด์˜ ์ž๋™ํ™” ์žฅ์•  ํ…Œ์ŠคํŠธ, ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค, ์šด์˜ ๋ฌธ์„œํ™” Sprint 8 ์™„๋ฃŒ ์‹œ์ 
4์ฐจ ๋ฆด๋ฆฌ์ฆˆ ์šด์˜ ์ตœ์ ํ™” ๋ฐ ๋ณดํ˜ธ ๋น„์šฉ/์„ฑ๋Šฅ ์ตœ์ ํ™”, ํƒœ๊น…, ๊ธฐ์ˆ  ๋ถ€์ฑ„ ํ•ด์†Œ Sprint 9 ์™„๋ฃŒ ์‹œ์ 

๐Ÿ™Œ๐Ÿป ๋ฆด๋ฆฌ์ฆˆ ์ƒ์„ธ

1์ฐจ ๋ฆด๋ฆฌ์ฆˆ - ๋‹จ์ผ ์ธ์Šคํ„ด์Šค ๊ธฐ๋ฐ˜ MVP

  • ์ž‘์—… ์Šคํ”„๋ฆฐํŠธ ๋ฒ”์œ„: Sprint 1 ~ Sprint 3
  • ๋ฆด๋ฆฌ์ฆˆ ์‹œ์ : Sprint 4
  • ์ฃผ์š” ์ž‘์—…:
    • Big Bang ๋ฐฐํฌ ๊ตฌ์กฐ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„
      • VM instance (nginx + springboot + mysql)
      • VM instance (GPU, ai model)
      • VM instance (CPU, ai model)
      • Google Cloud Storage
      • ๋‹จ์ผ ์ธ์Šคํ„ด์Šค CI/CD ์„ค๊ณ„
    • Cloud Monitoring(GCP)์„ ํ†ตํ•œ ํŠธ๋ž˜ํ”ฝ ๋ชจ๋‹ˆํ„ฐ๋ง
    • k6๋ฅผ ํ™œ์šฉํ•œ ๋ณ‘๋ชฉ ์ง€์  ๋ถ„์„ ๋ฐ ์ตœ์ ํ™”
  • ์•„ํ‚คํ…์ฒ˜: GCE + GCS

โžก๏ธ [1์ฐจ ๋ฆด๋ฆฌ์ฆˆ ์ƒ์„ธ ํŽ˜์ด์ง€]


2์ฐจ ๋ฆด๋ฆฌ์ฆˆ - Docker ๊ธฐ๋ฐ˜ 3-Tier

  • ์ž‘์—… ์Šคํ”„๋ฆฐํŠธ ๋ฒ”์œ„: Sprint 4 ~ Sprint 6
  • ๋ฆด๋ฆฌ์ฆˆ ์‹œ์ : Sprint 7
  • ์ฃผ์š” ์ž‘์—…:
    • Docker ๊ธฐ๋ฐ˜ 3-Tier ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐ ๊ตฌ์„ฑ
    • GitHub Actions ๋˜๋Š” CodePipeline์„ ํ†ตํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•
    • HTTPS ์ธ์ฆ์„œ(ACM), ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ(Route53)
    • S3 ์ •์  ํŒŒ์ผ ์ €์žฅ ๋ฐ Life Cycle ๊ตฌ์„ฑ
    • VPC / Subnet ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ
    • SQL Injection ํ…Œ์ŠคํŠธ, ๋ณด์•ˆ ๊ทธ๋ฃน ๋ฐ IAM ๊ถŒํ•œ ์ตœ์ ํ™”
    • ๋กœ๊ทธ ์ˆ˜์ง‘, ์žฅ์•  ๊ฐ์ง€ ์•Œ๋žŒ ์„ค์ • (Discord Webhook)
  • ๋„์ž… ๊ธฐ์ˆ : Docker, GitHub Actions, ACM, Route53, S3, IAM

โžก๏ธ [2์ฐจ ๋ฆด๋ฆฌ์ฆˆ ์ƒ์„ธ ํŽ˜์ด์ง€]


3์ฐจ ๋ฆด๋ฆฌ์ฆˆ - EKS ์ „ํ™˜ ๋ฐ Helm ๊ธฐ๋ฐ˜ ๋ฐฐํฌ

  • ์ž‘์—… ์Šคํ”„๋ฆฐํŠธ ๋ฒ”์œ„: Sprint 7 ~ Sprint 8
  • ๋ฆด๋ฆฌ์ฆˆ ์‹œ์ : Sprint 9
  • ์ฃผ์š” ์ž‘์—…:
    • ๋‹จ์ผ VPC ๊ธฐ๋ฐ˜ Amazon EKS ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•
    • ๊ธฐ์กด ์„œ๋น„์Šค Kubernetes๋กœ ์ด์ „
    • Helm Chart ๊ธฐ๋ฐ˜ ๋ฐฐํฌ ์ž๋™ํ™”
    • Transit Gateway ๊ตฌ์„ฑ, EKS ๋‹ค์ค‘ VPC ํ™•์žฅ
  • ๋„์ž… ๊ธฐ์ˆ : EKS, Helm, Ingress-Nginx, ECR, ServiceAccount, TGW

โžก๏ธ [3์ฐจ ๋ฆด๋ฆฌ์ฆˆ ์ƒ์„ธ ํŽ˜์ด์ง€]


4์ฐจ ๋ฆด๋ฆฌ์ฆˆ - ์šด์˜ ์ตœ์ ํ™” ๋ฐ ๋ฆฌ์†Œ์Šค ๋ณดํ˜ธ

  • ์ž‘์—… ์Šคํ”„๋ฆฐํŠธ ๋ฒ”์œ„: Sprint 9
  • ๋ฆด๋ฆฌ์ฆˆ ์‹œ์ : Sprint 10
  • ์ฃผ์š” ์ž‘์—…:
    • ๋น„์šฉ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ S3 Lifecycle, EC2 ์˜ˆ์•ฝ ์ธ์Šคํ„ด์Šค ์ ์šฉ
    • ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ๋น„์šฉ ๋ถ„์„ ์ฒด๊ณ„ํ™”
    • ๋ฆฌ์†Œ์Šค ์ž ๊ธˆ(Locking), ๊ธฐ์ˆ  ๋ถ€์ฑ„ ์ •๋ฆฌ

โžก๏ธ [4์ฐจ ๋ฆด๋ฆฌ์ฆˆ ์ƒ์„ธ ํŽ˜์ด์ง€]


๐Ÿ—“๏ธ ์Šคํ”„๋ฆฐํŠธ