GCP to AWS Migration Assessment

Comprehensive report — Migration ID 0611-0606 (internal run identifier) — Generated 2026-06-17
Target region: us-west-2 (from GCP us-west1)  |  Draft preview — not plugin output

Migration Decision Summary

Go, with conditions

Execution shape: Phased Migration · Complexity: Complex

By track: Compute + database: go. AI text: go. AI image: conditional — keeps the current provider via the adapter until the quality eval passes; does not gate the rest. Analytics: deferred — specialist track, parallel.

Confidence: Medium — full basis in What This Assessment Rests On.

Recommendation: Migrate, phased in dependency order — long pole is the database cutover, with a parallel AI track; estimated monthly savings of ~$763/month (-54%) combined infrastructure + AI, with BigQuery analytics deferred to a specialist engagement. Eligible for up to $5K AWS Activate credits.
Infra (Balanced vs GCP) -32% Est. $112/mo AWS vs $165/mo GCP infra
Combined AWS run rate (Balanced) -54% Est. $652/mo AWS vs $1,415/mo GCP (excl. BigQuery)
Migration shape Phased Long pole: database cutover; AI track runs parallel
AI projection -57% Est. ~$540/mo Bedrock vs $1,250/mo GCP AI
AWS Activate: Eligible for up to $5K in Founders credits. Apply for AWS Activate credits.
Specialist engagement required: BigQuery (sf_beach_analytics) has no automated AWS mapping from this plugin — engage your AWS account team or a data partner to evaluate the best analytics migration path. Analytics costs are excluded from the estimated AWS monthly run rate until that path is defined. This does not block phased migration of compute, database, storage, and AI; BigQuery planning runs in parallel on the timeline below.
How to read cost tiers: Premium, Balanced, and Optimized are pricing scenarios for the same mapped architecture — not three Terraform stacks. Generated terraform/ implements the Balanced baseline only.

Migrate if

Stay entirely if

What would flip this

Key decisions ahead

  1. Target region and deployment model (Fargate vs EKS)
  2. Database migration tooling and cutover window
  3. Bedrock model selection for gemini-2.5-flash and imagen-3.0-generate-001
  4. BigQuery analytics path with AWS account team or data partner

Next steps

  1. Review financial case and security posture with stakeholders
  2. Engage AWS account team for BigQuery analytics migration path
  3. Confirm Bedrock model access and quota in us-west-2
  4. Apply for AWS Activate Founders credits before ramping usage
  5. Schedule phased cutover per cluster creation order

Share With Your CFO

The one-paragraph version, ready to forward:

Estimated AWS Monthly Run Rate

Combined view of recurring infrastructure and AI cloud-service costs. BigQuery is excluded from both sides. This is not a total ownership-cost model: staffing, operations, support, and migration labor are not priced.

Combined estimated monthly costs, GCP vs AWS (BigQuery excluded).
Category GCP (current est.) AWS Balanced (est.) AWS Optimized (est.) Monthly Δ (Balanced)
Infrastructure $165 $112 $82 -$53
AI / ML workloads $1,250 $540 $34* -$710
Total (excl. BigQuery) $1,415 $652 $116* -$763 (-54%)
Annual (Balanced) $16,980 $7,824 — -$9,156

* Optimized AI assumes Nova Lite for text + Stable Image Core for images after A/B validation (see the optimized AI projection in Appendix D).

GCP infrastructure breakdown (baseline)

Current GCP monthly infrastructure spend by category.
CategoryMonthlySource
Compute (Cloud Run)$85preferences + inventory sizing
Database (Cloud SQL)$12db-f1-micro dev tier
Storage (GCS)$8beach images + build artifacts
Networking$45egress + load balancing est.
Other$15misc. platform services
Total$165excludes AI and BigQuery

Current Stack Overview

5 primary GCP services detected:

Infrastructure Cost Comparison

Three pricing scenarios for the same mapped architecture. The generated terraform/ implements the Balanced tier. The full per-service breakdown is in Appendix B.

