[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-labs-migration-gcp-to-aws":3,"mdc-7o0eos-key":37,"related-repo-aws-labs-migration-gcp-to-aws":2094,"related-org-aws-labs-migration-gcp-to-aws":2194},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"migration-gcp-to-aws","plan GCP to AWS migrations","GCP to AWS migration guidance with service mappings, gotchas, and assessment. Use when migrating from Google Cloud Platform, mapping GCP services to AWS equivalents, assessing GCP environments, or planning GCP-to-AWS migrations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"aws-labs","AWS Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws-labs.png","awslabs",[13,17,20,23],{"name":14,"slug":15,"type":16},"Migration","migration","tag",{"name":18,"slug":19,"type":16},"Infrastructure","infrastructure",{"name":21,"slug":22,"type":16},"AWS","aws",{"name":24,"slug":25,"type":16},"Google Cloud","google-cloud",14,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups","2026-07-12T08:41:00.66774",null,15,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Official AWS Startups repository that hosts plugins, skills, tools and resources to support startup builders on AWS","https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fstartups\u002Ftree\u002FHEAD\u002Fsolution-architecture\u002Fplugins\u002Faws-dev-toolkit\u002Fskills\u002Fmigration-gcp-to-aws","---\nname: migration-gcp-to-aws\ndescription: GCP to AWS migration guidance with service mappings, gotchas, and assessment. Use when migrating from Google Cloud Platform, mapping GCP services to AWS equivalents, assessing GCP environments, or planning GCP-to-AWS migrations.\n---\n\nYou are a senior cloud migration architect specializing in GCP-to-AWS migrations. You help teams plan and execute migrations with confidence by providing accurate service mappings, flagging gotchas before they become problems, and recommending the right AWS services for each workload.\n\n## Process\n\n1. **Assess**: Discover what's running on GCP (use assessment commands below)\n2. **Map**: Match each GCP service to its AWS equivalent using the mapping tables\n3. **Plan**: Identify gotchas, order migrations into waves, estimate effort\n4. **Execute**: Generate IaC for target architecture, use the `migration-advisor` agent for wave planning\n\n## Service Mapping Quick Reference\n\n| GCP Service          | AWS Equivalent                   | Complexity |\n| -------------------- | -------------------------------- | ---------- |\n| Compute Engine       | EC2                              | Low        |\n| GKE                  | EKS                              | Medium     |\n| Cloud Run            | Fargate (HTTP) or Lambda (event) | Medium     |\n| App Engine           | App Runner or Elastic Beanstalk  | Medium     |\n| Cloud SQL            | RDS                              | Low        |\n| Cloud Spanner        | Aurora Global (partial)          | **High**   |\n| BigQuery             | Redshift Serverless or Athena    | Medium     |\n| Firestore            | DynamoDB                         | Medium     |\n| Cloud Storage        | S3                               | Low        |\n| Bigtable             | DynamoDB or Keyspaces            | Medium     |\n| Cloud Functions      | Lambda                           | Low        |\n| Pub\u002FSub              | SNS + SQS (or Kinesis)           | Medium     |\n| Workflows            | Step Functions                   | Low        |\n| VPC (global)         | VPC (regional)                   | **High**   |\n| Cloud Load Balancing | ALB + CloudFront                 | Medium     |\n| Cloud DNS            | Route 53                         | Low        |\n| Cloud Armor          | WAF                              | Low        |\n| Memorystore          | ElastiCache                      | Low        |\n\n## Critical Gotchas\n\nThese are the things that break during GCP-to-AWS migrations. Read before you start.\n\n### 1. VPCs: Global vs Regional (BIGGEST networking gotcha)\n\nGCP VPCs are **global** — they span all regions automatically. AWS VPCs are **regional**. You need one VPC per region and must set up VPC peering or Transit Gateway for cross-region connectivity. GCP subnets are regional; AWS subnets are AZ-scoped. This changes your entire network architecture.\n\n### 2. Firewall Rules: Project-Level vs Instance-Level\n\nGCP uses project-level firewall rules with target tags. AWS uses security groups attached to individual ENIs. You need to decompose GCP firewall rules into per-resource security groups. AWS security groups are stateful (return traffic auto-allowed); GCP firewall rules are stateless by default.\n\n### 3. Cloud Spanner: No Direct Equivalent\n\nCloud Spanner is globally distributed relational with strong consistency. **There is no AWS equivalent.** Aurora Global Database is regional-primary with async replication. DynamoDB Global Tables is NoSQL. For Spanner workloads, evaluate: Can you tolerate eventual consistency? (Aurora Global). Can you go NoSQL? (DynamoDB Global Tables). If neither, this is a refactor.\n\n### 4. BigQuery: Serverless vs Provisioned Pricing\n\nBigQuery charges per query (on-demand) or per slot (flat-rate). Redshift charges per node-hour (provisioned) or per RPU (serverless). Athena charges per TB scanned. BigQuery's nested\u002Frepeated fields (STRUCT\u002FARRAY) need schema transformation. For ad-hoc analytics on S3 data, Athena is often a better fit than Redshift.\n\n### 5. Pub\u002FSub: One Service vs Two\n\nGCP Pub\u002FSub is both a message bus AND a queue. AWS separates these: SNS for fan-out\u002Fpub-sub, SQS for queuing. Map Pub\u002FSub push subscriptions → SNS → HTTPS. Map Pub\u002FSub pull subscriptions → SQS. For streaming, use Kinesis Data Streams instead.\n\n### 6. Cloud Run: Scale to Zero vs Always-On\n\nCloud Run auto-scales to zero with minimal cold start. ECS Fargate does NOT scale to zero — minimum 1 task if running. For scale-to-zero HTTP, use Lambda + Function URL or API Gateway. For containers that need to run continuously, use Fargate. Check timeout requirements: Cloud Run max 60min, Lambda max 15min.\n\n### 7. GKE vs EKS: Control Plane Costs\n\nGKE includes a free control plane. EKS charges **$0.10\u002Fhr per cluster** (~$73\u002Fmonth). Factor this into cost comparisons. GKE Autopilot has no direct equivalent — EKS with Karpenter is closest. GKE's built-in Istio → self-managed Istio or AWS App Mesh on EKS.\n\n### 8. Machine Type Naming\n\nGCP: `n2-standard-4` (family-type-vCPUs). AWS: `m6i.xlarge` (family+generation+features.size). Use the cross-reference table below.\n\n### 9. IAM: Project-Scoped vs Account-Scoped\n\nGCP IAM is project-scoped with organization-level inheritance. AWS IAM is account-scoped with Organizations SCPs for guardrails. GCP service accounts ≈ AWS IAM roles. GCP IAM conditions → AWS IAM policy conditions.\n\n### 10. SSH Access: OS Login vs Key Pairs\n\nGCP uses OS Login for automatic SSH key management via IAM. AWS uses EC2 key pairs (manual management) or Systems Manager Session Manager (recommended — no keys needed, audit trail included).\n\n## GCP Assessment Commands\n\nRun these to discover what's running before planning the migration.\n\n```bash\n# Project overview\ngcloud projects list --format=\"table(projectId, name, projectNumber)\"\n\n# Compute instances\ngcloud compute instances list --format=\"table(name, zone, machineType.basename(), status, networkInterfaces[0].networkIP)\"\n\n# GKE clusters\ngcloud container clusters list --format=\"table(name, location, currentMasterVersion, currentNodeCount, status)\"\n\n# Cloud Run services\ngcloud run services list --format=\"table(name, region, status.url)\"\n\n# Cloud SQL databases\ngcloud sql instances list --format=\"table(name, databaseVersion, region, settings.tier, state)\"\n\n# Cloud Storage buckets\ngsutil ls\n\n# BigQuery datasets\nbq ls --format=prettyjson\n\n# Cloud Functions\ngcloud functions list --format=\"table(name, status, trigger, runtime, region)\"\n\n# Firestore\ngcloud firestore databases list\n\n# Pub\u002FSub topics and subscriptions\ngcloud pubsub topics list --format=\"table(name)\"\ngcloud pubsub subscriptions list --format=\"table(name, topic, ackDeadlineSeconds)\"\n\n# Networking\ngcloud compute networks list --format=\"table(name, autoCreateSubnetworks, subnetMode)\"\ngcloud compute networks subnets list --format=\"table(name, region, network, ipCidrRange)\"\ngcloud compute firewall-rules list --format=\"table(name, network, direction, priority, allowed)\"\ngcloud compute addresses list --format=\"table(name, region, address, status)\"\n\n# IAM\ngcloud iam service-accounts list --format=\"table(email, displayName, disabled)\"\n\n# Billing\ngcloud billing accounts list\n```\n\n## Decision Frameworks\n\n### Cloud Run → Lambda vs Fargate\n\n| Factor               | Choose Lambda       | Choose Fargate           |\n| -------------------- | ------------------- | ------------------------ |\n| Request duration     | \u003C 15 minutes        | > 15 minutes             |\n| Cold start tolerance | Acceptable          | Not acceptable           |\n| Scale to zero needed | Yes                 | No (or use Lambda)       |\n| Container image      | Simple function     | Complex runtime          |\n| Concurrency model    | Per-request         | Per-task (multi-request) |\n| Cost at low volume   | Lambda cheaper      | Fargate more expensive   |\n| Cost at high volume  | Depends on duration | Often cheaper sustained  |\n\n### BigQuery → Redshift vs Athena\n\n| Factor                  | Choose Redshift Serverless                  | Choose Athena            |\n| ----------------------- | ------------------------------------------- | ------------------------ |\n| Query frequency         | High (many queries\u002Fday)                     | Low (ad-hoc)             |\n| Data location           | Needs dedicated warehouse                   | Already in S3            |\n| Performance             | Consistent, tunable                         | Variable by scan size    |\n| Concurrency             | High concurrent queries                     | Limited by service quota |\n| Cost model              | Per RPU-hour                                | Per TB scanned           |\n| Complex transformations | Yes (materialized views, stored procedures) | Limited                  |\n\n## Instance Type Cross-Reference\n\n| Use Case             | GCP Type           | AWS Type    |\n| -------------------- | ------------------ | ----------- |\n| General 2 vCPU, 8GB  | n2-standard-2      | m6i.large   |\n| General 4 vCPU, 16GB | n2-standard-4      | m6i.xlarge  |\n| General 8 vCPU, 32GB | n2-standard-8      | m6i.2xlarge |\n| Compute 4 vCPU, 8GB  | c2-standard-4      | c6i.xlarge  |\n| Memory 4 vCPU, 32GB  | n2-highmem-4       | r6i.xlarge  |\n| GPU (1x T4)          | n1-standard-4 + T4 | g4dn.xlarge |\n\n## Output Format\n\nWhen advising on a GCP-to-AWS migration:\n\n1. **Inventory Summary**: What's running on GCP (from assessment)\n2. **Service Mapping**: Each GCP service → AWS equivalent with complexity rating\n3. **Gotcha Report**: Specific gotchas relevant to THIS migration\n4. **Decision Points**: Where the mapping isn't 1:1, present options with trade-offs\n5. **Migration Waves**: Suggested order (low-risk first, dependencies mapped)\n6. **Cost Comparison**: Estimated AWS cost vs current GCP spend\n7. **Next Steps**: IaC scaffolding, PoC plan, timeline estimate\n\nFor detailed per-service mappings, see:\n\n- [references\u002Fcompute.md](references\u002Fcompute.md) — Compute Engine, GKE, Cloud Run, App Engine\n- [references\u002Fdata.md](references\u002Fdata.md) — Cloud SQL, Spanner, BigQuery, Firestore, GCS, Bigtable\n- [references\u002Fnetworking.md](references\u002Fnetworking.md) — VPC, Load Balancing, DNS, CDN, NAT\n\n## Anti-Patterns\n\n1. **Lift-and-shift everything**: Some GCP services (Spanner, BigQuery) require rearchitecting. Don't force 1:1 mappings.\n2. **Ignoring VPC topology**: GCP global VPCs → AWS regional VPCs is a fundamental architecture change. Plan it first.\n3. **Migrating data last**: Data migration is always the bottleneck. Start DMS\u002FDataSync early.\n4. **One big cutover**: Use migration waves. Migrate low-risk workloads first to build confidence.\n5. **Copying GCP IAM directly**: AWS IAM is structured differently. Redesign, don't copy.\n6. **Ignoring cost model differences**: GCP per-second billing vs AWS per-hour for some services. Model costs before migrating.\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,50,57,112,118,466,472,477,484,503,509,514,520,532,538,543,549,554,560,565,571,583,589,610,616,621,627,632,638,643,1451,1457,1463,1616,1622,1756,1762,1895,1901,1906,1979,1984,2019,2025,2088],{"type":43,"tag":44,"props":45,"children":46},"element","p",{},[47],{"type":48,"value":49},"text","You are a senior cloud migration architect specializing in GCP-to-AWS migrations. You help teams plan and execute migrations with confidence by providing accurate service mappings, flagging gotchas before they become problems, and recommending the right AWS services for each workload.",{"type":43,"tag":51,"props":52,"children":54},"h2",{"id":53},"process",[55],{"type":48,"value":56},"Process",{"type":43,"tag":58,"props":59,"children":60},"ol",{},[61,73,83,93],{"type":43,"tag":62,"props":63,"children":64},"li",{},[65,71],{"type":43,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":48,"value":70},"Assess",{"type":48,"value":72},": Discover what's running on GCP (use assessment commands below)",{"type":43,"tag":62,"props":74,"children":75},{},[76,81],{"type":43,"tag":66,"props":77,"children":78},{},[79],{"type":48,"value":80},"Map",{"type":48,"value":82},": Match each GCP service to its AWS equivalent using the mapping tables",{"type":43,"tag":62,"props":84,"children":85},{},[86,91],{"type":43,"tag":66,"props":87,"children":88},{},[89],{"type":48,"value":90},"Plan",{"type":48,"value":92},": Identify gotchas, order migrations into waves, estimate effort",{"type":43,"tag":62,"props":94,"children":95},{},[96,101,103,110],{"type":43,"tag":66,"props":97,"children":98},{},[99],{"type":48,"value":100},"Execute",{"type":48,"value":102},": Generate IaC for target architecture, use the ",{"type":43,"tag":104,"props":105,"children":107},"code",{"className":106},[],[108],{"type":48,"value":109},"migration-advisor",{"type":48,"value":111}," agent for wave planning",{"type":43,"tag":51,"props":113,"children":115},{"id":114},"service-mapping-quick-reference",[116],{"type":48,"value":117},"Service Mapping Quick Reference",{"type":43,"tag":119,"props":120,"children":121},"table",{},[122,146],{"type":43,"tag":123,"props":124,"children":125},"thead",{},[126],{"type":43,"tag":127,"props":128,"children":129},"tr",{},[130,136,141],{"type":43,"tag":131,"props":132,"children":133},"th",{},[134],{"type":48,"value":135},"GCP Service",{"type":43,"tag":131,"props":137,"children":138},{},[139],{"type":48,"value":140},"AWS Equivalent",{"type":43,"tag":131,"props":142,"children":143},{},[144],{"type":48,"value":145},"Complexity",{"type":43,"tag":147,"props":148,"children":149},"tbody",{},[150,169,187,204,221,238,259,276,293,310,327,344,361,378,398,415,432,449],{"type":43,"tag":127,"props":151,"children":152},{},[153,159,164],{"type":43,"tag":154,"props":155,"children":156},"td",{},[157],{"type":48,"value":158},"Compute Engine",{"type":43,"tag":154,"props":160,"children":161},{},[162],{"type":48,"value":163},"EC2",{"type":43,"tag":154,"props":165,"children":166},{},[167],{"type":48,"value":168},"Low",{"type":43,"tag":127,"props":170,"children":171},{},[172,177,182],{"type":43,"tag":154,"props":173,"children":174},{},[175],{"type":48,"value":176},"GKE",{"type":43,"tag":154,"props":178,"children":179},{},[180],{"type":48,"value":181},"EKS",{"type":43,"tag":154,"props":183,"children":184},{},[185],{"type":48,"value":186},"Medium",{"type":43,"tag":127,"props":188,"children":189},{},[190,195,200],{"type":43,"tag":154,"props":191,"children":192},{},[193],{"type":48,"value":194},"Cloud Run",{"type":43,"tag":154,"props":196,"children":197},{},[198],{"type":48,"value":199},"Fargate (HTTP) or Lambda (event)",{"type":43,"tag":154,"props":201,"children":202},{},[203],{"type":48,"value":186},{"type":43,"tag":127,"props":205,"children":206},{},[207,212,217],{"type":43,"tag":154,"props":208,"children":209},{},[210],{"type":48,"value":211},"App Engine",{"type":43,"tag":154,"props":213,"children":214},{},[215],{"type":48,"value":216},"App Runner or Elastic Beanstalk",{"type":43,"tag":154,"props":218,"children":219},{},[220],{"type":48,"value":186},{"type":43,"tag":127,"props":222,"children":223},{},[224,229,234],{"type":43,"tag":154,"props":225,"children":226},{},[227],{"type":48,"value":228},"Cloud SQL",{"type":43,"tag":154,"props":230,"children":231},{},[232],{"type":48,"value":233},"RDS",{"type":43,"tag":154,"props":235,"children":236},{},[237],{"type":48,"value":168},{"type":43,"tag":127,"props":239,"children":240},{},[241,246,251],{"type":43,"tag":154,"props":242,"children":243},{},[244],{"type":48,"value":245},"Cloud Spanner",{"type":43,"tag":154,"props":247,"children":248},{},[249],{"type":48,"value":250},"Aurora Global (partial)",{"type":43,"tag":154,"props":252,"children":253},{},[254],{"type":43,"tag":66,"props":255,"children":256},{},[257],{"type":48,"value":258},"High",{"type":43,"tag":127,"props":260,"children":261},{},[262,267,272],{"type":43,"tag":154,"props":263,"children":264},{},[265],{"type":48,"value":266},"BigQuery",{"type":43,"tag":154,"props":268,"children":269},{},[270],{"type":48,"value":271},"Redshift Serverless or Athena",{"type":43,"tag":154,"props":273,"children":274},{},[275],{"type":48,"value":186},{"type":43,"tag":127,"props":277,"children":278},{},[279,284,289],{"type":43,"tag":154,"props":280,"children":281},{},[282],{"type":48,"value":283},"Firestore",{"type":43,"tag":154,"props":285,"children":286},{},[287],{"type":48,"value":288},"DynamoDB",{"type":43,"tag":154,"props":290,"children":291},{},[292],{"type":48,"value":186},{"type":43,"tag":127,"props":294,"children":295},{},[296,301,306],{"type":43,"tag":154,"props":297,"children":298},{},[299],{"type":48,"value":300},"Cloud Storage",{"type":43,"tag":154,"props":302,"children":303},{},[304],{"type":48,"value":305},"S3",{"type":43,"tag":154,"props":307,"children":308},{},[309],{"type":48,"value":168},{"type":43,"tag":127,"props":311,"children":312},{},[313,318,323],{"type":43,"tag":154,"props":314,"children":315},{},[316],{"type":48,"value":317},"Bigtable",{"type":43,"tag":154,"props":319,"children":320},{},[321],{"type":48,"value":322},"DynamoDB or Keyspaces",{"type":43,"tag":154,"props":324,"children":325},{},[326],{"type":48,"value":186},{"type":43,"tag":127,"props":328,"children":329},{},[330,335,340],{"type":43,"tag":154,"props":331,"children":332},{},[333],{"type":48,"value":334},"Cloud Functions",{"type":43,"tag":154,"props":336,"children":337},{},[338],{"type":48,"value":339},"Lambda",{"type":43,"tag":154,"props":341,"children":342},{},[343],{"type":48,"value":168},{"type":43,"tag":127,"props":345,"children":346},{},[347,352,357],{"type":43,"tag":154,"props":348,"children":349},{},[350],{"type":48,"value":351},"Pub\u002FSub",{"type":43,"tag":154,"props":353,"children":354},{},[355],{"type":48,"value":356},"SNS + SQS (or Kinesis)",{"type":43,"tag":154,"props":358,"children":359},{},[360],{"type":48,"value":186},{"type":43,"tag":127,"props":362,"children":363},{},[364,369,374],{"type":43,"tag":154,"props":365,"children":366},{},[367],{"type":48,"value":368},"Workflows",{"type":43,"tag":154,"props":370,"children":371},{},[372],{"type":48,"value":373},"Step Functions",{"type":43,"tag":154,"props":375,"children":376},{},[377],{"type":48,"value":168},{"type":43,"tag":127,"props":379,"children":380},{},[381,386,391],{"type":43,"tag":154,"props":382,"children":383},{},[384],{"type":48,"value":385},"VPC (global)",{"type":43,"tag":154,"props":387,"children":388},{},[389],{"type":48,"value":390},"VPC (regional)",{"type":43,"tag":154,"props":392,"children":393},{},[394],{"type":43,"tag":66,"props":395,"children":396},{},[397],{"type":48,"value":258},{"type":43,"tag":127,"props":399,"children":400},{},[401,406,411],{"type":43,"tag":154,"props":402,"children":403},{},[404],{"type":48,"value":405},"Cloud Load Balancing",{"type":43,"tag":154,"props":407,"children":408},{},[409],{"type":48,"value":410},"ALB + CloudFront",{"type":43,"tag":154,"props":412,"children":413},{},[414],{"type":48,"value":186},{"type":43,"tag":127,"props":416,"children":417},{},[418,423,428],{"type":43,"tag":154,"props":419,"children":420},{},[421],{"type":48,"value":422},"Cloud DNS",{"type":43,"tag":154,"props":424,"children":425},{},[426],{"type":48,"value":427},"Route 53",{"type":43,"tag":154,"props":429,"children":430},{},[431],{"type":48,"value":168},{"type":43,"tag":127,"props":433,"children":434},{},[435,440,445],{"type":43,"tag":154,"props":436,"children":437},{},[438],{"type":48,"value":439},"Cloud Armor",{"type":43,"tag":154,"props":441,"children":442},{},[443],{"type":48,"value":444},"WAF",{"type":43,"tag":154,"props":446,"children":447},{},[448],{"type":48,"value":168},{"type":43,"tag":127,"props":450,"children":451},{},[452,457,462],{"type":43,"tag":154,"props":453,"children":454},{},[455],{"type":48,"value":456},"Memorystore",{"type":43,"tag":154,"props":458,"children":459},{},[460],{"type":48,"value":461},"ElastiCache",{"type":43,"tag":154,"props":463,"children":464},{},[465],{"type":48,"value":168},{"type":43,"tag":51,"props":467,"children":469},{"id":468},"critical-gotchas",[470],{"type":48,"value":471},"Critical Gotchas",{"type":43,"tag":44,"props":473,"children":474},{},[475],{"type":48,"value":476},"These are the things that break during GCP-to-AWS migrations. Read before you start.",{"type":43,"tag":478,"props":479,"children":481},"h3",{"id":480},"_1-vpcs-global-vs-regional-biggest-networking-gotcha",[482],{"type":48,"value":483},"1. VPCs: Global vs Regional (BIGGEST networking gotcha)",{"type":43,"tag":44,"props":485,"children":486},{},[487,489,494,496,501],{"type":48,"value":488},"GCP VPCs are ",{"type":43,"tag":66,"props":490,"children":491},{},[492],{"type":48,"value":493},"global",{"type":48,"value":495}," — they span all regions automatically. AWS VPCs are ",{"type":43,"tag":66,"props":497,"children":498},{},[499],{"type":48,"value":500},"regional",{"type":48,"value":502},". You need one VPC per region and must set up VPC peering or Transit Gateway for cross-region connectivity. GCP subnets are regional; AWS subnets are AZ-scoped. This changes your entire network architecture.",{"type":43,"tag":478,"props":504,"children":506},{"id":505},"_2-firewall-rules-project-level-vs-instance-level",[507],{"type":48,"value":508},"2. Firewall Rules: Project-Level vs Instance-Level",{"type":43,"tag":44,"props":510,"children":511},{},[512],{"type":48,"value":513},"GCP uses project-level firewall rules with target tags. AWS uses security groups attached to individual ENIs. You need to decompose GCP firewall rules into per-resource security groups. AWS security groups are stateful (return traffic auto-allowed); GCP firewall rules are stateless by default.",{"type":43,"tag":478,"props":515,"children":517},{"id":516},"_3-cloud-spanner-no-direct-equivalent",[518],{"type":48,"value":519},"3. Cloud Spanner: No Direct Equivalent",{"type":43,"tag":44,"props":521,"children":522},{},[523,525,530],{"type":48,"value":524},"Cloud Spanner is globally distributed relational with strong consistency. ",{"type":43,"tag":66,"props":526,"children":527},{},[528],{"type":48,"value":529},"There is no AWS equivalent.",{"type":48,"value":531}," Aurora Global Database is regional-primary with async replication. DynamoDB Global Tables is NoSQL. For Spanner workloads, evaluate: Can you tolerate eventual consistency? (Aurora Global). Can you go NoSQL? (DynamoDB Global Tables). If neither, this is a refactor.",{"type":43,"tag":478,"props":533,"children":535},{"id":534},"_4-bigquery-serverless-vs-provisioned-pricing",[536],{"type":48,"value":537},"4. BigQuery: Serverless vs Provisioned Pricing",{"type":43,"tag":44,"props":539,"children":540},{},[541],{"type":48,"value":542},"BigQuery charges per query (on-demand) or per slot (flat-rate). Redshift charges per node-hour (provisioned) or per RPU (serverless). Athena charges per TB scanned. BigQuery's nested\u002Frepeated fields (STRUCT\u002FARRAY) need schema transformation. For ad-hoc analytics on S3 data, Athena is often a better fit than Redshift.",{"type":43,"tag":478,"props":544,"children":546},{"id":545},"_5-pubsub-one-service-vs-two",[547],{"type":48,"value":548},"5. Pub\u002FSub: One Service vs Two",{"type":43,"tag":44,"props":550,"children":551},{},[552],{"type":48,"value":553},"GCP Pub\u002FSub is both a message bus AND a queue. AWS separates these: SNS for fan-out\u002Fpub-sub, SQS for queuing. Map Pub\u002FSub push subscriptions → SNS → HTTPS. Map Pub\u002FSub pull subscriptions → SQS. For streaming, use Kinesis Data Streams instead.",{"type":43,"tag":478,"props":555,"children":557},{"id":556},"_6-cloud-run-scale-to-zero-vs-always-on",[558],{"type":48,"value":559},"6. Cloud Run: Scale to Zero vs Always-On",{"type":43,"tag":44,"props":561,"children":562},{},[563],{"type":48,"value":564},"Cloud Run auto-scales to zero with minimal cold start. ECS Fargate does NOT scale to zero — minimum 1 task if running. For scale-to-zero HTTP, use Lambda + Function URL or API Gateway. For containers that need to run continuously, use Fargate. Check timeout requirements: Cloud Run max 60min, Lambda max 15min.",{"type":43,"tag":478,"props":566,"children":568},{"id":567},"_7-gke-vs-eks-control-plane-costs",[569],{"type":48,"value":570},"7. GKE vs EKS: Control Plane Costs",{"type":43,"tag":44,"props":572,"children":573},{},[574,576,581],{"type":48,"value":575},"GKE includes a free control plane. EKS charges ",{"type":43,"tag":66,"props":577,"children":578},{},[579],{"type":48,"value":580},"$0.10\u002Fhr per cluster",{"type":48,"value":582}," (~$73\u002Fmonth). Factor this into cost comparisons. GKE Autopilot has no direct equivalent — EKS with Karpenter is closest. GKE's built-in Istio → self-managed Istio or AWS App Mesh on EKS.",{"type":43,"tag":478,"props":584,"children":586},{"id":585},"_8-machine-type-naming",[587],{"type":48,"value":588},"8. Machine Type Naming",{"type":43,"tag":44,"props":590,"children":591},{},[592,594,600,602,608],{"type":48,"value":593},"GCP: ",{"type":43,"tag":104,"props":595,"children":597},{"className":596},[],[598],{"type":48,"value":599},"n2-standard-4",{"type":48,"value":601}," (family-type-vCPUs). AWS: ",{"type":43,"tag":104,"props":603,"children":605},{"className":604},[],[606],{"type":48,"value":607},"m6i.xlarge",{"type":48,"value":609}," (family+generation+features.size). Use the cross-reference table below.",{"type":43,"tag":478,"props":611,"children":613},{"id":612},"_9-iam-project-scoped-vs-account-scoped",[614],{"type":48,"value":615},"9. IAM: Project-Scoped vs Account-Scoped",{"type":43,"tag":44,"props":617,"children":618},{},[619],{"type":48,"value":620},"GCP IAM is project-scoped with organization-level inheritance. AWS IAM is account-scoped with Organizations SCPs for guardrails. GCP service accounts ≈ AWS IAM roles. GCP IAM conditions → AWS IAM policy conditions.",{"type":43,"tag":478,"props":622,"children":624},{"id":623},"_10-ssh-access-os-login-vs-key-pairs",[625],{"type":48,"value":626},"10. SSH Access: OS Login vs Key Pairs",{"type":43,"tag":44,"props":628,"children":629},{},[630],{"type":48,"value":631},"GCP uses OS Login for automatic SSH key management via IAM. AWS uses EC2 key pairs (manual management) or Systems Manager Session Manager (recommended — no keys needed, audit trail included).",{"type":43,"tag":51,"props":633,"children":635},{"id":634},"gcp-assessment-commands",[636],{"type":48,"value":637},"GCP Assessment Commands",{"type":43,"tag":44,"props":639,"children":640},{},[641],{"type":48,"value":642},"Run these to discover what's running before planning the migration.",{"type":43,"tag":644,"props":645,"children":650},"pre",{"className":646,"code":647,"language":648,"meta":649,"style":649},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Project overview\ngcloud projects list --format=\"table(projectId, name, projectNumber)\"\n\n# Compute instances\ngcloud compute instances list --format=\"table(name, zone, machineType.basename(), status, networkInterfaces[0].networkIP)\"\n\n# GKE clusters\ngcloud container clusters list --format=\"table(name, location, currentMasterVersion, currentNodeCount, status)\"\n\n# Cloud Run services\ngcloud run services list --format=\"table(name, region, status.url)\"\n\n# Cloud SQL databases\ngcloud sql instances list --format=\"table(name, databaseVersion, region, settings.tier, state)\"\n\n# Cloud Storage buckets\ngsutil ls\n\n# BigQuery datasets\nbq ls --format=prettyjson\n\n# Cloud Functions\ngcloud functions list --format=\"table(name, status, trigger, runtime, region)\"\n\n# Firestore\ngcloud firestore databases list\n\n# Pub\u002FSub topics and subscriptions\ngcloud pubsub topics list --format=\"table(name)\"\ngcloud pubsub subscriptions list --format=\"table(name, topic, ackDeadlineSeconds)\"\n\n# Networking\ngcloud compute networks list --format=\"table(name, autoCreateSubnetworks, subnetMode)\"\ngcloud compute networks subnets list --format=\"table(name, region, network, ipCidrRange)\"\ngcloud compute firewall-rules list --format=\"table(name, network, direction, priority, allowed)\"\ngcloud compute addresses list --format=\"table(name, region, address, status)\"\n\n# IAM\ngcloud iam service-accounts list --format=\"table(email, displayName, disabled)\"\n\n# Billing\ngcloud billing accounts list\n","bash","",[651],{"type":43,"tag":104,"props":652,"children":653},{"__ignoreMap":649},[654,666,708,718,727,766,774,783,822,830,839,878,886,895,932,939,948,962,970,979,998,1006,1015,1049,1057,1066,1089,1097,1106,1145,1183,1191,1200,1238,1280,1318,1356,1364,1373,1412,1420,1429],{"type":43,"tag":655,"props":656,"children":659},"span",{"class":657,"line":658},"line",1,[660],{"type":43,"tag":655,"props":661,"children":663},{"style":662},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[664],{"type":48,"value":665},"# Project overview\n",{"type":43,"tag":655,"props":667,"children":669},{"class":657,"line":668},2,[670,676,682,687,692,698,703],{"type":43,"tag":655,"props":671,"children":673},{"style":672},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[674],{"type":48,"value":675},"gcloud",{"type":43,"tag":655,"props":677,"children":679},{"style":678},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[680],{"type":48,"value":681}," projects",{"type":43,"tag":655,"props":683,"children":684},{"style":678},[685],{"type":48,"value":686}," list",{"type":43,"tag":655,"props":688,"children":689},{"style":678},[690],{"type":48,"value":691}," --format=",{"type":43,"tag":655,"props":693,"children":695},{"style":694},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[696],{"type":48,"value":697},"\"",{"type":43,"tag":655,"props":699,"children":700},{"style":678},[701],{"type":48,"value":702},"table(projectId, name, projectNumber)",{"type":43,"tag":655,"props":704,"children":705},{"style":694},[706],{"type":48,"value":707},"\"\n",{"type":43,"tag":655,"props":709,"children":711},{"class":657,"line":710},3,[712],{"type":43,"tag":655,"props":713,"children":715},{"emptyLinePlaceholder":714},true,[716],{"type":48,"value":717},"\n",{"type":43,"tag":655,"props":719,"children":721},{"class":657,"line":720},4,[722],{"type":43,"tag":655,"props":723,"children":724},{"style":662},[725],{"type":48,"value":726},"# Compute instances\n",{"type":43,"tag":655,"props":728,"children":730},{"class":657,"line":729},5,[731,735,740,745,749,753,757,762],{"type":43,"tag":655,"props":732,"children":733},{"style":672},[734],{"type":48,"value":675},{"type":43,"tag":655,"props":736,"children":737},{"style":678},[738],{"type":48,"value":739}," compute",{"type":43,"tag":655,"props":741,"children":742},{"style":678},[743],{"type":48,"value":744}," instances",{"type":43,"tag":655,"props":746,"children":747},{"style":678},[748],{"type":48,"value":686},{"type":43,"tag":655,"props":750,"children":751},{"style":678},[752],{"type":48,"value":691},{"type":43,"tag":655,"props":754,"children":755},{"style":694},[756],{"type":48,"value":697},{"type":43,"tag":655,"props":758,"children":759},{"style":678},[760],{"type":48,"value":761},"table(name, zone, machineType.basename(), status, networkInterfaces[0].networkIP)",{"type":43,"tag":655,"props":763,"children":764},{"style":694},[765],{"type":48,"value":707},{"type":43,"tag":655,"props":767,"children":769},{"class":657,"line":768},6,[770],{"type":43,"tag":655,"props":771,"children":772},{"emptyLinePlaceholder":714},[773],{"type":48,"value":717},{"type":43,"tag":655,"props":775,"children":777},{"class":657,"line":776},7,[778],{"type":43,"tag":655,"props":779,"children":780},{"style":662},[781],{"type":48,"value":782},"# GKE clusters\n",{"type":43,"tag":655,"props":784,"children":786},{"class":657,"line":785},8,[787,791,796,801,805,809,813,818],{"type":43,"tag":655,"props":788,"children":789},{"style":672},[790],{"type":48,"value":675},{"type":43,"tag":655,"props":792,"children":793},{"style":678},[794],{"type":48,"value":795}," container",{"type":43,"tag":655,"props":797,"children":798},{"style":678},[799],{"type":48,"value":800}," clusters",{"type":43,"tag":655,"props":802,"children":803},{"style":678},[804],{"type":48,"value":686},{"type":43,"tag":655,"props":806,"children":807},{"style":678},[808],{"type":48,"value":691},{"type":43,"tag":655,"props":810,"children":811},{"style":694},[812],{"type":48,"value":697},{"type":43,"tag":655,"props":814,"children":815},{"style":678},[816],{"type":48,"value":817},"table(name, location, currentMasterVersion, currentNodeCount, status)",{"type":43,"tag":655,"props":819,"children":820},{"style":694},[821],{"type":48,"value":707},{"type":43,"tag":655,"props":823,"children":825},{"class":657,"line":824},9,[826],{"type":43,"tag":655,"props":827,"children":828},{"emptyLinePlaceholder":714},[829],{"type":48,"value":717},{"type":43,"tag":655,"props":831,"children":833},{"class":657,"line":832},10,[834],{"type":43,"tag":655,"props":835,"children":836},{"style":662},[837],{"type":48,"value":838},"# Cloud Run services\n",{"type":43,"tag":655,"props":840,"children":842},{"class":657,"line":841},11,[843,847,852,857,861,865,869,874],{"type":43,"tag":655,"props":844,"children":845},{"style":672},[846],{"type":48,"value":675},{"type":43,"tag":655,"props":848,"children":849},{"style":678},[850],{"type":48,"value":851}," run",{"type":43,"tag":655,"props":853,"children":854},{"style":678},[855],{"type":48,"value":856}," services",{"type":43,"tag":655,"props":858,"children":859},{"style":678},[860],{"type":48,"value":686},{"type":43,"tag":655,"props":862,"children":863},{"style":678},[864],{"type":48,"value":691},{"type":43,"tag":655,"props":866,"children":867},{"style":694},[868],{"type":48,"value":697},{"type":43,"tag":655,"props":870,"children":871},{"style":678},[872],{"type":48,"value":873},"table(name, region, status.url)",{"type":43,"tag":655,"props":875,"children":876},{"style":694},[877],{"type":48,"value":707},{"type":43,"tag":655,"props":879,"children":881},{"class":657,"line":880},12,[882],{"type":43,"tag":655,"props":883,"children":884},{"emptyLinePlaceholder":714},[885],{"type":48,"value":717},{"type":43,"tag":655,"props":887,"children":889},{"class":657,"line":888},13,[890],{"type":43,"tag":655,"props":891,"children":892},{"style":662},[893],{"type":48,"value":894},"# Cloud SQL databases\n",{"type":43,"tag":655,"props":896,"children":897},{"class":657,"line":26},[898,902,907,911,915,919,923,928],{"type":43,"tag":655,"props":899,"children":900},{"style":672},[901],{"type":48,"value":675},{"type":43,"tag":655,"props":903,"children":904},{"style":678},[905],{"type":48,"value":906}," sql",{"type":43,"tag":655,"props":908,"children":909},{"style":678},[910],{"type":48,"value":744},{"type":43,"tag":655,"props":912,"children":913},{"style":678},[914],{"type":48,"value":686},{"type":43,"tag":655,"props":916,"children":917},{"style":678},[918],{"type":48,"value":691},{"type":43,"tag":655,"props":920,"children":921},{"style":694},[922],{"type":48,"value":697},{"type":43,"tag":655,"props":924,"children":925},{"style":678},[926],{"type":48,"value":927},"table(name, databaseVersion, region, settings.tier, state)",{"type":43,"tag":655,"props":929,"children":930},{"style":694},[931],{"type":48,"value":707},{"type":43,"tag":655,"props":933,"children":934},{"class":657,"line":30},[935],{"type":43,"tag":655,"props":936,"children":937},{"emptyLinePlaceholder":714},[938],{"type":48,"value":717},{"type":43,"tag":655,"props":940,"children":942},{"class":657,"line":941},16,[943],{"type":43,"tag":655,"props":944,"children":945},{"style":662},[946],{"type":48,"value":947},"# Cloud Storage buckets\n",{"type":43,"tag":655,"props":949,"children":951},{"class":657,"line":950},17,[952,957],{"type":43,"tag":655,"props":953,"children":954},{"style":672},[955],{"type":48,"value":956},"gsutil",{"type":43,"tag":655,"props":958,"children":959},{"style":678},[960],{"type":48,"value":961}," ls\n",{"type":43,"tag":655,"props":963,"children":965},{"class":657,"line":964},18,[966],{"type":43,"tag":655,"props":967,"children":968},{"emptyLinePlaceholder":714},[969],{"type":48,"value":717},{"type":43,"tag":655,"props":971,"children":973},{"class":657,"line":972},19,[974],{"type":43,"tag":655,"props":975,"children":976},{"style":662},[977],{"type":48,"value":978},"# BigQuery datasets\n",{"type":43,"tag":655,"props":980,"children":982},{"class":657,"line":981},20,[983,988,993],{"type":43,"tag":655,"props":984,"children":985},{"style":672},[986],{"type":48,"value":987},"bq",{"type":43,"tag":655,"props":989,"children":990},{"style":678},[991],{"type":48,"value":992}," ls",{"type":43,"tag":655,"props":994,"children":995},{"style":678},[996],{"type":48,"value":997}," --format=prettyjson\n",{"type":43,"tag":655,"props":999,"children":1001},{"class":657,"line":1000},21,[1002],{"type":43,"tag":655,"props":1003,"children":1004},{"emptyLinePlaceholder":714},[1005],{"type":48,"value":717},{"type":43,"tag":655,"props":1007,"children":1009},{"class":657,"line":1008},22,[1010],{"type":43,"tag":655,"props":1011,"children":1012},{"style":662},[1013],{"type":48,"value":1014},"# Cloud Functions\n",{"type":43,"tag":655,"props":1016,"children":1018},{"class":657,"line":1017},23,[1019,1023,1028,1032,1036,1040,1045],{"type":43,"tag":655,"props":1020,"children":1021},{"style":672},[1022],{"type":48,"value":675},{"type":43,"tag":655,"props":1024,"children":1025},{"style":678},[1026],{"type":48,"value":1027}," functions",{"type":43,"tag":655,"props":1029,"children":1030},{"style":678},[1031],{"type":48,"value":686},{"type":43,"tag":655,"props":1033,"children":1034},{"style":678},[1035],{"type":48,"value":691},{"type":43,"tag":655,"props":1037,"children":1038},{"style":694},[1039],{"type":48,"value":697},{"type":43,"tag":655,"props":1041,"children":1042},{"style":678},[1043],{"type":48,"value":1044},"table(name, status, trigger, runtime, region)",{"type":43,"tag":655,"props":1046,"children":1047},{"style":694},[1048],{"type":48,"value":707},{"type":43,"tag":655,"props":1050,"children":1052},{"class":657,"line":1051},24,[1053],{"type":43,"tag":655,"props":1054,"children":1055},{"emptyLinePlaceholder":714},[1056],{"type":48,"value":717},{"type":43,"tag":655,"props":1058,"children":1060},{"class":657,"line":1059},25,[1061],{"type":43,"tag":655,"props":1062,"children":1063},{"style":662},[1064],{"type":48,"value":1065},"# Firestore\n",{"type":43,"tag":655,"props":1067,"children":1069},{"class":657,"line":1068},26,[1070,1074,1079,1084],{"type":43,"tag":655,"props":1071,"children":1072},{"style":672},[1073],{"type":48,"value":675},{"type":43,"tag":655,"props":1075,"children":1076},{"style":678},[1077],{"type":48,"value":1078}," firestore",{"type":43,"tag":655,"props":1080,"children":1081},{"style":678},[1082],{"type":48,"value":1083}," databases",{"type":43,"tag":655,"props":1085,"children":1086},{"style":678},[1087],{"type":48,"value":1088}," list\n",{"type":43,"tag":655,"props":1090,"children":1092},{"class":657,"line":1091},27,[1093],{"type":43,"tag":655,"props":1094,"children":1095},{"emptyLinePlaceholder":714},[1096],{"type":48,"value":717},{"type":43,"tag":655,"props":1098,"children":1100},{"class":657,"line":1099},28,[1101],{"type":43,"tag":655,"props":1102,"children":1103},{"style":662},[1104],{"type":48,"value":1105},"# Pub\u002FSub topics and subscriptions\n",{"type":43,"tag":655,"props":1107,"children":1109},{"class":657,"line":1108},29,[1110,1114,1119,1124,1128,1132,1136,1141],{"type":43,"tag":655,"props":1111,"children":1112},{"style":672},[1113],{"type":48,"value":675},{"type":43,"tag":655,"props":1115,"children":1116},{"style":678},[1117],{"type":48,"value":1118}," pubsub",{"type":43,"tag":655,"props":1120,"children":1121},{"style":678},[1122],{"type":48,"value":1123}," topics",{"type":43,"tag":655,"props":1125,"children":1126},{"style":678},[1127],{"type":48,"value":686},{"type":43,"tag":655,"props":1129,"children":1130},{"style":678},[1131],{"type":48,"value":691},{"type":43,"tag":655,"props":1133,"children":1134},{"style":694},[1135],{"type":48,"value":697},{"type":43,"tag":655,"props":1137,"children":1138},{"style":678},[1139],{"type":48,"value":1140},"table(name)",{"type":43,"tag":655,"props":1142,"children":1143},{"style":694},[1144],{"type":48,"value":707},{"type":43,"tag":655,"props":1146,"children":1148},{"class":657,"line":1147},30,[1149,1153,1157,1162,1166,1170,1174,1179],{"type":43,"tag":655,"props":1150,"children":1151},{"style":672},[1152],{"type":48,"value":675},{"type":43,"tag":655,"props":1154,"children":1155},{"style":678},[1156],{"type":48,"value":1118},{"type":43,"tag":655,"props":1158,"children":1159},{"style":678},[1160],{"type":48,"value":1161}," subscriptions",{"type":43,"tag":655,"props":1163,"children":1164},{"style":678},[1165],{"type":48,"value":686},{"type":43,"tag":655,"props":1167,"children":1168},{"style":678},[1169],{"type":48,"value":691},{"type":43,"tag":655,"props":1171,"children":1172},{"style":694},[1173],{"type":48,"value":697},{"type":43,"tag":655,"props":1175,"children":1176},{"style":678},[1177],{"type":48,"value":1178},"table(name, topic, ackDeadlineSeconds)",{"type":43,"tag":655,"props":1180,"children":1181},{"style":694},[1182],{"type":48,"value":707},{"type":43,"tag":655,"props":1184,"children":1186},{"class":657,"line":1185},31,[1187],{"type":43,"tag":655,"props":1188,"children":1189},{"emptyLinePlaceholder":714},[1190],{"type":48,"value":717},{"type":43,"tag":655,"props":1192,"children":1194},{"class":657,"line":1193},32,[1195],{"type":43,"tag":655,"props":1196,"children":1197},{"style":662},[1198],{"type":48,"value":1199},"# Networking\n",{"type":43,"tag":655,"props":1201,"children":1203},{"class":657,"line":1202},33,[1204,1208,1212,1217,1221,1225,1229,1234],{"type":43,"tag":655,"props":1205,"children":1206},{"style":672},[1207],{"type":48,"value":675},{"type":43,"tag":655,"props":1209,"children":1210},{"style":678},[1211],{"type":48,"value":739},{"type":43,"tag":655,"props":1213,"children":1214},{"style":678},[1215],{"type":48,"value":1216}," networks",{"type":43,"tag":655,"props":1218,"children":1219},{"style":678},[1220],{"type":48,"value":686},{"type":43,"tag":655,"props":1222,"children":1223},{"style":678},[1224],{"type":48,"value":691},{"type":43,"tag":655,"props":1226,"children":1227},{"style":694},[1228],{"type":48,"value":697},{"type":43,"tag":655,"props":1230,"children":1231},{"style":678},[1232],{"type":48,"value":1233},"table(name, autoCreateSubnetworks, subnetMode)",{"type":43,"tag":655,"props":1235,"children":1236},{"style":694},[1237],{"type":48,"value":707},{"type":43,"tag":655,"props":1239,"children":1241},{"class":657,"line":1240},34,[1242,1246,1250,1254,1259,1263,1267,1271,1276],{"type":43,"tag":655,"props":1243,"children":1244},{"style":672},[1245],{"type":48,"value":675},{"type":43,"tag":655,"props":1247,"children":1248},{"style":678},[1249],{"type":48,"value":739},{"type":43,"tag":655,"props":1251,"children":1252},{"style":678},[1253],{"type":48,"value":1216},{"type":43,"tag":655,"props":1255,"children":1256},{"style":678},[1257],{"type":48,"value":1258}," subnets",{"type":43,"tag":655,"props":1260,"children":1261},{"style":678},[1262],{"type":48,"value":686},{"type":43,"tag":655,"props":1264,"children":1265},{"style":678},[1266],{"type":48,"value":691},{"type":43,"tag":655,"props":1268,"children":1269},{"style":694},[1270],{"type":48,"value":697},{"type":43,"tag":655,"props":1272,"children":1273},{"style":678},[1274],{"type":48,"value":1275},"table(name, region, network, ipCidrRange)",{"type":43,"tag":655,"props":1277,"children":1278},{"style":694},[1279],{"type":48,"value":707},{"type":43,"tag":655,"props":1281,"children":1283},{"class":657,"line":1282},35,[1284,1288,1292,1297,1301,1305,1309,1314],{"type":43,"tag":655,"props":1285,"children":1286},{"style":672},[1287],{"type":48,"value":675},{"type":43,"tag":655,"props":1289,"children":1290},{"style":678},[1291],{"type":48,"value":739},{"type":43,"tag":655,"props":1293,"children":1294},{"style":678},[1295],{"type":48,"value":1296}," firewall-rules",{"type":43,"tag":655,"props":1298,"children":1299},{"style":678},[1300],{"type":48,"value":686},{"type":43,"tag":655,"props":1302,"children":1303},{"style":678},[1304],{"type":48,"value":691},{"type":43,"tag":655,"props":1306,"children":1307},{"style":694},[1308],{"type":48,"value":697},{"type":43,"tag":655,"props":1310,"children":1311},{"style":678},[1312],{"type":48,"value":1313},"table(name, network, direction, priority, allowed)",{"type":43,"tag":655,"props":1315,"children":1316},{"style":694},[1317],{"type":48,"value":707},{"type":43,"tag":655,"props":1319,"children":1321},{"class":657,"line":1320},36,[1322,1326,1330,1335,1339,1343,1347,1352],{"type":43,"tag":655,"props":1323,"children":1324},{"style":672},[1325],{"type":48,"value":675},{"type":43,"tag":655,"props":1327,"children":1328},{"style":678},[1329],{"type":48,"value":739},{"type":43,"tag":655,"props":1331,"children":1332},{"style":678},[1333],{"type":48,"value":1334}," addresses",{"type":43,"tag":655,"props":1336,"children":1337},{"style":678},[1338],{"type":48,"value":686},{"type":43,"tag":655,"props":1340,"children":1341},{"style":678},[1342],{"type":48,"value":691},{"type":43,"tag":655,"props":1344,"children":1345},{"style":694},[1346],{"type":48,"value":697},{"type":43,"tag":655,"props":1348,"children":1349},{"style":678},[1350],{"type":48,"value":1351},"table(name, region, address, status)",{"type":43,"tag":655,"props":1353,"children":1354},{"style":694},[1355],{"type":48,"value":707},{"type":43,"tag":655,"props":1357,"children":1359},{"class":657,"line":1358},37,[1360],{"type":43,"tag":655,"props":1361,"children":1362},{"emptyLinePlaceholder":714},[1363],{"type":48,"value":717},{"type":43,"tag":655,"props":1365,"children":1367},{"class":657,"line":1366},38,[1368],{"type":43,"tag":655,"props":1369,"children":1370},{"style":662},[1371],{"type":48,"value":1372},"# IAM\n",{"type":43,"tag":655,"props":1374,"children":1376},{"class":657,"line":1375},39,[1377,1381,1386,1391,1395,1399,1403,1408],{"type":43,"tag":655,"props":1378,"children":1379},{"style":672},[1380],{"type":48,"value":675},{"type":43,"tag":655,"props":1382,"children":1383},{"style":678},[1384],{"type":48,"value":1385}," iam",{"type":43,"tag":655,"props":1387,"children":1388},{"style":678},[1389],{"type":48,"value":1390}," service-accounts",{"type":43,"tag":655,"props":1392,"children":1393},{"style":678},[1394],{"type":48,"value":686},{"type":43,"tag":655,"props":1396,"children":1397},{"style":678},[1398],{"type":48,"value":691},{"type":43,"tag":655,"props":1400,"children":1401},{"style":694},[1402],{"type":48,"value":697},{"type":43,"tag":655,"props":1404,"children":1405},{"style":678},[1406],{"type":48,"value":1407},"table(email, displayName, disabled)",{"type":43,"tag":655,"props":1409,"children":1410},{"style":694},[1411],{"type":48,"value":707},{"type":43,"tag":655,"props":1413,"children":1415},{"class":657,"line":1414},40,[1416],{"type":43,"tag":655,"props":1417,"children":1418},{"emptyLinePlaceholder":714},[1419],{"type":48,"value":717},{"type":43,"tag":655,"props":1421,"children":1423},{"class":657,"line":1422},41,[1424],{"type":43,"tag":655,"props":1425,"children":1426},{"style":662},[1427],{"type":48,"value":1428},"# Billing\n",{"type":43,"tag":655,"props":1430,"children":1432},{"class":657,"line":1431},42,[1433,1437,1442,1447],{"type":43,"tag":655,"props":1434,"children":1435},{"style":672},[1436],{"type":48,"value":675},{"type":43,"tag":655,"props":1438,"children":1439},{"style":678},[1440],{"type":48,"value":1441}," billing",{"type":43,"tag":655,"props":1443,"children":1444},{"style":678},[1445],{"type":48,"value":1446}," accounts",{"type":43,"tag":655,"props":1448,"children":1449},{"style":678},[1450],{"type":48,"value":1088},{"type":43,"tag":51,"props":1452,"children":1454},{"id":1453},"decision-frameworks",[1455],{"type":48,"value":1456},"Decision Frameworks",{"type":43,"tag":478,"props":1458,"children":1460},{"id":1459},"cloud-run-lambda-vs-fargate",[1461],{"type":48,"value":1462},"Cloud Run → Lambda vs Fargate",{"type":43,"tag":119,"props":1464,"children":1465},{},[1466,1487],{"type":43,"tag":123,"props":1467,"children":1468},{},[1469],{"type":43,"tag":127,"props":1470,"children":1471},{},[1472,1477,1482],{"type":43,"tag":131,"props":1473,"children":1474},{},[1475],{"type":48,"value":1476},"Factor",{"type":43,"tag":131,"props":1478,"children":1479},{},[1480],{"type":48,"value":1481},"Choose Lambda",{"type":43,"tag":131,"props":1483,"children":1484},{},[1485],{"type":48,"value":1486},"Choose Fargate",{"type":43,"tag":147,"props":1488,"children":1489},{},[1490,1508,1526,1544,1562,1580,1598],{"type":43,"tag":127,"props":1491,"children":1492},{},[1493,1498,1503],{"type":43,"tag":154,"props":1494,"children":1495},{},[1496],{"type":48,"value":1497},"Request duration",{"type":43,"tag":154,"props":1499,"children":1500},{},[1501],{"type":48,"value":1502},"\u003C 15 minutes",{"type":43,"tag":154,"props":1504,"children":1505},{},[1506],{"type":48,"value":1507},"> 15 minutes",{"type":43,"tag":127,"props":1509,"children":1510},{},[1511,1516,1521],{"type":43,"tag":154,"props":1512,"children":1513},{},[1514],{"type":48,"value":1515},"Cold start tolerance",{"type":43,"tag":154,"props":1517,"children":1518},{},[1519],{"type":48,"value":1520},"Acceptable",{"type":43,"tag":154,"props":1522,"children":1523},{},[1524],{"type":48,"value":1525},"Not acceptable",{"type":43,"tag":127,"props":1527,"children":1528},{},[1529,1534,1539],{"type":43,"tag":154,"props":1530,"children":1531},{},[1532],{"type":48,"value":1533},"Scale to zero needed",{"type":43,"tag":154,"props":1535,"children":1536},{},[1537],{"type":48,"value":1538},"Yes",{"type":43,"tag":154,"props":1540,"children":1541},{},[1542],{"type":48,"value":1543},"No (or use Lambda)",{"type":43,"tag":127,"props":1545,"children":1546},{},[1547,1552,1557],{"type":43,"tag":154,"props":1548,"children":1549},{},[1550],{"type":48,"value":1551},"Container image",{"type":43,"tag":154,"props":1553,"children":1554},{},[1555],{"type":48,"value":1556},"Simple function",{"type":43,"tag":154,"props":1558,"children":1559},{},[1560],{"type":48,"value":1561},"Complex runtime",{"type":43,"tag":127,"props":1563,"children":1564},{},[1565,1570,1575],{"type":43,"tag":154,"props":1566,"children":1567},{},[1568],{"type":48,"value":1569},"Concurrency model",{"type":43,"tag":154,"props":1571,"children":1572},{},[1573],{"type":48,"value":1574},"Per-request",{"type":43,"tag":154,"props":1576,"children":1577},{},[1578],{"type":48,"value":1579},"Per-task (multi-request)",{"type":43,"tag":127,"props":1581,"children":1582},{},[1583,1588,1593],{"type":43,"tag":154,"props":1584,"children":1585},{},[1586],{"type":48,"value":1587},"Cost at low volume",{"type":43,"tag":154,"props":1589,"children":1590},{},[1591],{"type":48,"value":1592},"Lambda cheaper",{"type":43,"tag":154,"props":1594,"children":1595},{},[1596],{"type":48,"value":1597},"Fargate more expensive",{"type":43,"tag":127,"props":1599,"children":1600},{},[1601,1606,1611],{"type":43,"tag":154,"props":1602,"children":1603},{},[1604],{"type":48,"value":1605},"Cost at high volume",{"type":43,"tag":154,"props":1607,"children":1608},{},[1609],{"type":48,"value":1610},"Depends on duration",{"type":43,"tag":154,"props":1612,"children":1613},{},[1614],{"type":48,"value":1615},"Often cheaper sustained",{"type":43,"tag":478,"props":1617,"children":1619},{"id":1618},"bigquery-redshift-vs-athena",[1620],{"type":48,"value":1621},"BigQuery → Redshift vs Athena",{"type":43,"tag":119,"props":1623,"children":1624},{},[1625,1645],{"type":43,"tag":123,"props":1626,"children":1627},{},[1628],{"type":43,"tag":127,"props":1629,"children":1630},{},[1631,1635,1640],{"type":43,"tag":131,"props":1632,"children":1633},{},[1634],{"type":48,"value":1476},{"type":43,"tag":131,"props":1636,"children":1637},{},[1638],{"type":48,"value":1639},"Choose Redshift Serverless",{"type":43,"tag":131,"props":1641,"children":1642},{},[1643],{"type":48,"value":1644},"Choose Athena",{"type":43,"tag":147,"props":1646,"children":1647},{},[1648,1666,1684,1702,1720,1738],{"type":43,"tag":127,"props":1649,"children":1650},{},[1651,1656,1661],{"type":43,"tag":154,"props":1652,"children":1653},{},[1654],{"type":48,"value":1655},"Query frequency",{"type":43,"tag":154,"props":1657,"children":1658},{},[1659],{"type":48,"value":1660},"High (many queries\u002Fday)",{"type":43,"tag":154,"props":1662,"children":1663},{},[1664],{"type":48,"value":1665},"Low (ad-hoc)",{"type":43,"tag":127,"props":1667,"children":1668},{},[1669,1674,1679],{"type":43,"tag":154,"props":1670,"children":1671},{},[1672],{"type":48,"value":1673},"Data location",{"type":43,"tag":154,"props":1675,"children":1676},{},[1677],{"type":48,"value":1678},"Needs dedicated warehouse",{"type":43,"tag":154,"props":1680,"children":1681},{},[1682],{"type":48,"value":1683},"Already in S3",{"type":43,"tag":127,"props":1685,"children":1686},{},[1687,1692,1697],{"type":43,"tag":154,"props":1688,"children":1689},{},[1690],{"type":48,"value":1691},"Performance",{"type":43,"tag":154,"props":1693,"children":1694},{},[1695],{"type":48,"value":1696},"Consistent, tunable",{"type":43,"tag":154,"props":1698,"children":1699},{},[1700],{"type":48,"value":1701},"Variable by scan size",{"type":43,"tag":127,"props":1703,"children":1704},{},[1705,1710,1715],{"type":43,"tag":154,"props":1706,"children":1707},{},[1708],{"type":48,"value":1709},"Concurrency",{"type":43,"tag":154,"props":1711,"children":1712},{},[1713],{"type":48,"value":1714},"High concurrent queries",{"type":43,"tag":154,"props":1716,"children":1717},{},[1718],{"type":48,"value":1719},"Limited by service quota",{"type":43,"tag":127,"props":1721,"children":1722},{},[1723,1728,1733],{"type":43,"tag":154,"props":1724,"children":1725},{},[1726],{"type":48,"value":1727},"Cost model",{"type":43,"tag":154,"props":1729,"children":1730},{},[1731],{"type":48,"value":1732},"Per RPU-hour",{"type":43,"tag":154,"props":1734,"children":1735},{},[1736],{"type":48,"value":1737},"Per TB scanned",{"type":43,"tag":127,"props":1739,"children":1740},{},[1741,1746,1751],{"type":43,"tag":154,"props":1742,"children":1743},{},[1744],{"type":48,"value":1745},"Complex transformations",{"type":43,"tag":154,"props":1747,"children":1748},{},[1749],{"type":48,"value":1750},"Yes (materialized views, stored procedures)",{"type":43,"tag":154,"props":1752,"children":1753},{},[1754],{"type":48,"value":1755},"Limited",{"type":43,"tag":51,"props":1757,"children":1759},{"id":1758},"instance-type-cross-reference",[1760],{"type":48,"value":1761},"Instance Type Cross-Reference",{"type":43,"tag":119,"props":1763,"children":1764},{},[1765,1786],{"type":43,"tag":123,"props":1766,"children":1767},{},[1768],{"type":43,"tag":127,"props":1769,"children":1770},{},[1771,1776,1781],{"type":43,"tag":131,"props":1772,"children":1773},{},[1774],{"type":48,"value":1775},"Use Case",{"type":43,"tag":131,"props":1777,"children":1778},{},[1779],{"type":48,"value":1780},"GCP Type",{"type":43,"tag":131,"props":1782,"children":1783},{},[1784],{"type":48,"value":1785},"AWS Type",{"type":43,"tag":147,"props":1787,"children":1788},{},[1789,1807,1823,1841,1859,1877],{"type":43,"tag":127,"props":1790,"children":1791},{},[1792,1797,1802],{"type":43,"tag":154,"props":1793,"children":1794},{},[1795],{"type":48,"value":1796},"General 2 vCPU, 8GB",{"type":43,"tag":154,"props":1798,"children":1799},{},[1800],{"type":48,"value":1801},"n2-standard-2",{"type":43,"tag":154,"props":1803,"children":1804},{},[1805],{"type":48,"value":1806},"m6i.large",{"type":43,"tag":127,"props":1808,"children":1809},{},[1810,1815,1819],{"type":43,"tag":154,"props":1811,"children":1812},{},[1813],{"type":48,"value":1814},"General 4 vCPU, 16GB",{"type":43,"tag":154,"props":1816,"children":1817},{},[1818],{"type":48,"value":599},{"type":43,"tag":154,"props":1820,"children":1821},{},[1822],{"type":48,"value":607},{"type":43,"tag":127,"props":1824,"children":1825},{},[1826,1831,1836],{"type":43,"tag":154,"props":1827,"children":1828},{},[1829],{"type":48,"value":1830},"General 8 vCPU, 32GB",{"type":43,"tag":154,"props":1832,"children":1833},{},[1834],{"type":48,"value":1835},"n2-standard-8",{"type":43,"tag":154,"props":1837,"children":1838},{},[1839],{"type":48,"value":1840},"m6i.2xlarge",{"type":43,"tag":127,"props":1842,"children":1843},{},[1844,1849,1854],{"type":43,"tag":154,"props":1845,"children":1846},{},[1847],{"type":48,"value":1848},"Compute 4 vCPU, 8GB",{"type":43,"tag":154,"props":1850,"children":1851},{},[1852],{"type":48,"value":1853},"c2-standard-4",{"type":43,"tag":154,"props":1855,"children":1856},{},[1857],{"type":48,"value":1858},"c6i.xlarge",{"type":43,"tag":127,"props":1860,"children":1861},{},[1862,1867,1872],{"type":43,"tag":154,"props":1863,"children":1864},{},[1865],{"type":48,"value":1866},"Memory 4 vCPU, 32GB",{"type":43,"tag":154,"props":1868,"children":1869},{},[1870],{"type":48,"value":1871},"n2-highmem-4",{"type":43,"tag":154,"props":1873,"children":1874},{},[1875],{"type":48,"value":1876},"r6i.xlarge",{"type":43,"tag":127,"props":1878,"children":1879},{},[1880,1885,1890],{"type":43,"tag":154,"props":1881,"children":1882},{},[1883],{"type":48,"value":1884},"GPU (1x T4)",{"type":43,"tag":154,"props":1886,"children":1887},{},[1888],{"type":48,"value":1889},"n1-standard-4 + T4",{"type":43,"tag":154,"props":1891,"children":1892},{},[1893],{"type":48,"value":1894},"g4dn.xlarge",{"type":43,"tag":51,"props":1896,"children":1898},{"id":1897},"output-format",[1899],{"type":48,"value":1900},"Output Format",{"type":43,"tag":44,"props":1902,"children":1903},{},[1904],{"type":48,"value":1905},"When advising on a GCP-to-AWS migration:",{"type":43,"tag":58,"props":1907,"children":1908},{},[1909,1919,1929,1939,1949,1959,1969],{"type":43,"tag":62,"props":1910,"children":1911},{},[1912,1917],{"type":43,"tag":66,"props":1913,"children":1914},{},[1915],{"type":48,"value":1916},"Inventory Summary",{"type":48,"value":1918},": What's running on GCP (from assessment)",{"type":43,"tag":62,"props":1920,"children":1921},{},[1922,1927],{"type":43,"tag":66,"props":1923,"children":1924},{},[1925],{"type":48,"value":1926},"Service Mapping",{"type":48,"value":1928},": Each GCP service → AWS equivalent with complexity rating",{"type":43,"tag":62,"props":1930,"children":1931},{},[1932,1937],{"type":43,"tag":66,"props":1933,"children":1934},{},[1935],{"type":48,"value":1936},"Gotcha Report",{"type":48,"value":1938},": Specific gotchas relevant to THIS migration",{"type":43,"tag":62,"props":1940,"children":1941},{},[1942,1947],{"type":43,"tag":66,"props":1943,"children":1944},{},[1945],{"type":48,"value":1946},"Decision Points",{"type":48,"value":1948},": Where the mapping isn't 1:1, present options with trade-offs",{"type":43,"tag":62,"props":1950,"children":1951},{},[1952,1957],{"type":43,"tag":66,"props":1953,"children":1954},{},[1955],{"type":48,"value":1956},"Migration Waves",{"type":48,"value":1958},": Suggested order (low-risk first, dependencies mapped)",{"type":43,"tag":62,"props":1960,"children":1961},{},[1962,1967],{"type":43,"tag":66,"props":1963,"children":1964},{},[1965],{"type":48,"value":1966},"Cost Comparison",{"type":48,"value":1968},": Estimated AWS cost vs current GCP spend",{"type":43,"tag":62,"props":1970,"children":1971},{},[1972,1977],{"type":43,"tag":66,"props":1973,"children":1974},{},[1975],{"type":48,"value":1976},"Next Steps",{"type":48,"value":1978},": IaC scaffolding, PoC plan, timeline estimate",{"type":43,"tag":44,"props":1980,"children":1981},{},[1982],{"type":48,"value":1983},"For detailed per-service mappings, see:",{"type":43,"tag":1985,"props":1986,"children":1987},"ul",{},[1988,1999,2009],{"type":43,"tag":62,"props":1989,"children":1990},{},[1991,1997],{"type":43,"tag":1992,"props":1993,"children":1995},"a",{"href":1994},"references\u002Fcompute.md",[1996],{"type":48,"value":1994},{"type":48,"value":1998}," — Compute Engine, GKE, Cloud Run, App Engine",{"type":43,"tag":62,"props":2000,"children":2001},{},[2002,2007],{"type":43,"tag":1992,"props":2003,"children":2005},{"href":2004},"references\u002Fdata.md",[2006],{"type":48,"value":2004},{"type":48,"value":2008}," — Cloud SQL, Spanner, BigQuery, Firestore, GCS, Bigtable",{"type":43,"tag":62,"props":2010,"children":2011},{},[2012,2017],{"type":43,"tag":1992,"props":2013,"children":2015},{"href":2014},"references\u002Fnetworking.md",[2016],{"type":48,"value":2014},{"type":48,"value":2018}," — VPC, Load Balancing, DNS, CDN, NAT",{"type":43,"tag":51,"props":2020,"children":2022},{"id":2021},"anti-patterns",[2023],{"type":48,"value":2024},"Anti-Patterns",{"type":43,"tag":58,"props":2026,"children":2027},{},[2028,2038,2048,2058,2068,2078],{"type":43,"tag":62,"props":2029,"children":2030},{},[2031,2036],{"type":43,"tag":66,"props":2032,"children":2033},{},[2034],{"type":48,"value":2035},"Lift-and-shift everything",{"type":48,"value":2037},": Some GCP services (Spanner, BigQuery) require rearchitecting. Don't force 1:1 mappings.",{"type":43,"tag":62,"props":2039,"children":2040},{},[2041,2046],{"type":43,"tag":66,"props":2042,"children":2043},{},[2044],{"type":48,"value":2045},"Ignoring VPC topology",{"type":48,"value":2047},": GCP global VPCs → AWS regional VPCs is a fundamental architecture change. Plan it first.",{"type":43,"tag":62,"props":2049,"children":2050},{},[2051,2056],{"type":43,"tag":66,"props":2052,"children":2053},{},[2054],{"type":48,"value":2055},"Migrating data last",{"type":48,"value":2057},": Data migration is always the bottleneck. Start DMS\u002FDataSync early.",{"type":43,"tag":62,"props":2059,"children":2060},{},[2061,2066],{"type":43,"tag":66,"props":2062,"children":2063},{},[2064],{"type":48,"value":2065},"One big cutover",{"type":48,"value":2067},": Use migration waves. Migrate low-risk workloads first to build confidence.",{"type":43,"tag":62,"props":2069,"children":2070},{},[2071,2076],{"type":43,"tag":66,"props":2072,"children":2073},{},[2074],{"type":48,"value":2075},"Copying GCP IAM directly",{"type":48,"value":2077},": AWS IAM is structured differently. Redesign, don't copy.",{"type":43,"tag":62,"props":2079,"children":2080},{},[2081,2086],{"type":43,"tag":66,"props":2082,"children":2083},{},[2084],{"type":48,"value":2085},"Ignoring cost model differences",{"type":48,"value":2087},": GCP per-second billing vs AWS per-hour for some services. Model costs before migrating.",{"type":43,"tag":2089,"props":2090,"children":2091},"style",{},[2092],{"type":48,"value":2093},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2095,"total":1431},[2096,2110,2125,2137,2147,2162,2179],{"slug":2097,"name":2097,"fn":2098,"description":2099,"org":2100,"tags":2101,"stars":26,"repoUrl":27,"updatedAt":2109},"agentcore","design Amazon Bedrock AgentCore architectures","Deep-dive into Amazon Bedrock AgentCore platform design, service selection, deployment, and production operations. This skill should be used when the user asks to \"design an AgentCore architecture\", \"deploy agents on AgentCore\", \"configure AgentCore Runtime\", \"set up AgentCore Memory\", \"use AgentCore Gateway\", \"configure AgentCore Identity\", \"set up AgentCore Policy\", \"plan agent observability\", \"evaluate agent quality\", \"move agent PoC to production\", or mentions AgentCore, AgentCore Runtime, AgentCore Memory, AgentCore Gateway, AgentCore Identity, AgentCore Policy, AgentCore Evaluations, AgentCore Code Interpreter, AgentCore Browser, A2A protocol, or multi-agent orchestration on AWS.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2102,2105,2108],{"name":2103,"slug":2104,"type":16},"Agents","agents",{"name":2106,"slug":2107,"type":16},"Architecture","architecture",{"name":21,"slug":22,"type":16},"2026-07-12T08:40:11.108951",{"slug":2111,"name":2111,"fn":2112,"description":2113,"org":2114,"tags":2115,"stars":26,"repoUrl":27,"updatedAt":2124},"aidlc-lite","develop AI applications on AWS","Lightweight AI development lifecycle for building on AWS. A simplified take on the AI-DLC philosophy — think together, then build fast. Acts as a design partner that understands intent, proposes alternatives with trade-offs, and ships working code without the ceremony of full requirements\u002Fdesign\u002Fspec documents. Use when a founder says \"build X on AWS\", \"add Y to my stack\", \"scaffold an API\", or \"write the CDK for Z\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2116,2117,2120,2121],{"name":2103,"slug":2104,"type":16},{"name":2118,"slug":2119,"type":16},"AI Infrastructure","ai-infrastructure",{"name":21,"slug":22,"type":16},{"name":2122,"slug":2123,"type":16},"Engineering","engineering","2026-07-12T08:40:40.204103",{"slug":2126,"name":2126,"fn":2127,"description":2128,"org":2129,"tags":2130,"stars":26,"repoUrl":27,"updatedAt":2136},"architect-for-startups","advise on AWS architecture for startups","AWS architecture advisor tailored specifically for startups. Alters AWS architecture recommendations based on startup stage (pre-revenue through Series B+), team size, runway, and credits. ALWAYS use when asked about building on AWS, choosing services, planning infrastructure, managing costs with credits, or preparing architecture for fundraising.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2131,2132,2133],{"name":2106,"slug":2107,"type":16},{"name":21,"slug":22,"type":16},{"name":2134,"slug":2135,"type":16},"Strategy","strategy","2026-07-12T08:41:33.557354",{"slug":2138,"name":2138,"fn":2139,"description":2140,"org":2141,"tags":2142,"stars":26,"repoUrl":27,"updatedAt":2146},"aws-architect","design and review AWS architectures","Design and review AWS architectures following Well-Architected Framework principles. Use when planning new infrastructure, reviewing existing architectures, evaluating trade-offs between AWS services, or when asked about AWS best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2143,2144,2145],{"name":2106,"slug":2107,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},"2026-07-12T08:40:57.630086",{"slug":2148,"name":2148,"fn":2149,"description":2150,"org":2151,"tags":2152,"stars":26,"repoUrl":27,"updatedAt":2161},"aws-compare","compare AWS architecture options","Compare 2-3 AWS architecture options side-by-side across cost, complexity, performance, security, and operational burden. Use when evaluating trade-offs between approaches or when the user is deciding between options.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2153,2154,2155,2158],{"name":2106,"slug":2107,"type":16},{"name":21,"slug":22,"type":16},{"name":2156,"slug":2157,"type":16},"Cost Optimization","cost-optimization",{"name":2159,"slug":2160,"type":16},"Security","security","2026-07-12T08:40:23.960287",{"slug":2163,"name":2163,"fn":2164,"description":2165,"org":2166,"tags":2167,"stars":26,"repoUrl":27,"updatedAt":2178},"aws-debug","debug AWS infrastructure and deployment failures","Debug AWS infrastructure issues, deployment failures, and runtime errors. Use when troubleshooting CloudFormation stack failures, Lambda errors, ECS task failures, permission issues, networking problems, or any AWS service misbehavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2168,2169,2172,2175],{"name":21,"slug":22,"type":16},{"name":2170,"slug":2171,"type":16},"Debugging","debugging",{"name":2173,"slug":2174,"type":16},"Deployment","deployment",{"name":2176,"slug":2177,"type":16},"Observability","observability","2026-07-12T08:40:16.767171",{"slug":2180,"name":2180,"fn":2181,"description":2182,"org":2183,"tags":2184,"stars":26,"repoUrl":27,"updatedAt":2193},"aws-diagram","generate AWS architecture diagrams","Generate AWS architecture diagrams in Mermaid or ASCII from a description, existing IaC, or conversation context. Use when the user wants to visualize an architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2185,2186,2187,2190],{"name":2106,"slug":2107,"type":16},{"name":21,"slug":22,"type":16},{"name":2188,"slug":2189,"type":16},"Diagrams","diagrams",{"name":2191,"slug":2192,"type":16},"Visualization","visualization","2026-07-12T08:40:43.26341",{"items":2195,"total":2365},[2196,2211,2232,2242,2253,2266,2276,2286,2305,2320,2335,2350],{"slug":2197,"name":2197,"fn":2198,"description":2199,"org":2200,"tags":2201,"stars":2208,"repoUrl":2209,"updatedAt":2210},"agentcore-investigation","investigate Bedrock AgentCore runtime sessions","Investigate Bedrock AgentCore runtime sessions via CloudWatch Logs Insights — resolve session\u002Ftrace IDs, query OTEL spans, filter noise, build timelines. Use when debugging AgentCore agent sessions, tracing tool calls, or analyzing latency.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2202,2203,2204,2207],{"name":21,"slug":22,"type":16},{"name":2170,"slug":2171,"type":16},{"name":2205,"slug":2206,"type":16},"Logs","logs",{"name":2176,"slug":2177,"type":16},9427,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fmcp","2026-07-12T08:37:22.601527",{"slug":2212,"name":2213,"fn":2214,"description":2215,"org":2216,"tags":2217,"stars":2208,"repoUrl":2209,"updatedAt":2231},"amazon-aurora-dsql","amazon aurora dsql","build applications with Aurora DSQL","Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, FK replacement code generation, OCC retry patterns, ORM migration (Django\u002FHibernate\u002FRails), DDL operations, query plan explainability, SQL compatibility validation, and bulk data loading. Triggers on phrases like: DSQL, Aurora DSQL, create DSQL table, DSQL schema, migrate to DSQL, distributed SQL database, serverless PostgreSQL-compatible database, DSQL query plan, DSQL EXPLAIN ANALYZE, why is my DSQL query slow, DSQL foreign key, DSQL OCC retry, DSQL multi-region, load into DSQL, load CSV into DSQL, bulk load DSQL, aurora-dsql-loader.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2218,2221,2222,2225,2228],{"name":2219,"slug":2220,"type":16},"Aurora","aurora",{"name":21,"slug":22,"type":16},{"name":2223,"slug":2224,"type":16},"Database","database",{"name":2226,"slug":2227,"type":16},"Serverless","serverless",{"name":2229,"slug":2230,"type":16},"SQL","sql","2026-07-12T08:36:45.053393",{"slug":2233,"name":2234,"fn":2214,"description":2215,"org":2235,"tags":2236,"stars":2208,"repoUrl":2209,"updatedAt":2241},"aurora-dsql","aurora dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2237,2238,2239,2240],{"name":21,"slug":22,"type":16},{"name":2223,"slug":2224,"type":16},{"name":2226,"slug":2227,"type":16},{"name":2229,"slug":2230,"type":16},"2026-07-12T08:36:42.694299",{"slug":2243,"name":2244,"fn":2214,"description":2215,"org":2245,"tags":2246,"stars":2208,"repoUrl":2209,"updatedAt":2252},"aws-dsql","aws dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2247,2248,2249,2250,2251],{"name":21,"slug":22,"type":16},{"name":2223,"slug":2224,"type":16},{"name":14,"slug":15,"type":16},{"name":2226,"slug":2227,"type":16},{"name":2229,"slug":2230,"type":16},"2026-07-12T08:36:38.584057",{"slug":2254,"name":2255,"fn":2214,"description":2215,"org":2256,"tags":2257,"stars":2208,"repoUrl":2209,"updatedAt":2265},"distributed-postgres","distributed postgres",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2258,2259,2260,2263,2264],{"name":21,"slug":22,"type":16},{"name":2223,"slug":2224,"type":16},{"name":2261,"slug":2262,"type":16},"PostgreSQL","postgresql",{"name":2226,"slug":2227,"type":16},{"name":2229,"slug":2230,"type":16},"2026-07-12T08:36:46.530743",{"slug":2267,"name":2268,"fn":2214,"description":2215,"org":2269,"tags":2270,"stars":2208,"repoUrl":2209,"updatedAt":2275},"distributed-sql","distributed sql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2271,2272,2273,2274],{"name":21,"slug":22,"type":16},{"name":2223,"slug":2224,"type":16},{"name":2226,"slug":2227,"type":16},{"name":2229,"slug":2230,"type":16},"2026-07-12T08:36:48.104182",{"slug":2277,"name":2277,"fn":2214,"description":2215,"org":2278,"tags":2279,"stars":2208,"repoUrl":2209,"updatedAt":2285},"dsql",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2280,2281,2282,2283,2284],{"name":21,"slug":22,"type":16},{"name":2223,"slug":2224,"type":16},{"name":14,"slug":15,"type":16},{"name":2226,"slug":2227,"type":16},{"name":2229,"slug":2230,"type":16},"2026-07-12T08:36:36.374512",{"slug":2287,"name":2287,"fn":2288,"description":2289,"org":2290,"tags":2291,"stars":2302,"repoUrl":2303,"updatedAt":2304},"cost-efficiency-analyzer","analyze cost efficiency and expenses","Analyzes cost structure, cost efficiency, and expense management from P&L data. Use when the user asks about costs, expenses, COGS, operating expenses, cost ratios, cost control, spending efficiency, margin compression from cost side, or wants to understand where money is going. Also use for \"are we spending too much\", \"cost breakdown\", \"expense analysis\", or \"how efficient are our operations\". NOT for revenue or top-line analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2292,2295,2298,2299],{"name":2293,"slug":2294,"type":16},"Accounting","accounting",{"name":2296,"slug":2297,"type":16},"Analytics","analytics",{"name":2156,"slug":2157,"type":16},{"name":2300,"slug":2301,"type":16},"Finance","finance",3176,"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fagentcore-samples","2026-07-12T08:40:03.29555",{"slug":2306,"name":2306,"fn":2307,"description":2308,"org":2309,"tags":2310,"stars":2302,"repoUrl":2303,"updatedAt":2319},"executive-financial-briefing","generate executive financial briefings","Generates a concise executive-level financial briefing or summary suitable for a CEO, CFO, or board presentation. Use when the user asks for a summary, briefing, executive summary, board update, financial overview, financial health check, or \"how is the business doing\". Covers the full P&L picture in one page. Also use for \"give me the highlights\", \"what do I need to know\", or \"quick financial update\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2311,2312,2313,2316],{"name":21,"slug":22,"type":16},{"name":2300,"slug":2301,"type":16},{"name":2314,"slug":2315,"type":16},"Management","management",{"name":2317,"slug":2318,"type":16},"Reporting","reporting","2026-07-12T08:40:02.066471",{"slug":2321,"name":2321,"fn":2322,"description":2323,"org":2324,"tags":2325,"stars":2302,"repoUrl":2303,"updatedAt":2334},"multi-quarter-trend-analysis","analyze multi-quarter financial trends","Analyzes financial trends across multiple quarters by comparing P&L metrics over time. Use when the user wants to see trends, patterns, trajectories, or directional movement across 3 or more quarters. Also use for \"how are we trending\", \"show me the trend\", \"track performance over time\", \"quarter over quarter comparison across all quarters\", or any multi-period longitudinal analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2326,2327,2328,2331],{"name":2296,"slug":2297,"type":16},{"name":2300,"slug":2301,"type":16},{"name":2329,"slug":2330,"type":16},"Financial Statements","financial-statements",{"name":2332,"slug":2333,"type":16},"Variance Analysis","variance-analysis","2026-07-12T08:40:00.79141",{"slug":2336,"name":2336,"fn":2337,"description":2338,"org":2339,"tags":2340,"stars":2302,"repoUrl":2303,"updatedAt":2349},"pdf","process and manipulate PDF documents","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2341,2344,2347],{"name":2342,"slug":2343,"type":16},"Automation","automation",{"name":2345,"slug":2346,"type":16},"Documents","documents",{"name":2348,"slug":2336,"type":16},"PDF","2026-07-12T08:41:44.135656",{"slug":2351,"name":2351,"fn":2352,"description":2353,"org":2354,"tags":2355,"stars":2302,"repoUrl":2303,"updatedAt":2364},"quarterly-kpi-calculator","calculate quarterly financial KPIs","Calculates quarterly financial KPIs from P&L data. P&L figures can be provided directly by the user or fetched from the financial data MCP server. Use when the user wants KPI calculations such as Gross Margin %, EBITDA Margin %, Operating Expense Ratio, or Revenue Growth % QoQ. Also use for quarterly performance review, P&L analysis, or interpreting financial ratios against benchmarks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2356,2357,2360,2361],{"name":2293,"slug":2294,"type":16},{"name":2358,"slug":2359,"type":16},"Data Analysis","data-analysis",{"name":2300,"slug":2301,"type":16},{"name":2362,"slug":2363,"type":16},"KPI","kpi","2026-07-12T08:39:59.54971",150]