sodcalculator

10 Tech How-To

Migrate GPU Workloads from CoreWeave to AWS, Azure, or GCP

Guide 10-37587 · Updated · Step by step

This guide walks you through moving GPU-based workloads from CoreWeave to Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP). You’ll learn the key differences, step-by-step migration strategies, and common pitfalls to avoid. Whether you’re migrating for cost, compliance, or feature reasons, this guide gives you a practical path forward.

What You’ll Need

  • Access to your CoreWeave account with the workloads and data you want to migrate.
  • An account on your target cloud provider (AWS, Azure, or GCP) with permissions to create GPU instances, storage, and networking resources.
  • Basic familiarity with your target provider’s CLI or console, and with Docker/containerization if your workloads are containerized.
  • Your application’s source code, configuration files, and any custom scripts or dependencies.
  • A plan for data transfer (e.g., using cloud storage buckets, direct transfer services, or physical disks for very large datasets).

Step-by-Step

  1. Inventory your CoreWeave workloads. List all GPU instances, their types (e.g., A100, V100, RTX), storage volumes, and network configurations. Note which workloads are stateful (with persistent data) and which are stateless.
  2. Choose your target GPU instance. Each cloud provider offers similar GPU families. On AWS, look at EC2 P4d (A100) or G4dn (T4); on Azure, the ND or NC series; on GCP, the A2 (A100) or T4 series. Match vCPU, RAM, and GPU memory to your workload’s needs.
  3. Prepare your application for the target environment. If your workload uses CUDA or specific GPU drivers, ensure the target instance’s AMI or OS image includes them. For containerized workloads, update your Docker images to use the target cloud’s registry (ECR, ACR, or GCR) and push them.
  4. Set up networking and security. Create a VPC (AWS), Virtual Network (Azure), or VPC (GCP) with subnets, security groups/firewall rules, and IAM roles or service accounts that match your CoreWeave setup. Ensure inbound/outbound rules align with your application’s ports.
  5. Migrate data. For small datasets, use scp or rsync directly. For larger data, use cloud storage (S3, Azure Blob, GCS) as an intermediary: upload from CoreWeave, then download to the new instance. For very large datasets, consider AWS Snowball, Azure Data Box, or GCP Transfer Appliance.
  6. Deploy your workload. Launch the GPU instance, install any missing dependencies, and run your application. For containerized workloads, use the cloud’s container service (ECS/EKS, AKS, GKE) or simply run Docker on a VM.
  7. Test thoroughly. Run your benchmarks and functional tests to ensure performance is comparable. Check GPU utilization, latency, and throughput. Pay attention to any differences in network latency or storage I/O.
  8. Update DNS and endpoints. If your application is client-facing, update DNS records to point to the new instance’s public IP or load balancer. Test external access.
  9. Decommission CoreWeave resources. After a successful cutover and a grace period, terminate your CoreWeave instances and release any reserved IPs or storage to avoid ongoing costs.

Common Mistakes

  • Ignoring instance architecture differences: CoreWeave may use different CPU architectures (e.g., ARM vs. x86) or GPU driver versions. Always check compatibility before migrating.
  • Overlooking data transfer costs: Moving large datasets out of CoreWeave can incur egress fees. Plan your transfer method to minimize costs.
  • Not updating security groups/firewalls: Your application may fail silently if the new cloud’s security rules are too restrictive. Test from an external network.
  • Assuming identical performance: GPU performance can vary due to thermal throttling, neighbor instances, or different network topologies. Benchmark before committing.
  • Forgetting about persistent storage: If your workload writes to local disk, ensure you attach persistent volumes (EBS, Azure Disk, or Persistent Disk) and migrate data accordingly.

Tips

  • Use Infrastructure-as-Code (Terraform, CloudFormation, etc.) to recreate your environment reproducibly. This reduces manual errors and makes rollback easier.
  • Start with a non-production workload to validate the migration process before moving critical systems.
  • Leverage spot/preemptible instances for cost savings if your workload is fault-tolerant, but be aware of potential interruptions.
  • Consider using a multi-cloud Kubernetes platform (e.g., Rancher, Anthos) to abstract away provider-specific details, making future migrations easier.
  • Document every change you make during migration, including IP addresses, IAM roles, and configuration files. This helps with troubleshooting and audits.

Troubleshooting

Workload fails to start: Check the instance logs (via console or SSH). Common causes include missing GPU drivers, incompatible CUDA versions, or missing environment variables. Reinstall drivers from the cloud provider’s repository or use a pre-configured deep learning AMI.

Performance is worse than expected: Verify that the GPU is being utilized (nvidia-smi). Check for CPU bottlenecks, insufficient RAM, or network latency. Compare instance specs with your CoreWeave setup; you may need a larger instance type.

Data transfer is too slow: Use parallel transfer tools (e.g., aws s3 sync with concurrency flags, azcopy, gsutil -m). For very large datasets, consider a dedicated direct connect or physical transfer device.

Cannot connect to the instance: Verify security group/firewall rules allow inbound SSH (port 22) or your application port. Check that the instance has a public IP or that you’re using a bastion host.

Application works but external clients can’t reach it: Ensure the instance’s public IP is correct and that DNS records are updated. Check load balancer health checks and target group configurations.

Frequently Asked Questions

Can I migrate a running workload without downtime?

For stateless workloads, you can set up a parallel environment and switch traffic via DNS or a load balancer. For stateful workloads, plan a maintenance window to sync data and switch over.

How do I transfer data from CoreWeave to the new cloud?

Use rsync or scp for small data. For larger datasets, upload to a cloud storage bucket (S3, Azure Blob, GCS) and then download to your new instance. For petabytes, use physical transfer devices.

Are there any hidden costs during migration?

Yes: data egress from CoreWeave, data transfer between regions, and storage costs for the new cloud while you’re testing. Also, you may pay for both environments during the transition period.

Do I need to change my application code?

Usually not, if your application is containerized and uses standard CUDA libraries. However, you may need to adjust configuration for cloud-specific APIs (e.g., metadata services, IAM roles) or storage endpoints.

Which cloud is best for GPU workloads?

It depends on your needs: AWS offers the broadest ecosystem, Azure has strong enterprise integration, and GCP often has competitive pricing for preemptible instances. Compare GPU types and pricing for your specific workload.

Can I use Kubernetes to simplify migration?

Yes. If your workloads are already on Kubernetes, you can use a multi-cloud or managed Kubernetes service (EKS, AKS, GKE) to redeploy with minimal changes. This also makes future migrations easier.

Related

General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.

More in this bed

The whole Tech How-To bed →