Estimated monthly AWS infrastructure costs vs current GCP ($165/mo). Annual difference included.
Tier Est. Monthly AWS vs GCP ($165/mo) Annual difference vs Balanced, for this stack
Premium
Highest resilience / highest monthly estimate
$198 +20% (+$33) +$396 RDS Multi-AZ instead of single-AZ (+$21/mo) — removes the single-AZ assumption; Fargate provisioned headroom (+$12/mo)
Balanced
Default scenario; Terraform implements this tier
$112 -32% (-$53) -$636 — anchor; matches generated Terraform
Optimized
Spot, reservations, storage trade-offs assumed
$82 -50% (-$83) -$996 Drops NAT Gateway (-$18/mo) — tasks move to public subnets or VPC endpoints, a posture change, not just savings; assumes a 1-year Compute Savings Plan (-$12/mo)

Cost Optimization

Generated Terraform is Balanced on-demand (Est. $112/mo). Savings Plans and Reserved Instances are account-level purchases after you have a usage baseline. Do not add these rows on top of the Optimized tier (Est. $82/mo) — that tier already embeds illustrative Spot and 1-year Savings Plan assumptions.

How the estimated monthly run rate changes if this stack takes a commitment. Figures are incremental to Balanced on-demand.
Posture Est. monthly vs Balanced What you commit to
Balanced on-demand (this Terraform) Est. $112 — No term commitment. Pay list hourly rates.
Compute Savings Plan (1-year, no upfront) Est. $100 −$12 Covers Fargate after 30–90 days of Cost Explorer data.
Database Savings Plan (1-year, no upfront) Est. ~20% off RDS Typical ~20% on provisioned RDS Mutually exclusive with RDS Reserved Instances on the same workload.
Optimized composite (illustrative bound) Est. $82 −$30 Already includes Spot and 1-year Savings Plan assumptions. Use as a floor, not a sum of extra discounts.

Line-level targets are in Savings Plans and Reserved Instances.

Architecture Overview

High-level service mapping

GCP services mapped to AWS targets, with how each pairing was chosen.
GCP ServiceAWS ServiceHow we chose this
Cloud RunFargate + ALBStandard pairing
Cloud SQL PostgreSQLRDS PostgreSQL db.t4g.microTailored to your setup (single-AZ)
Cloud StorageS3Standard pairing
BigQueryDeferred — specialist engagementSpecialist required
Vertex AI / GeminiBedrock Claude Sonnet 5Tailored to your setup (quality priority)
Vertex AI ImagenBedrock Stable Image CoreTailored to your setup

Architecture diagram

Migration cluster order

  1. networking_vpc_us-west1_001 — firewall rules → security groups
  2. storage_gcs_us-west1_001 — beach images bucket
  3. storage_gcs_us_001 — Cloud Build artifacts
  4. database_sql_us-west1_001 — Cloud SQL → RDS
  5. compute_cloudrun_us-west1_001 — Cloud Run → Fargate
  6. Deferred: analytics_bigquery_us_001

Security Posture

The generated terraform/baseline.tf deploys an account-wide Tier 1 security baseline — CloudTrail audit logging, GuardDuty threat detection, IAM password policy, S3 public-access block, EBS default encryption, and AWS Budgets — for a $15/mo mid estimate (range $3–$30, ±25%). GuardDuty is the dominant cost at $13/mo after its 30-day free trial.

Full control-by-control detail, GCP equivalents, and the GCP→AWS gap analysis are in Appendix E and Appendix F.

Compliance add-on (not applicable): No SOC 2, PCI, HIPAA, or FedRAMP declared in your migration preferences. If compliance is required later, add AWS Config + Security Hub (~$3–$25/mo additional per plugin estimates).

Migration Shape

Infrastructure migration (phased, in dependency order)

Phased infrastructure migration schedule.
OrderPhaseActivities
1SetupVPC, IAM, security baseline, CI/CD for Terraform, Bedrock model access
2PoCDeploy networking + storage clusters; smoke test connectivity
3Infrastructure DeploymentRDS, Fargate, ALB; cross-cluster security groups
4Data MigrationCloud SQL → RDS replication via Database Migration Service (DMS); GCS → S3 sync
5CutoverWeekly maintenance window; DNS/traffic switch
6ValidationCost validation; GCP teardown planning

