GCP Architecture — Cloud Run + Cloud SQL GCP Architecture for Drop Dato: 2026-02-18 Region: europe-north1 (Finland — nærmest Norge) Kontekst: Migrering fra Fly.io shared-cpu-1x som takler ~25 samtidige brukere Nåværende Fly.io vs GCP — Sammenligning Tier 1: Minimum (Dev/Demo) — ~25 brukere Komponent Fly.io (nå) GCP ekvivalent GCP kostnad Compute shared-cpu-1x (256MB) Cloud Run: 1 vCPU, 512MB ~$0 (free tier) Database SQLite på Fly Volume Cloud SQL db-f1-micro (0.6GB, 10GB) ~$9/mnd Cache Ingen Ingen $0 Totalt ~$5/mnd ~$9/mnd Kapasitet ~25 samtidige ~25 samtidige Tier 2: Pilot (SpareBank 1 demo) — ~100 brukere Komponent GCP tjeneste Spesifikasjon Kostnad Compute Cloud Run 2 vCPU, 1GB RAM, min 1 instans ~$15/mnd Database Cloud SQL db-g1-small (1.7GB, 20GB SSD) ~$30/mnd Cache Memorystore Redis Basic 1GB ~$35/mnd CDN Cloud CDN 10GB egress ~$1/mnd Secrets Secret Manager 10 secrets ~$0 (free tier) Monitoring Cloud Monitoring Basic ~$0 (free tier) Totalt ~$81/mnd Kapasitet ~100-150 samtidige Tier 3: Produksjon (Ekte brukere) — ~500+ brukere Komponent GCP tjeneste Spesifikasjon Kostnad Compute Cloud Run 2 vCPU, 2GB RAM, min 2 instanser, auto-scale til 10 ~$50/mnd Database Cloud SQL Enterprise: 2 vCPU, 8GB RAM, 50GB SSD, HA ~$150/mnd Cache Memorystore Redis Standard 1GB (HA) ~$70/mnd CDN Cloud CDN + Load Balancer Global ~$25/mnd Secrets Secret Manager ~$0 Monitoring Cloud Monitoring + Logging ~$10/mnd Backup Automated DB backup ~$5/mnd Totalt ~$310/mnd Kapasitet ~500-1000 samtidige Cloud Run Pricing (Tier 1 region) Ressurs Pris Gratis tier CPU $0.000024/vCPU-sekund 180,000 vCPU-sek/mnd Minne $0.0000025/GiB-sekund 360,000 GiB-sek/mnd Forespørsler $0.40/million 2 millioner/mnd Egress $0.12/GB (etter 1GB gratis) 1 GB/mnd Gratis tier dekker: ~50 timer med 1 vCPU + 256MB — nok for dev/staging med lav trafikk. Viktig: Gratis tier gjelder kun us-central1/us-east1/us-west1. I europe-north1 faktureres ALT fra første bruk — men dekkes av $300 free trial credits. Cloud SQL PostgreSQL Pricing Instanstype vCPU RAM Pris (ca.) db-f1-micro Delt 0.6 GB ~$9/mnd db-g1-small Delt 1.7 GB ~$27/mnd db-custom-2-8192 2 8 GB ~$130/mnd Lagring: ~$0.17/GB/mnd (SSD) Backup: ~$0.08/GB/mnd Deploy-arkitektur på GCP ┌─────────────────────────────────────────────┐ │ Cloud CDN │ │ (statiske filer + caching) │ └──────────────────┬──────────────────────────┘ │ ┌──────────────────▼──────────────────────────┐ │ Cloud Run Service │ │ drop-web (Next.js standalone) │ │ Region: europe-north1 │ │ Auto-scale: 0-10 instanser │ │ CPU: 1-2 vCPU, RAM: 512MB-2GB │ └──────┬──────────────────┬───────────────────┘ │ │ ┌──────▼──────┐ ┌──────▼──────┐ │ Cloud SQL │ │ Memorystore │ │ PostgreSQL │ │ Redis │ │ europe-n1 │ │ (cache) │ │ Private IP │ │ Basic 1GB │ └─────────────┘ └─────────────┘ Alt: Serverless VPC Connector for private nettverk Migreringssteg Steg 1: Containerisering (dag 1) Dockerfile allerede eksisterer (Node 22 Alpine) Bytt SQLite → PostgreSQL via DATABASE_URL env Drop har allerede PostgreSQL-adapter i koden Steg 2: GCP-oppsett (dag 1-2) # Opprett prosjekt (allerede: project-72cd303f) gcloud config set project project-72cd303f-66e5-46ee-a4c # Aktiver APIer gcloud services enable run.googleapis.com gcloud services enable sqladmin.googleapis.com gcloud services enable secretmanager.googleapis.com gcloud services enable cloudbuild.googleapis.com # Cloud SQL instans gcloud sql instances create drop-db \ --database-version=POSTGRES_15 \ --tier=db-f1-micro \ --region=europe-north1 \ --storage-size=10GB \ --storage-type=SSD # Opprett database gcloud sql databases create drop --instance=drop-db # Opprett bruker gcloud sql users create drop-user \ --instance=drop-db \ --password= Steg 3: Deploy til Cloud Run (dag 2) # Build og push container gcloud builds submit --tag gcr.io/PROJECT_ID/drop-web # Deploy gcloud run deploy drop-web \ --image gcr.io/PROJECT_ID/drop-web \ --platform managed \ --region europe-north1 \ --allow-unauthenticated \ --memory 512Mi \ --cpu 1 \ --min-instances 0 \ --max-instances 5 \ --set-env-vars NODE_ENV=production \ --set-cloudsql-instances PROJECT_ID:europe-north1:drop-db \ --set-secrets DATABASE_URL=drop-db-url:latest Steg 4: DNS + SSL (dag 2) # Custom domain gcloud run domain-mappings create \ --service drop-web \ --domain drop-dev.alai.no \ --region europe-north1 Steg 5: CI/CD (dag 3) Cloud Build trigger fra GitHub push Automatisk deploy ved push til main/staging branch Build + deploy tar ~2-3 minutter Kostnadsdekning Kilde Beløp Dekker GCP Free Trial $300 (kr 2,884) Tier 1+2 i ~3 mnd GCP Startups Program (søkt) Inntil $100,000 Alt i 1-2 år Microsoft Founders Hub (søkt) Inntil $150,000 Azure Azure-migrering senere Med free trial alene: $300 / ~$9 per mnd (Tier 1) = 33 måneder for dev. Med Tier 2 ( $81/mnd) = ~3.7 måneder. Alternativt: Billigere cache enn Memorystore Memorystore Redis (1GB basic = ~$35/mnd) er dyrt for MVP. Alternativer: Alternativ Pris Fordel Upstash Redis (serverless) Gratis opptil 10K kommandoer/dag Null kostnad for dev In-memory cache i Cloud Run $0 Forsvinner ved restart Cloud Run + node-cache $0 Enkel, per-instans cache Anbefaling: Start uten Redis. Legg til Upstash eller in-memory cache først. Memorystore kun hvis vi trenger delt cache mellom instanser. Kapasitetsestimat per tier Tier Samtidige brukere Responstid (p95) Kostnad Tier 1 (db-f1-micro, 1 vCPU) ~25-30 <200ms ~$9/mnd Tier 2 (db-g1-small, 2 instanser) ~100-150 <500ms ~$80/mnd Tier 3 (2 vCPU DB, auto-scale) ~500-1000 <300ms ~$310/mnd PostgreSQL alene gir ~2-3x bedre concurrent performance enn SQLite pga. connection pooling og parallelle skrivinger.