Cloud Wiki Main - 100-hours-a-week/3-team-ssammu-wiki GitHub Wiki
โ๏ธ Cloud Infrastructure Wiki
์ด ์ํค๋ ์๋น์ค์ ํด๋ผ์ฐ๋ ์ธํ๋ผ ์ํคํ
์ฒ, CI/CD ์๋ํ, ๋ณด์, ์ด์, IaC ๋ฑ ์ ๋ฐ์ ์ธ ๊ตฌ์ฑ์์๋ฅผ ๋ฌธ์ํํ ๊ณต๊ฐ์
๋๋ค.
๊ฐ ํญ๋ชฉ์ ์ค๋ฌด ์ ์ฉ์ ์ ์ ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ค์ ๊ตฌ์ฑ ์ ์ฐธ๊ณ ๊ฐ๋ฅํ ์ ์ฑ
, ๊ตฌ์ฑ ์์, ๋๊ตฌ ๊ธฐ์ค, ์๋๋ฆฌ์ค ๋ฑ์ ํฌํจํฉ๋๋ค.
๐งญ ํ๋ก์ ํธ ๋ฐฉํฅ์ฑ
- ์ด๊ธฐ: GCP ๊ธฐ๋ฐ ๋จ์ผ VM์ ๋ชจ๋ ๊ตฌ์ฑ ์๋ ๋ฐฐํฌ (Big Bang)
- ์ค๊ธฐ: Docker ๊ธฐ๋ฐ ์ปจํ
์ด๋ํ ๋ฐ GitHub Actions ์ค์ฌ์ ์๋ํ ๊ตฌ์ถ(AWS + GCP)
- ๊ณ ๋ํ: Argo CD + Helm ๊ธฐ๋ฐ GitOps, AWS EKS ๊ธฐ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ
- ์ฅ๊ธฐ ๋ชฉํ: ํ ์คํ ๋ฉ์ด์
์ธํ๋ผ + ๊ณ ๊ฐ์ฉ์ฑ ์ํคํ
์ฒ + ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ํ๊ฒฝ ๊ตฌ์ถ
๐งฑ ๋จ๊ณ๋ณ ์ค๊ณ ๋ฌธ์
- GCP VM ์๋ ๋ฐฐํฌ ๊ตฌ์ฑ (FE/BE/AI ํตํฉ)
- Nginx ์ค์น, ๋๋ฉ์ธ ์ฐ๊ฒฐ, Cloud DNS ๊ตฌ์ฑ
- deploy.sh, rollback.sh ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ์์์
์ด์
- GitHub Actions ๊ธฐ๋ฐ ์๋ํ๋ Lint/Build/Test ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ
- ๋ธ๋์น ์ ๋ต์ ๋ฐ๋ฅธ ์กฐ๊ฑด๋ถ ์คํ
- GCS์ ์ํฐํฉํธ ์
๋ก๋ โ CD์ ์ฐ๋
- GCE ๋ด๋ถ Self-Hosted Runner ์ค์น
- deploy.sh๋ก GCS์์ ์๋ ๋ค์ด๋ก๋ ํ ์คํ
- ์ด์ํ๊ฒฝ ๊ธฐ์ค ์๋ํ๋ ์๋น์ค ๊ต์ฒด ๋ฐ ์ฌ์์
- AWS(ํ๋ก ํธ/๋ฐฑ์๋), GCP(ChromaDB + FastAPI)๋ก ์๋น์ค ๋ถ์ฐ โ Docker Compose ๋ฐ ๋คํธ์ํฌ ์ ์ ๊ธฐ๋ฐ์ ํ๊ฒฝ ์ผ๊ด์ฑ ํ๋ณด
- GitHub Actions + ECR๋ก CI/CD ์๋ํ โ ํ๊ทธ ์ ๋ต ๊ธฐ๋ฐ ์ด๋ฏธ์ง ๊ด๋ฆฌ ๋ฐ Slack ์ฐ๋
docker-compose pull โ up -d
๋ฅผ ์ค์ฌ์ผ๋ก ๋ฌด์ค๋จ ๋ฐฐํฌ + ํ๊ทธ ๊ธฐ๋ฐ ์๋ ๋กค๋ฐฑ ์คํฌ๋ฆฝํธ ์ ๊ณต
- AWS(์์ปค๋
ธ๋), GCP(๋ง์คํฐ๋
ธ๋)์ kubeadm ๊ธฐ๋ฐ Kubernetes ํด๋ฌ์คํฐ ๊ตฌ์ฑ
- Calico ๋คํธ์ํฌ, containerd ๋ฐํ์ ์ ์ฉ ๋ฐ NGINX Ingress ๊ธฐ๋ฐ ์ธ๋ถ ์ ๊ทผ ๊ตฌ์ฑ
- AWS ALB, Route53, WAF ์ฐ๊ณ ๋ฐ ArgoCD + GitHub Actions๋ก ๋ฐฐํฌ ์๋ํ, ๋ณด์ยท๋ชจ๋ํฐ๋ง ์ฒด๊ณ ๊ตฌ์ถ
- AWS EKS๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Kubernetes ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๊ณ , ์ด์ ์๋ํ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑยทํ์ฅ์ฑ์ ํ๋ณด
- GitHub Actions์ ArgoCD๋ฅผ ํตํ GitOps ๊ธฐ๋ฐ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌํํ์ฌ ๋ฌด์ค๋จ ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ์ง์
- FluentBit ๊ธฐ๋ฐ ๋ก๊ทธ ์์ง ๋ฐ CloudWatch/Kinesis/S3 ์ฐ๋์ผ๋ก ๋ก๊ทธ ์ฅ๊ธฐ ๋ณด๊ด ๋ฐ ๋ชจ๋ํฐ๋ง ์ฒด๊ณ ๊ตฌ์ถ
๐ 01. ์ํคํ
์ฒ ๊ฐ์
- GCP ๊ธฐ๋ฐ ์ด๊ธฐ ๋จ์ผ VM ๊ตฌ์ฑ โ EKS ๊ธฐ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ ํ
- ๊ณตํต ์ธํ๋ผ ์์: VPC, Subnet, IGW, Bastion, RDS, S3
- ๋คํธ์ํฌ ๊ตฌ์กฐ: Public/Private Subnet ๋ถ๋ฆฌ, ๋ณด์ ๊ทธ๋ฃน ๊ตฌ์ฑ
- ์๋น์ค ํ๋ฆ: Load Balancer โ ์ปจํ
์ด๋ ์๋น์ค โ DB/API ํธ์ถ
๐งช 02. ํ๊ฒฝ ๊ตฌ์ฑ
ํ๊ฒฝ |
๋ชฉ์ |
ํน์ง |
Dev |
๊ฐ๋ฐ |
๋น ๋ฅธ ์คํ, ๋ธ๋์น ๋จ์ ๋ฐฐํฌ |
Prod |
์ด์ |
๊ณ ๊ฐ์ฉ์ฑ, ๋ณด์ ๊ฐํ, ์ค์ฌ์ฉ์ ๋์ |
- ์์ ๋ฆฌ์์ค:
s3://careerbee-dev-*
, eks-stg
, rds-prod
๐ 03. ๋ฐฐํฌ ์ ๋ต ๋ฐ CI/CD
ํ์ดํ๋ผ์ธ ๊ฐ์
๋ฐฐํฌ ํ๋ก์ฐ
๊ฐ๋ฐ์ Git Push
โ
GitHub Actions (CI)
- Lint
- Test
- Build
- Docker ์ด๋ฏธ์ง Build & Push
โ
Helm Chart ์
๋ฐ์ดํธ
โ
Argo CD ์๋ ๋๊ธฐํ (GitOps)
โ
EKS์ ์๋ ๋ฐฐํฌ
๋จ๊ณ |
๋๊ตฌ |
๊ธฐ๋ฅ |
CI |
GitHub Actions |
์ฝ๋ ํ์ง ์ ๊ฒ, ์ด๋ฏธ์ง ๋น๋ |
CD |
Argo CD |
GitOps ๋ฐฉ์ ๋ฐฐํฌ, Health ๊ธฐ๋ฐ ๋กค๋ฐฑ |
ํจํค์ง |
Helm |
๋ฒ์ ๊ด๋ฆฌ, ํ๊ฒฝ ๋ณ ์ค์ ๋ถ๋ฆฌ |
๋ฐฐํฌ ์ ๋ต
- Develop: Rolling update
- Production: Blue-Green ๋๋ Canary
๐ฆ 04. IaC ๊ตฌ์ฑ ์ ๋ต (Terraform)
- ๊ตฌ์กฐ:
modules
, v1
, backend.tf
๋ก ์ญํ ๋ถ๋ฆฌ
- ์ํ ๊ด๋ฆฌ: S3 + DynamoDB ๊ธฐ๋ฐ remote backend ๊ตฌ์ฑ
- ๋ฒ์ ๋ณ workspace ๋ถ๋ฆฌ ์ด์
terraform/
โโโ modules/
โ โโโ vpc/
โ โโโ eks/
โโโ v1/
โ โโโ dev/
โ โโโ prod/
โโโ v2/
โ โโโ dev/
โ โโโ prod/
...
โโโ backend.tf
๐ฉบ 05. ๋ชจ๋ํฐ๋ง ๋ฐ ๋ถํํ
์คํธ ๊ตฌ์ฑ
๋ชจ๋ํฐ๋ง
๋ชฉ์ |
๋๊ตฌ |
Metrics |
GCP Cloud Monitoring, Scouter |
Logs |
Sentry |
Alerting |
Sentry + Discord ์ฐ๋ |
๐ 06. ๋ณด์ ์ ์ฑ
- IAM ์ ์ฑ
์ต์ ๊ถํ ์์น ์ค์ (Least Privilege)
- Secrets ์ ์ฅ์ ๋ถ๋ฆฌ (SOPS or AWS Secrets Manager)
- VPC ๋ณด์ ๊ทธ๋ฃน ์ ํ + Bastion ์ ๊ทผ ํต์
- CloudFront, WAF ์ฐ๊ณํ IP/์ง์ญ๋ณ ์ฐจ๋จ ์ ์ฑ
์ ์ฉ
๐ฅ 07. ์ฅ์ ๋์ ๋ฐ ๋ฐฑ์
- RTO(๋ณต๊ตฌ ์๊ฐ) 1์๊ฐ, RPO(๋ณต๊ตฌ ์์ ) 5๋ถ ๋ชฉํ
- RDS ์ค๋
์ท ์๋ํ, S3 ๋ฒ์ ๊ด๋ฆฌ
- DR(์ฅ์ ๋ณต๊ตฌ) ์๋๋ฆฌ์ค: ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ๋ฆฌ์ ์ฌ๊ตฌ์ฑ
๐ ์ฐธ๊ณ ๋ฌธ์