AI migration (parallel track)

Parallel AI migration schedule.
OrderPhaseActivities
1Bedrock setupEnable model access, IAM role, provider adapter with feature flag
2Staging validationA/B comparison, prompt tuning, image quality review
3Production rollout10% → 50% → 100% traffic; monitor cost and latency

Duration drivers: database replication and cutover (binding), cross-cluster security groups, parallel AI evaluation per model. Stage order and go/no-go gates carry the schedule; the plugin quotes no week or hour estimates (uncalibrated).

Cutover strategy: maintenance-window-weekly  |  Rollback: revert DNS to GCP Cloud Run; keep RDS read replica 48h

Top Risks

Highest-severity migration risks and mitigations.
RiskSeverityMitigation
BigQuery AWS target not yet selectedMediumEngage AWS account team to define the analytics migration path; does not block phased migration of compute, database, and AI
Database replication lag at cutoverMediumDMS with lag monitoring; maintenance window cutover
Public S3 bucket securityMediumAdd CloudFront with Origin Access Identity (OAI); restrict direct S3 public access post-migration
Subjective image quality (Imagen → Stable Image Core)MediumHuman eval before cutover; feature-flag rollback
Claude cost vs Nova Lite if quality bar lowerMediumA/B test; model downsizing saves ~$506/mo if Nova Lite sufficient

What This Assessment Rests On

Assumptions applied by default — settings you never confirmed; each one shifts the numbers as described:

Settings resolved by documented default rather than your answer or your Terraform.
SettingAssumed valueWhat it decides
Database availabilityMulti-AZAutomatic failover; roughly 2x single-AZ database cost — confirm or compare a single-AZ scenario
AI priorityBalancedSonnet-class default model for the Bedrock mapping
Cloud Run trafficConstant 24/7Conservative (higher) AWS compute estimate

Confidence: Medium — some material inputs assumed. Measured: GCP billing baseline ($165/mo infra), Cloud SQL disk size (10 GB). Assumed: database availability, Cloud Run traffic pattern. Unknown: none.

Pricing provenance: Estimates based on cached AWS pricing (2026-03-07), accuracy ±5–10%. Cross-checked against the AWS Pricing Calculator for the Balanced scenario.

Assumptions, Exclusions & Validation

Pricing confidence

Pricing source and confidence band by cost domain.
DomainSourceConfidenceLast updated
InfrastructureCached AWS pricing±5–10%2026-05-20 (22 days old, not stale)
Security baselineCached per-unit rates±25%us-east-1 reference, 2026-05-04
ObservabilityHeuristic volume±30%Based on dev-tier assumptions
AI / BedrockCached model rates±15–25%Token volume from preferences (medium)

Exclusions

Terraform validation

validation-report.json: Status passed — fmt, init, and validate all passed. Provider: hashicorp/aws v5.100.0. Generated stack aligns with Balanced cost tier.

Design warnings

Appendix: Detailed Migration Analysis

Expanded sections sourced from migration JSON artifacts and generated Terraform

Appendix A — Service Recommendations

Cluster: networking_vpc_us-west1_001

4 firewall rules → Security Group rules — all Standard pairing

  • default-allow-icmp, default-allow-internal, default-allow-rdp, default-allow-ssh

Cluster: storage_gcs_us-west1_001

GCS sf-beach-app-beach-images → S3 Standard pairing

Public IAM (allUsers objectViewer) → S3 bucket policy. Tailored to your setup

Why this mapping?
  • Eliminators: pass
  • Operational model: S3 bucket policy
  • User preference: single-AZ dev
  • Feature parity: public read
  • Cluster context: beach_images
  • Simplicity: bucket policy

Cluster: storage_gcs_us_001

GCS sf-beach-app_cloudbuild → S3 (build artifacts) Standard pairing

