Choosing Database Infrastructure Across Multiple Client Accounts
A solo cloud consultant should pick whichever of Supabase or AWS RDS they can set up correctly, alone, in an afternoon under a client's clock. Without a platform team, every engagement starts from a blank slate unless you build a repeatable setup, and the database is the piece most likely to get improvised under a deadline.
Vendors Covered in this Article
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
Infrastructure as code that survives you leaving the project
A single consultant's biggest infrastructure risk is being the only person who understands how something was set up. AWS RDS fits cleanly into Terraform or CloudFormation, so a consultant already writing infrastructure as code for compute and networking can define the database the same way, version-controlled and reproducible after the engagement ends. Supabase supports infrastructure as code through its own CLI and management API, which covers most of the same ground, but the ecosystem of existing Terraform modules and examples is smaller than what exists for RDS.
For a consultant, the practical test is simple: could someone else pick up your client's infrastructure code and understand it without asking you a question first. If the answer is no, that gap is worth closing before the engagement ends, regardless of which platform you chose.
Reproducing a client's environment without their AWS account
Consultants often need a working replica of a client's setup for testing, without full access to the client's production AWS account. Supabase's free and low-cost tiers make it simple to spin up an identical, throwaway Postgres instance for that purpose, independent of whichever cloud the client's production database runs on. Replicating an RDS setup for local testing usually means either a sandboxed AWS account of your own or a local Postgres instance that approximates RDS's behavior closely enough, neither of which is quite as fast to spin up.
Billing a client for infrastructure you don't own
When you are billing hourly or on retainer, the client should own the AWS or Supabase account directly, both so costs are transparent and so nothing depends on your personal credentials staying active after the engagement ends. Set this up on day one of any engagement, not as a cleanup task afterward. Cloud hosting spend runs around 5% of ARR at the median for private B2B SaaS companies1, a useful number to have on hand when a client asks whether their database bill looks reasonable for their size, and a useful anchor for your own estimate when a prospective client asks what their infrastructure costs are likely to look like once the build is live.
Deploy cadence as a signal for which platform to recommend
A client shipping code multiple times a day may benefit from RDS sitting in the same AWS account and VPC as the rest of an AWS-based CI/CD pipeline (for example CodeDeploy, ECS, or Lambda), which can simplify networking and access control. A client shipping in slower, scheduled batches often has less to gain from that tight coupling and more to gain from Supabase's faster initial setup. Ask about their deploy frequency before recommending a platform2; a client already deploying on demand has more to gain from the tighter AWS coupling than one still shipping in scheduled batches.
What happens when two clients need conflicting versions of your setup
One client wants the database pinned to an older Postgres major version because their reporting tool has not been tested against the newer one; another wants the newest available version for a feature you need. Running both is normal for a consultant juggling several engagements, and it is one more reason to keep each client's infrastructure code in its own repository rather than one shared template you edit in place. Supabase makes the version choice at project creation and handles upgrades through its own dashboard; on RDS you choose the engine version explicitly and manage major version upgrades yourself, which gives you more control over timing but also more to track across several clients at once.
A repeatable setup you can reuse on the next engagement
- Keep a template Terraform module (for RDS) and a template Supabase CLI config, so neither setup starts from scratch
- Provision under the client's own account or organization from the first day, not your own
- Document the connection pooling setup explicitly; this is the step most likely to be skipped under deadline pressure
- Hand the client a one-page runbook covering backups, recovery, and who to call, before the engagement ends
- Keep each client's infrastructure code in its own repository so version differences between clients don't collide
What Good Looks Like
Every client engagement starts with the database provisioned under the client's own account, defined in version-controlled infrastructure code, with a documented backup and recovery process handed off at the end.
Building The Capability (5-Stage Skill Ladder)
How to Get Started
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
Frequently Asked Questions
Which platform is faster to set up correctly under a tight deadline?
Supabase, in most cases, since auth, pooling, and API generation come configured already. RDS can match that speed if you already have a tested Terraform module ready to reuse; without one, building the surrounding pieces from scratch takes longer.
Should I ever provision infrastructure under my own personal account for a client?
Avoid it whenever possible. Provisioning under the client's own account or organization protects them if you become unavailable, and protects you from being asked to keep paying for something after the engagement ends.
How do I test against a client's production-like environment without full access?
Spin up an equivalent instance, Supabase or a sandboxed RDS instance, seeded with realistic but non-sensitive data. This lets you validate migrations and query performance without touching the client's real production credentials.
Is infrastructure as code worth the setup time for a short engagement?
For anything longer than a few weeks, yes. A reusable Terraform module or CLI config pays for itself the second time you use it, and it is the clearest way to hand off a documented setup when the engagement ends.
Sources
Where we quote a benchmark, we show its source. Other figures in this guide are estimates or general guidance, so check them against your own numbers.
- Hosting/cloud infrastructure spend as % of ARR (median, private B2B SaaS). SaaS Capital 2026 Spending Benchmarks for Private B2B SaaS Companies (15th annual survey, 1,000+ companies), 2026.
- Deployment frequency by DORA performance cluster (max days between deploys). DORA Accelerate State of DevOps 2024 (Google Cloud), cluster table via Octopus Deploy analysis, 2024.
Related Guides
AWS or Google Cloud for a Solo Cloud or DevOps Consultant
A worked example for a small technical cloud or DevOps consultancy weighing AWS against Google Cloud across client accounts.
SOC 2 for a Small Cloud and DevOps Consultancy
Whether a small cloud or DevOps consultancy needs SOC 2 at all, and how Vanta, Drata and Secureframe compare for a lean team without in-house compliance staff.
Kubernetes or ECS for a One- or Two-Person DevOps Shop
Solo and two-person DevOps consultants: a step-by-step way to choose between Kubernetes and ECS for client work, weighing your time and handoff risk.
CrowdStrike vs SentinelOne for Freelance IT Consultants
Enterprise EDR pricing assumes hundreds of endpoints. Here is how a solo DevOps consultant should think about CrowdStrike vs SentinelOne with a fleet of one.
Setting Up Feature Flags for Clients as a Cloud Consultant
A step-by-step runbook for cloud and DevOps consultancies choosing between LaunchDarkly and Split, and handing the platform to a client's own team.
Auth0 or Clerk for a Solo Consultant Building Client Apps
Weighing Auth0 against Clerk when you're a one-person cloud or DevOps consultancy with no time to spare on identity plumbing.