Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
d1b06af
feat(gcp-to-aws): add Elastic Beanstalk as migration target for App E…
azpaulp Jul 1, 2026
c9dd4f1
fix(gcp-to-aws): correct examples and output schema in compute.md
azpaulp Jul 1, 2026
214fb88
Merge branch 'main' into feat/elastic-beanstalk-gcp
azpaulp Jul 1, 2026
e7f0d22
Merge branch 'main' into feat/elastic-beanstalk-gcp
azpaulp Jul 2, 2026
e48d66e
Merge branch 'main' into feat/elastic-beanstalk-gcp
azpaulp Jul 7, 2026
31ef323
fix(gcp-to-aws): address EB review feedback (PR #101)
azpaulp Jul 13, 2026
b6c651a
fix(gcp-to-aws): wire App Engine → EB fan-out into design traversal (…
azpaulp Jul 14, 2026
9558724
Merge branch 'main' into feat/elastic-beanstalk-gcp
azpaulp Jul 14, 2026
0654577
fix(gcp-to-aws): address second-round PR #101 review feedback
azpaulp Jul 21, 2026
3f18bc0
Merge remote-tracking branch 'origin/main' into feat/elastic-beanstal…
azpaulp Jul 21, 2026
8fdf65c
feat(gcp-to-aws): wire App Engine → EB end-to-end (estimate + generat…
azpaulp Jul 21, 2026
4c6982e
Merge remote-tracking branch 'origin/main' into feat/elastic-beanstal…
azpaulp Jul 24, 2026
1e25704
fix(gcp-to-aws): Q7b respects Q5=multi-cloud — App Engine → EKS override
azpaulp Jul 24, 2026
cfb014f
fix(gcp-to-aws): clarify billing-table App Engine EKS override column
azpaulp Jul 24, 2026
89aea66
Merge branch 'main' into feat/elastic-beanstalk-gcp
azpaulp Jul 29, 2026
dd31ab2
Merge branch 'main' into feat/elastic-beanstalk-gcp
azpaulp Aug 3, 2026
5b4c9e2
Merge branch 'main' into feat/elastic-beanstalk-gcp
azpaulp Aug 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions migrate/plugins/migration-to-aws/skills/gcp-to-aws/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: gcp-to-aws
description: "Migrate workloads from Google Cloud Platform to AWS — including AI and agentic workloads regardless of cloud provider. Triggers on: migrate from GCP, GCP to AWS, move off Google Cloud, migrate Terraform to AWS, migrate Cloud SQL to RDS, migrate GKE to EKS, migrate Cloud Run to Fargate, Google Cloud migration, migrate from OpenAI to Bedrock, move off OpenAI, switch from ChatGPT API to AWS, migrate from Gemini to Bedrock, migrate LangChain to Bedrock, migrate LangGraph to AWS, migrate agentic workloads to AWS, move AI workloads to AWS, migrate my AI app to AWS. Runs a 6-phase process: discover GCP resources from Terraform files, app code, or billing exports, clarify migration requirements, design AWS architecture, estimate costs, generate migration artifacts, and collect optional feedback. Clarify must finish before Design, Estimate, or Generate. Includes AI provider migration guidance (for example, OpenAI to Amazon Bedrock) by selecting closest-fit Bedrock model families for required modality, latency/quality targets, context windows, and cost constraints. Model mapping is compatibility-guided, not 1:1 parity; validate prompts, tool-calling behavior, and eval metrics before cutover. Do not use for: Azure or on-premises migrations to AWS, AWS-to-GCP reverse migration, general AWS architecture advice without migration intent, GCP-to-GCP refactoring, or multi-cloud deployments that do not involve migrating off GCP."
description: "Migrate workloads from Google Cloud Platform to AWS — including AI and agentic workloads regardless of cloud provider. Triggers on: migrate from GCP, GCP to AWS, move off Google Cloud, migrate Terraform to AWS, migrate Cloud SQL to RDS, migrate GKE to EKS, migrate Cloud Run to Fargate, migrate App Engine to Elastic Beanstalk, Google Cloud migration, migrate from OpenAI to Bedrock, move off OpenAI, switch from ChatGPT API to AWS, migrate from Gemini to Bedrock, migrate LangChain to Bedrock, migrate LangGraph to AWS, migrate agentic workloads to AWS, move AI workloads to AWS, migrate my AI app to AWS. Runs a 6-phase process: discover GCP resources from Terraform files, app code, or billing exports, clarify migration requirements, design AWS architecture, estimate costs, generate migration artifacts, and collect optional feedback. Clarify must finish before Design, Estimate, or Generate. Includes AI provider migration guidance (for example, OpenAI to Amazon Bedrock) by selecting closest-fit Bedrock model families for required modality, latency/quality targets, context windows, and cost constraints. Model mapping is compatibility-guided, not 1:1 parity; validate prompts, tool-calling behavior, and eval metrics before cutover. Do not use for: Azure or on-premises migrations to AWS, AWS-to-GCP reverse migration, general AWS architecture advice without migration intent, GCP-to-GCP refactoring, or multi-cloud deployments that do not involve migrating off GCP."
---

# GCP-to-AWS Migration Skill
Expand Down Expand Up @@ -33,16 +33,17 @@ Each phase loads reference files on demand. To keep per-turn context manageable

**Conditional reference files (load ONLY when condition is true):**

| File | Condition |
| ------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| `design-refs/ai-gemini-to-bedrock.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"gemini"` or `"both"` |
| `design-refs/ai-openai-to-bedrock.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"openai"` or `"both"` |
| `design-refs/ai-anthropic-to-bedrock.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"anthropic"` |
| `design-refs/ai.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"other"` |
| `design-refs/design-ref-harness.md` | `agentic_profile.is_agentic == true` AND `ai_constraints.agentic.migration_approach == "harness"` |
| `design-refs/design-ref-agentic-to-agentcore.md` | `agentic_profile.is_agentic == true` AND `ai_constraints.agentic.migration_approach == "strands"` |
| `shared/retarget-gotchas.md` | `agentic_profile.is_agentic == true` AND `ai_constraints.agentic.migration_approach == "retarget"` |
| `shared/graviton.md` | Compute, DB, or cache in inventory OR `graviton_profile` present (Design/Estimate/Generate) |
| File | Condition |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `design-refs/ai-gemini-to-bedrock.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"gemini"` or `"both"` |
| `design-refs/ai-openai-to-bedrock.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"openai"` or `"both"` |
| `design-refs/ai-anthropic-to-bedrock.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"anthropic"` |
| `design-refs/ai.md` | `ai-workload-profile.json` exists AND `summary.ai_source` = `"other"` |
| `design-refs/elastic-beanstalk.md` | `google_app_engine_application` in inventory (optionally with `compute_model == "managed_platform"` in preferences) **and `compute` ≠ `"eks"`**. Supplementary reference for EB configuration detail (platforms, IAM, VPC, deployment policies). Does not replace `compute.md` — both may be needed in mixed projects. Skip when no App Engine is in inventory (even if `compute_model` is set), or when `compute: "eks"` (Q5 = multi-cloud) routed App Engine to EKS. |
| `design-refs/design-ref-harness.md` | `agentic_profile.is_agentic == true` AND `ai_constraints.agentic.migration_approach == "harness"` |
| `design-refs/design-ref-agentic-to-agentcore.md` | `agentic_profile.is_agentic == true` AND `ai_constraints.agentic.migration_approach == "strands"` |
| `shared/retarget-gotchas.md` | `agentic_profile.is_agentic == true` AND `ai_constraints.agentic.migration_approach == "retarget"` |
| `shared/graviton.md` | Compute, DB, or cache in inventory OR `graviton_profile` present (Design/Estimate/Generate) |

When adding new reference files, verify the phase's total loaded instructions remain under budget. If a new file would exceed ~800 lines when combined with other loaded refs, split it or make it conditional.

Expand Down Expand Up @@ -280,6 +281,7 @@ gcp-to-aws/
│ │ ├── index.md # Lookup table: GCP type → design-ref file
│ │ ├── fast-path.md # Deterministic 1:1 mappings (Pass 1)
│ │ ├── compute.md # Compute mappings (Cloud Run, GCE, GKE, etc.)
│ │ ├── elastic-beanstalk.md # Elastic Beanstalk (App Engine, managed platform)
│ │ ├── database.md # Database mappings (Cloud SQL, Spanner, etc.)
│ │ ├── storage.md # Storage mappings (GCS, Filestore, etc.)
│ │ ├── networking.md # Networking mappings (VPC, LB, DNS, etc.)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ Match resource type against secondary classification table. Each match assigns a
- `google_secret_manager_secret_version` — Secret value
- `google_dns_record_set` — DNS record
- `google_monitoring_notification_channel` — Alert notification target
- `google_app_engine_standard_app_version` — App Engine service/version. Config source for the parent `google_app_engine_application`, carrying `runtime`, `instance_class`, `env_variables`, and scaling — the data the EB mapping needs. Note: these resources do **not** reference the parent by ID (link is the shared `project`), so `serves[]` may be empty and they may cluster separately; the App Engine fan-out step in `phases/design/design-infra.md` locates them by scanning the full inventory. **Not excluded from discovery** (they are classified and clustered here); they are a design-phase Skip Mapping (no standalone AWS target) — see `design-refs/fast-path.md`.
- `google_app_engine_flexible_app_version` — App Engine Flexible service/version (config source for the parent; same handling as the standard variant)

### Encryption (`encryption`)

Expand Down
Loading
Loading