Recommend CodeBuild/CodePipeline for CI replacement.

Cluster: database_sql_us-west1_001

Cloud SQL sf-beach-db (PostgreSQL 15, db-f1-micro, ZONAL) → RDS db.t4g.micro single-AZ Tailored to your setup

Cloud SQL client IAM → RDS IAM auth policy on ECS task role

Why this mapping?
  • Eliminators: pass
  • Operational model: managed RDS
  • User preference: availability = single-AZ
  • Feature parity: PostgreSQL 15
  • Cluster context: app database
  • Simplicity: db.t4g.micro dev tier

Cluster: compute_cloudrun_us-west1_001

Cloud Run sf-beach-ratings (1 vCPU, 512Mi, max 10) → Fargate + ALB Standard pairing

Service account vertex-ai-sa → IAM role (ECS task) · Vertex AI user → Bedrock invoke policy · Storage viewer → S3 read policy

Public invoker (allUsers) → internet-facing ALB.

Why this mapping?
  • Eliminators: pass
  • Operational model: ALB ingress
  • User preference: public web app
  • Feature parity: HTTP access
  • Simplicity: ALB + target group

Cluster: analytics_bigquery_us_001 — Deferred

BigQuery sf_beach_analytics / beach_ratings_history → specialist evaluates best AWS analytics path (no automated plugin mapping).

Contact AWS account team or data analytics migration partner to assess query patterns, data movement, and BI integration. Phased migration of other clusters can proceed in parallel.

Appendix B — Cost Estimates

Per-service breakdown (AWS Balanced tier)

Estimated monthly AWS cost by service (Balanced tier), with calculation notes.
Category AWS Service Est. Monthly Calculation / notes
Compute Fargate $22 1 vCPU × $0.04048 × 511 hrs + 0.5 GB × $0.004445 × 511 hrs
Database RDS PostgreSQL $14 db.t4g.micro × 730 hrs + 10 GB storage
Storage S3 Standard $3 Beach images + build artifacts
Networking ALB + NAT Gateway $55 ALB $22 + NAT $33 for VPC-attached Fargate/RDS
Security AWS Security Baseline (Tier 1) $15 GuardDuty $13 · CloudTrail S3 $1.50 · free controls $0.50 · Budgets $0
Observability CloudWatch + X-Ray $4 Logs $1 · storage $0.06 · metrics $3 · alarms $0 · tracing $0 (above 5 GB / 10 metric / 10 alarm free tier)
Supporting Secrets Manager + ECR $1.40 $0.40 secrets + $1.00 ECR
Infra subtotal — $112 Range $91–$146 (low/mid/high)

Tier totals (Premium / Balanced / Optimized) and annual differences are in the Infrastructure Cost Comparison above. Commitment discounts are in Savings Plans and Reserved Instances.

Non-cost benefits (from ROI analysis)

Savings Plans and Reserved Instances

Incremental to Balanced on-demand (Est. $112/mo). Do not add these savings onto Optimized (Est. $82/mo) — that tier already embeds reservation and Spot assumptions.

Estimated cost savings available post-migration, infra and AI combined.
OptimizationTargetEst. savingsCommitmentEffort
Compute Savings PlansFargate20–40%1-year no-upfrontLow (post-migration)
Database Savings PlansRDS~20%1-year no-upfrontLow
S3 Infrequent AccessS3 build artifacts$1/mo (38%)NoneLow
Fargate SpotFargate dev/staging$8/mo (70%)NoneMedium
Model downsizing (AI)Bedrock text$506/moNoneLow (after A/B test)
Prompt caching (Claude)BedrockWorkload-dependent; measure cache hits and writesNoneLow

Appendix C — Migration Steps & Rollback

Phase 1 — Prerequisites

Phase 2 — Infrastructure (Terraform)

cd terraform
terraform init -backend=false
terraform apply -target=aws_s3_bucket.tfstate -target=aws_dynamodb_table.tfstate_lock
terraform init
terraform plan
terraform apply

Deploys Balanced-tier stack including baseline.tf security controls.

