Users who’ve migrated from Vapor to Cloud report cost reductions of up to 30% and speed gains of around 7%. If you’re ready to make the switch, this guide walks you through migrating your application from Vapor to Cloud.
Guide
Zero configuration. No vapor.yml, no AWS console, and no Lambda configuration are required.
Predictable performance: Kubernetes-based infrastructure eliminates cold starts.
Simpler pricing and usage-based billing without AWS markup or surprise charges.
Faster deployments: Git push-to-deploy in under 60 seconds.
Built-in features, including edge caching, WAF, DDoS protection, Laravel Reverb-powered WebSockets, and auto-hibernation included.
“We are surprised by the difference in feel of the site. According to Nightwatch, we won <100 ms per request, but each page feels much snappier. The gain of 100 ms per call in multiple calls in a page only adds to that feeling.”
![]()
François-Alexandre Perreault
Solutions Architect at Pyle
If you already have all these prerequisites in place, lower your DNS TTL 24 hours before migration for faster propagation.
Create your account at cloud.laravel.com and set up your organization. Have questions? Check our Laravel Cloud Quickstart documentation.
Have a complex migration and need assistance? Contact sales.
Don't deploy yet. Set up your infrastructure first by following the next steps. For more info, here’s how you can configure your application.
Create the resources your application needs:
Cloud automatically injects connection credentials as environment variables, so no manual configuration is needed.
You’ve now set up a new Laravel Cloud account and provisioned all necessary infrastructure. You can now migrate your Vapor application to Cloud.
With your new Cloud database provisioned and public endpoint enabled:
# From your local machine
mysql \
--host="cloud-db-host" \
--port="cloud-db-port" \
--user="cloud-db-username" \
--password="cloud-db-password" \
"cloud-db-database" < "dump-file.sql"
# From your local machine
pg_dump \
-Fc \
-f "dump-file.bak" \
"postgresql://vapor-db-username:vapor-db-password@vapor-db-host:vapor-db-port/vapor-db-database"
# From your local machine
pg_restore \
--clean \
--no-owner \
--no-acl \
--if-exists \
--dbname="postgresql://cloud-db-username:cloud-db-password@cloud-db-host:cloud-db-port/cloud-db-database" \
"dump-file.bak"
At this point, you are ready to deploy your application to Cloud by hitting the “Deploy” button. Follow the next steps to test if everything is working correctly.
Before switching DNS:
Once verified, point your domain to Cloud:
After migration is complete and stable:
Once you’ve successfully deployed and tested your application, don’t forget to cancel your Vapor subscription. If you were only using AWS for the application you migrated to Cloud, you can also cancel your AWS subscription since no third-party infrastructure providers are needed with Cloud.
Successfully migrated? Email Support ([email protected]) with your Vapor email and Cloud email, and we’ll send you a code for $50 off on Laravel Cloud.
Vapor setup: MySQL + Redis + S3 assets + queues
Cloud setup: MySQL database + Redis + object storage +
Estimated migration time: 30-60 minutes
Vapor setup: Aurora Serverless + ElastiCache
Cloud setup: Postgres database + Redis
Estimated migration time: 20-40 minutes
Vapor setup: Production + staging environments
Cloud setup: Create separate environments in the same application
Estimated migration time: 45-90 minutes per environment
Most Laravel applications require zero code changes to migrate from Vapor to Cloud.
If you use Vapor's S3 direct uploads, update to Cloud's object storage:
// config/filesystems.php - usually no changes needed
's3'=>[
'driver'=>'s3' ,
'key'=>env('AWS_ACCESS_KEY_ID'),
'secret'=>env('AWS_SECRET_ACCESS_KEY'),
'region'=>env('AWS_DEFAULT_REGION'),
'bucket'=>env('AWS_BUCKET'),
// Cloud injects these automatically
],
You can remove the laravel/vapor-core package:
composer remove laravel/vapor-core
Remove any Vapor-specific middleware or configuration from your application, as well as the vapor.yml file.
Before migrating production:
Zero-risk migration? Run both platforms simultaneously and gradually shift traffic.
After successful migration:
1. Configure auto-scaling
Set appropriate min/max replicasbased on your traffic patterns.
2. Enable auto-hibernation
For staging/development environmentsto reduce costs.
3. Set up queue clusters
Leverage Cloud's autoscaling queue workersfor background jobs.
4. Monitor performance use
Use Cloud's built-in metricsto optimize compute resources.
5. Review costs
Compare your Cloud usage coststo previous Vapor + AWS bills.
Migrating from Laravel Vapor to Cloud gives you a cleaner workflow, faster deployments, and
predictable performance without the overhead of managing AWS services.
With zero-config environments, autoscaling, and a straightforward infrastructure model, most applications can be
migrated in under an hour.
By following the steps in this guide, you can transition smoothly and start taking advantage of Laravel Cloud’s
simpler, more cost-effective platform.
Most applications can be migrated in under an hour. Complex apps may take 2-4 hours.
No. Keep Vapor running while you set up Cloud, then switch DNS when ready.
You can keep using external AWS services (S3, SES, etc.); just update environment variables.
Yes, but why would you want to? Keep your Vapor deployment until you're confident in Cloud.
Cancel it once migration is complete and validated.
In most cases, no. Laravel Cloud is designed to work with standard Laravel applications.
Copy them from Vapor UI to Cloud's environment variable settings. Cloud auto-injects infrastructure credentials.
Laravel's scheduler works the same on Cloud, no changes needed.
“We are surprised by the difference in feel of the site. According to Nightwatch, we won <100 ms per request, but each page feels much snappier. The gain of 100 ms per call in multiple calls in a page only adds to that feeling.”
![]()
François-Alexandre Perreault
Solutions Architect at Pyle
Let's build the incredible together, with Laravel