Multi-Cloud Disaster Recovery with Pulumi
Build 3-way failover across AWS and GCP with Infrastructure as Code.
Difficulty
Mildly spicy
Time to complete
90 minutes
Availability
Free
BUILD
What you'll build
Build multi-cloud disaster recovery with Pulumi TypeScript. Deploy to AWS App Runner and GCP Cloud Run with automatic CloudFront failover.
1. Import AWS Infrastructure into Pulumi
Install Pulumi CLI and import your App Runner services into TypeScript code.
2. Deploy to GCP Cloud Run
Add your application to GCP Cloud Run, creating true multi-cloud redundancy.
3. Configure Multi-Cloud Failover
Update CloudFront origin groups to route traffic between AWS and GCP.
4. Test Automatic Failover
Pause AWS and watch traffic automatically switch to GCP in seconds.
5. Build a Monitoring Dashboard
Create a CloudWatch dashboard showing your entire DR system health.
Your portfolio builds as you work.
Every project documents itself as you go. Finish the work, and your proof is ready to share.
PROJECT
Real world application
Skills you'll learn
-
Infrastructure as Code
Define cloud infrastructure in TypeScript with Pulumi for reproducible deployments
-
Multi-Cloud Architecture
Deploy across AWS and GCP to eliminate vendor lock-in
-
GCP Cloud Run
Use Google managed container service with source deploy for automatic containerization
-
Pulumi Import
Adopt existing cloud resources into Pulumi without recreation or downtime
-
Cross-Cloud Failover
Configure CloudFront to automatically route between AWS and GCP based on origin health
-
CloudWatch Monitoring
Build dashboards that provide visibility across your multi-cloud infrastructure
Tech stack
-
Pulumi
Infrastructure as Code platform using TypeScript for defining cloud resources across AWS, GCP, and other providers
-
App Runner
AWS fully managed container service for deploying web applications with automatic scaling and multi-region support
Watching my app automatically failover from AWS to GCP when I paused the primary region was incredible. This is real multi-cloud DR, not just theory. Managing it all from TypeScript with Pulumi makes infrastructure changes as easy as code reviews.
James Rodriguez
Platform Engineer
OUTCOME
Where this leads.
Relevant Jobs
Roles where these skills matter:
- Platform Engineer
- Cloud Architect
- Site Reliability Engineer
- DevOps Engineer
Disaster Recovery
Explore more high-availability patterns and infrastructure-as-code projects to build resilient production systems.
Disaster Recovery
Continue the JourneyFAQs
Everything you need to know
This is Part 3 of the 3-part Disaster Recovery series. Part 1 (Multi-Region Deployment) deploys your app across AWS regions. Part 2 (CloudFront Failover) adds automatic traffic switching. This project (Part 3) completes your DR toolkit by adding multi-cloud deployment to GCP and managing everything with Infrastructure as Code using Pulumi. Together, these three projects give you a complete disaster recovery strategy for production systems.
Pulumi lets you use real programming languages like TypeScript instead of domain-specific configuration languages. You get loops, conditionals, type checking, IDE autocomplete, and the ability to share code across projects. For multi-cloud architectures where you manage AWS and GCP from one codebase, having a real programming language dramatically reduces complexity and enables code reuse.
No prior Pulumi experience required. This project teaches you Pulumi from scratch, including installing the CLI, creating projects, importing existing resources, and managing multi-cloud infrastructure. The import feature means you start by adopting your existing AWS resources rather than recreating them.
Yes, you need a GCP account with a project and billing enabled. GCP offers $300 in free credits for new accounts, which is more than enough for this project. Cloud Run scales to zero when not in use, so ongoing costs are minimal. The project includes full setup instructions if you have never used GCP before.
AWS App Runner costs approximately $5 per month minimum per service when running. GCP Cloud Run scales to zero and charges only for requests, typically under $1 per month for low traffic. CloudFront charges per request with no minimum. For testing, expect total costs under $10 per month. Delete or pause resources after completing the project to stop charges.
The project includes a quick setup guide if you have not completed Parts 1 and 2, but the full experience requires App Runner services in us-east-1 and us-west-2, plus a CloudFront distribution with origin failover. These prerequisites take about 30 minutes to set up manually, or you can complete Part 1 and Part 2 for the full learning experience.
One Project. Real Skills.
90 minutes from now, you'll have completed Multi-Cloud Disaster Recovery with Pulumi. No prior experience needed. Just step-by-step guidance and a real project for your portfolio.
Mildly spicy level