Phase 3 — Data migration

Phase 4 — Cutover & validation

Rollback procedure

Rollback triggers and recovery time objectives (RTO) by track.
TrackTriggerActionRTO
Infrastructure Cutover failure, data integrity issue Revert DNS to GCP Cloud Run; RDS read replica retained 48h Maintenance window
AI Error rate >1% for 5 min; P95 >2× baseline; quality <90% Set AI_PROVIDER=vertex_ai (feature flag) Instant
AI (critical) Error rate >5% for 2 min Auto-rollback to Vertex AI <2 min

Appendix D — AI Migration

Model mappings

GCP AI models mapped to Amazon Bedrock targets.
GCP modelBedrock targetWorkloadComplexity
gemini-2.5-flashanthropic.claude-sonnet-5Text generation, structured outputMedium
imagen-3.0-generate-001stability.stable-image-core-v1:0Image generation (~500/mo)Medium

Model cost comparison

Bedrock model options vs current GCP AI spend ($1,250/mo).
Bedrock modelMonthly est.vs GCP ($1,250/mo)QualityNotes
Claude Sonnet 5 (recommended)$520-58%HighQuality priority (Q16); selected target
Claude Haiku 4.5$260-79%Medium-HighBalance of cost and quality
Nova Lite v1$14-99%MediumBackup if A/B test passes quality bar

Recommended model token breakdown (Claude Sonnet 5)

Monthly token volume and cost for the recommended model.
ComponentVolumeCost
Input tokens60,000,000 / month$120
Output tokens40,000,000 / month$400
Images (Stable Image Core)500 / month$20
Total (design target)—$540 projected

Code changes

Application code changes for the Bedrock migration.
ActionDetail
Files to modifylib/gemini.ts, lib/imagen.ts, app/api/search/route.ts
Remove dependency@google/genai
Add dependency@aws-sdk/client-bedrock-runtime
Migration patternDirect SDK → Converse API; feature flag AI_PROVIDER

Production readiness checklist

Success criteria

Your Configuration Choices

Questions and assumptions from the Clarify phase that shaped this migration plan.

Configuration choices with design consequences (from preferences.json).
Question / assumption Your choice Source Design consequence
Do you have any compliance or regulatory requirements? None User answer Tier 1 security baseline only; no Config/Security Hub add-on
Approximately how much are you spending on GCP per month in total? < $1K User answer Dev-tier sizing baseline for cost comparison
When can you accept downtime for cutover? Weekly maintenance window User answer Phased cutover in week 3 during declared maintenance window
How does traffic to your Cloud Run services vary? Active most of the day User answer Fargate hours estimate (~511 hrs/mo) in Balanced tier
What matters most for your AI workloads? Quality User answer Claude Sonnet 5 recommended over lower-cost models
Detected: Cloud SQL ZONAL → single-AZ availability Single-AZ Extracted RDS db.t4g.micro single-AZ (not Multi-AZ)
Detected: GCP region us-west1 us-west-2 Extracted All resources deploy in us-west-2; Bedrock availability verified
Are you eligible for AWS startup programs? Eligible Founders (not yet applied) User answer Up to $5K AWS Activate credits callout in report

Appendix E — AWS Security Posture (Tier 1 Baseline)

The generated terraform/baseline.tf implements an account-wide security baseline. Costs below from estimation-infra.json → projected_costs.breakdown.security_baseline (Balanced mid estimate: $15/mo, range $3–$30, accuracy ±25%).

