Skip to content

Latest commit

ย 

History

History
126 lines (93 loc) ยท 4.16 KB

File metadata and controls

126 lines (93 loc) ยท 4.16 KB

์ธํ”„๋ผ ๋ฌธ์„œ ์ธ๋ฑ์Šค

Finders API ์„œ๋ฒ„์˜ ์ธํ”„๋ผ ์šด์˜ ๋ฌธ์„œ ๋ชจ์Œ

๋ฌธ์„œ ๋ชฉ๋ก

๋ฌธ์„œ ์„ค๋ช… ๋Œ€์ƒ
INFRASTRUCTURE.md ์ „์ฒด ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜ (VPC, GCE, Cloud SQL, GCS, Cloud Run, CI/CD ๋“ฑ) ๋ชจ๋“  ๊ฐœ๋ฐœ์ž
SECRET_MANAGEMENT.md GCP Secret Manager ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž
GCP_LOGGING_GUIDE.md GCP Cloud Logging ํ™•์ธ ๊ฐ€์ด๋“œ DevOps
IAC_TERRAFORM_INTRO.md IaC/Terraform ๊ฐœ๋… ํ•™์Šต ๋ชจ๋“  ๊ฐœ๋ฐœ์ž
TERRAFORM_OPERATIONS.md Terraform ์šด์˜ ๊ฐ€์ด๋“œ (plan/apply, ์•ˆ์ „ ์ˆ˜์น™) DevOps
GCP_PROJECT_MIGRATION_RUNBOOK.md GCP ํ”„๋กœ์ ํŠธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋Ÿฐ๋ถ (Secrets ๊ธฐ๋ฐ˜ ์ „ํ™˜) DevOps

Terraform ์šด์˜

๊ฐœ์š”

Finders ์ธํ”„๋ผ๋Š” ์ „๋Ÿ‰ Terraform์œผ๋กœ ์ฝ”๋“œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธํ”„๋ผ ๋ณ€๊ฒฝ์€ PR โ†’ CI/CD๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค

์นดํ…Œ๊ณ ๋ฆฌ ๋ฆฌ์†Œ์Šค
Networking VPC, 3 Subnets, 6 Firewall Rules, Cloud Router, Cloud NAT, Static IP
Compute GCE (finders-server)
Database Cloud SQL (finders-db), 2 DBs
Storage GCS (finders-487717-public, finders-487717-private)
Registry Artifact Registry (finders-docker, finders-image)
Serverless Cloud Run (img-resizer)
Security Secret Manager (2), WIF Pool + Provider, IAM Bindings
Monitoring Cloud Monitoring Dashboard
External Cloudflare Tunnel

๋น ๋ฅธ ์‹œ์ž‘

# 1. Terraform ์„ค์น˜ (1.5.0+)
brew install terraform

# 2. GCP ์ธ์ฆ
gcloud auth application-default login

# 3. ๋ณ€์ˆ˜ ์„ค์ •
cd infra
cp terraform.tfvars.example terraform.tfvars
# terraform.tfvars ํŽธ์ง‘

# 4. ์ดˆ๊ธฐํ™” & Plan
terraform init
terraform plan  # No changes ํ™•์ธ

CI/CD

  • PR ์ƒ์„ฑ ์‹œ: terraform plan ์ž๋™ ์‹คํ–‰ โ†’ PR ์ฝ”๋ฉ˜ํŠธ๋กœ ๊ฒฐ๊ณผ ํ‘œ์‹œ
  • develop ๋จธ์ง€ ์‹œ: terraform apply ์ž๋™ ์‹คํ–‰
  • Workflow: .github/workflows/terraform.yml

์ฃผ์˜์‚ฌํ•ญ

  • โš ๏ธ ๋กœ์ปฌ์—์„œ terraform apply ๊ธˆ์ง€ (CI/CD๋งŒ ์‚ฌ์šฉ)
  • โš ๏ธ prevent_destroy ์ œ๊ฑฐ ๊ธˆ์ง€
  • โš ๏ธ terraform.tfvars ์ปค๋ฐ‹ ๊ธˆ์ง€

๋น ๋ฅธ ๋งํฌ

์™ธ๋ถ€ ๋Œ€์‹œ๋ณด๋“œ

์ƒํƒœ ํŽ˜์ด์ง€


๊ธด๊ธ‰ ์ƒํ™ฉ

์„œ๋น„์Šค ์žฅ์•  ์‹œ ์ˆœ์„œ

  1. Health Check ํ™•์ธ
  2. GCP Console โ€” GCE, Cloud SQL ์ƒํƒœ ํ™•์ธ
  3. Cloudflare Dashboard โ€” Tunnel ์ƒํƒœ ํ™•์ธ
  4. SSH ์ ‘์† ํ›„ Docker ์ƒํƒœ ํ™•์ธ
  5. ํŒ€์— ์•Œ๋ฆผ

์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ

์ฆ์ƒ ์›์ธ ํ•ด๊ฒฐ
์‚ฌ์ดํŠธ ์ ‘์† ์•ˆ ๋จ Cloudflare Tunnel ์ค‘๋‹จ SSH ํ›„ sudo docker compose -f docker-compose.infra.yml restart cloudflared
DB ์—ฐ๊ฒฐ ์‹คํŒจ Cloud SQL ์ค‘๋‹จ GCP Console์—์„œ ์ธ์Šคํ„ด์Šค ํ™•์ธ
SSH ์ ‘์† ์•ˆ ๋จ IAP ๊ถŒํ•œ ๋˜๋Š” GCE ์ค‘์ง€ GCP Console์—์„œ ์ธ์Šคํ„ด์Šค/IAM ํ™•์ธ
Docker ์ด๋ฏธ์ง€ pull ์‹คํŒจ Cloud NAT ๋ฌธ์ œ GCP Console์—์„œ NAT ์ƒํƒœ ํ™•์ธ

ํŒŒ์ผ ๊ตฌ์กฐ

docs/
โ”œโ”€ infra/
โ”‚   โ”œโ”€ README.md                  (์ด ํŒŒ์ผ)
โ”‚   โ”œโ”€ SECRET_MANAGEMENT.md       (๋น„๋ฐ€ ์ •๋ณด ๊ด€๋ฆฌ)
โ”‚   โ”œโ”€ GCP_LOGGING_GUIDE.md       (๋กœ๊น…)
โ”‚   โ”œโ”€ IAC_TERRAFORM_INTRO.md     (IaC/Terraform ๊ฐœ๋…)
โ”‚   โ”œโ”€ TERRAFORM_OPERATIONS.md    (Terraform ์šด์˜)
โ”‚   โ””โ”€ GCP_PROJECT_MIGRATION_RUNBOOK.md (ํ”„๋กœ์ ํŠธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋Ÿฐ๋ถ)
โ”‚
โ””โ”€ architecture/
    โ”œโ”€ INFRASTRUCTURE.md          (์ „์ฒด ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜)
    โ”œโ”€ ARCHITECTURE.md            (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ)
    โ””โ”€ ERD.md                     (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)

๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ: 2026-02-11