Account-wide security controls, monthly cost, and GCP equivalents.
Control Terraform resource Monthly cost (mid) GCP equivalent Notes
IAM password policy aws_iam_account_password_policy.baseline $0 Org policy (partial) 14-char min, rotation, complexity
S3 account public access block aws_s3_account_public_access_block.baseline $0 Org constraint Blocks accidental public buckets account-wide
EBS encryption by default aws_ebs_encryption_by_default.baseline $0 GCE disk encryption Defense-in-depth for any future EBS volumes
IAM Access Analyzer aws_accessanalyzer_analyzer.baseline $0 Policy Intelligence (partial) External access detection on account resources
IMDSv2 required aws_ec2_instance_metadata_defaults.baseline $0 Metadata server controls Defense-in-depth if EC2 is added later
CloudTrail + S3 log bucket aws_cloudtrail.baseline $1.50 Cloud Audit Logs Multi-region trail; first trail free; S3 storage cost
GuardDuty aws_guardduty_detector.baseline $13 Security Command Center (SCC, partial) 30-day free trial; scales with VPC/API volume; dominant baseline cost
AWS Budgets aws_budgets_budget.monthly_spend $0 Billing budgets Alerts at 50%, 80%, 100% of $142/mo limit
Free controls subtotal — $0.50 — Misc. negligible charges
Security baseline total baseline.tf $15 — Low $3 / Mid $15 / High $30

Application-layer security (security.tf)

Application-scoped IAM roles and policies.
ResourcePurpose
aws_iam_role.ecs_executionECS task execution role (image pull, logs)
aws_iam_role.ecs_taskApplication runtime role
aws_iam_role_policy.ecs_task_bedrockScoped Bedrock invoke permissions
aws_iam_role_policy.ecs_task_s3Read-only access to beach images bucket

Appendix F — GCP → AWS Security Gap Analysis

Security capability comparison: GCP detected vs AWS generated, with actions.
CapabilityGCP (detected)AWS (generated)Gap / action
Network perimeter 4 default VPC firewall rules VPC security groups Mapped 1:1; review default-allow-ssh/rdp — restrict in production
Identity & access Service accounts + project IAM IAM roles + scoped policies on ECS task Least-privilege Bedrock and S3 policies generated
Audit logging Cloud Audit Logs (platform default) CloudTrail multi-region + S3 Net-new explicit trail in baseline.tf
Threat detection Security Command Center (optional/paid) GuardDuty enabled Net-new — $13/mo mid estimate after trial
Public data exposure GCS allUsers objectViewer on beach images S3 public read bucket policy Risk: migrate to CloudFront + OAI post-cutover
Secrets management Not detected in Terraform Secrets Manager ($0.40/mo est.) Add secrets migration script if app uses Secret Manager
Observability Cloud Operations (50 GB logs free) CloudWatch (~$4/mo mid) Cost shift: GCP logging free tier is larger (50 GB vs CloudWatch 5 GB always-free); estimate assumes usage above free-tier limits (especially custom metrics)

Appendix G — Generated Artifacts Catalog

Artifacts produced by the migration assessment.
ArtifactDescription
aws-design.json17 resource mappings across 6 clusters
aws-design-ai.jsonBedrock model selection and capability mapping
estimation-infra.jsonInfrastructure cost tiers, security baseline, optimizations
estimation-ai.jsonAI model comparison and token cost breakdown
generation-infra.json10-week phased plan, risks, cutover/rollback
generation-ai.json3-week AI plan, code changes, monitoring, checklist
preferences.jsonClarify phase answers and design constraints
validation-report.jsonTerraform fmt/init/validate results
terraform/baseline.tf, vpc.tf, compute.tf, database.tf, storage.tf, security.tf, monitoring.tf
scripts/01 validate · 02 data · 03 containers · 05 validate migration
ai-migration/provider_adapter.js, setup_bedrock.sh, test_comparison.py, bedrock_monitoring.tf
MIGRATION_GUIDE.mdStep-by-step runbook
STARTUP_PROGRAMS.mdAWS Activate credits guidance
migration-report.htmlThis comprehensive report

Appendix H — Glossary

Terms used in this report.
TermMeaning
Monthly run rateEstimated recurring cloud-service charges; excludes staffing, support, migration labor, and other ownership costs
DMSAWS Database Migration Service
OAICloudFront Origin Access Identity
RTORecovery Time Objective
CUDCommitted Use Discount (GCP)
SCCSecurity Command Center (GCP)
IMDSv2EC2 Instance Metadata Service version 2
P9595th-percentile latency
RAGRetrieval-Augmented Generation