Pulumi Cloud cost vs a self-managed backend

Pulumi Cloud bills in credits and per managed resource, while a self-managed backend moves those charges into storage, secrets, CI runner time and staff work. This page shows how to compare the two with your own numbers.

On this page

Pulumi Cloud cost vs a self-managed backend: where the bill moves

Self-hosting usually lowers the service fee but raises the engineering and infrastructure bill, so it tends to pay off when the hosted charge keeps growing with the estate and your team can absorb the operating work. If your renewal, credit consumption or per-resource charge has grown faster than your platform capacity, the question is whether the savings on the hosted fee cover the hours and hardware that replace it. The Pulumi CLI is open source, so the comparison is not between a paid tool and a free one. It is between Pulumi Cloud's hosted state, secrets and automation and the storage, secrets provider, runners and people that would take those jobs over. This section gives no Pulumi Cloud price. Take the current figures from the vendor's pricing page and your written quote, and confirm which edition, credit allowance and per-resource rates apply to your account.

Most of the new cost lands on the backend itself. A DIY state backend can sit on object storage or PostgreSQL. PostgreSQL is released under a permissive license, so the software carries no fee, but you pay for the servers, backups, replicas and the staff who run them. PostgreSQL supports hot standby servers and both synchronous and asynchronous replication, yet it does not detect a failed primary or promote a standby on its own, so automatic failover needs external tooling that you select, test and maintain. Each supported major version is supported for five years, and version 14 reaches end of support on November 12, 2026, so plan the upgrade into your run budget. If you choose object storage, be cautious with MinIO: its community repositories are archived, the community server is distributed as source only with no further binary releases, and its maintainers point to AIStor for supported editions. Confirm the license obligations and the support model before you commit to it.

Cost components on each side and which ones recur

This table sets each cost component of Pulumi Cloud against the matching cost on a self-managed backend, and marks whether it is one-time or recurring. Read it as a checklist for a quote: the recurring rows decide the long-term comparison, while the one-time rows decide how long the switch takes to pay back. Pulumi Cloud rates are deliberately left out, so confirm current editions and billing terms directly with Pulumi before filling in your own numbers.

Cost componentPulumi Cloud sideSelf-managed sideOne-time or recurring
Subscription or edition feePaid per edition of Pulumi Cloud, with features tied to tierNo vendor edition fee for the open-source CLI; staff and support contracts are the main spendRecurring
Credits and per-resource billingMetered usage billed in credits or per managed resource; confirm the current unit with PulumiNot applicable; infrastructure cost is the same either wayRecurring
State storageIncluded in the hosted serviceObject storage bucket or PostgreSQL volume, plus backups and versioningRecurring
Secrets providerPulumi-managed encryption of secrets in the serviceKMS, Vault or similar key service, usually billed by the cloud provider or licenseRecurring
CI runner timePreview and update runs usually execute in your own CISame runner time, plus any extra runs for drift checks and scheduled previewsRecurring
Backend database or object store operationsNot billed to you directlyRequest, egress and database instance costs scale with stack count and run frequencyRecurring
Initial implementation and migrationMinimal set-up on the hosted serviceBackend design, stack migration, locking and access model, cutover testingOne-time
Drift detection and policy workScheduled drift detection and policy features are edition-dependentScheduling, alerting, policy-as-code tooling and their upkeepOne-time build, then recurring upkeep
Audit trail retentionHistory and audit features come with the service; confirm retention limitsLog storage, retention rules and evidence export you build yourselfRecurring
Upgrades and patchingHandled by Pulumi for the hosted serviceYour team patches the database, storage, runner images and CLI versionsRecurring
SupportVendor support is tied to your editionPaid vendor or partner support is optional; community support is best effortRecurring if contracted
Internal skillsFewer platform skills needed for the service itselfOperations skills for storage, databases, secrets and CI pipelinesRecurring, with onboarding cost

What moves the comparison most for your estate

Six drivers decide whether Pulumi Cloud or a self-managed backend costs less for your estate, and most of them interact. Check each one against your own stack count, team and recovery requirements before comparing invoices with infrastructure and staff time.

Stacks and managed resources

Pulumi Cloud's paid usage is tied to how many resources it manages, so the count of stacks and resources is the first input to any quote. On a self-managed backend, state storage grows with the size of your state files, while the larger cost is CI runner time for each preview and update. Ask Pulumi exactly which resources are counted and whether preview-only operations are billed, then model your largest stacks separately.

Team size and deployment ownership

Team size changes how much operational work a self-managed backend creates. A small team that runs deployments from one pipeline spreads the work of upgrades, backups and access reviews across few people. A larger team with many stacks needs named owners for the backend, or the backend becomes a shared risk. Count the hours your platform engineers spend on the backend each month, because that time is the cost that rarely appears in a comparison.

State history and retention

Pulumi Cloud keeps update history for stacks, and that history is part of what you pay for when you leave it. A self-managed backend must provide its own history: object versioning on a bucket, or periodic dumps from PostgreSQL. Decide how many versions you need, how long they must be kept, and who can delete them. Confirm the retention window your Pulumi edition provides before you size storage or backup jobs.

Availability and recovery targets

A hosted service carries availability and recovery work on its side of the contract. In a self-managed design, PostgreSQL can run hot standbys in synchronous or asynchronous replication, but it does not detect a failed primary or promote a standby by itself. Automatic failover needs external tooling, and backups need tested point-in-time recovery. Price the standby, the failover tool and a restore test, then compare them with the recovery terms in your Pulumi agreement.

Compliance and audit evidence

If auditors ask who changed production infrastructure and when, you need a complete answer with evidence. Pulumi Cloud provides audit and access features that depend on your edition, so confirm what it logs and how long those logs are kept. On a self-managed backend, the audit trail comes from your identity provider, your CI logs and PostgreSQL access logs, all of which must be collected, retained and tested. Authentication method choices in PostgreSQL also affect what you can prove about who connected.

In-house skills and secrets handling

Your team's existing skills determine how much of the replacement work is already paid for. Running a self-managed backend means maintaining a secrets provider for stack configuration, scheduled preview and refresh jobs for drift, and policy checks in CI. Each of these needs people who can build and support them. PostgreSQL major versions are supported for five years, so plan an upgrade path inside that window. Check which of these skills you already have before you assign the work.

How to build the cost model with your own numbers

This sequence turns the Pulumi Cloud bill and a self-managed backend into one comparable model, so each cost component can be checked against your own stacks, resources and staff time. The output is a three-scenario comparison that vendors and partners can quote against the same written scope.

  1. Inventory stacks, resources and users

    Pull the current picture from your Pulumi Cloud account: the number of stacks, the count of managed resources per stack and environment, the number of users and teams with access, and which features are switched on, such as drift detection, policy packs and audit log retention. Record the counts for each month of the last year so that peaks and seasonal swings are visible. The step is done when every stack has an owner, an environment label and a resource count you can trace to a dated export.

  2. List every billed component from current pricing

    Collect the Pulumi Cloud edition you run, the credit or per-resource billing terms that apply to it, and any add-ons on your order form. Take these figures from the current pricing page and your signed order or written quote, not from older blog posts or internal notes. Mark which components are fixed, which scale with resources, and which are one-time. The step is done when each line on the bill maps to a rule you can apply to the inventory from step one.

  3. Price the self-managed components

    Price each part of a self-managed backend using your own cloud or data center rates: object storage or a PostgreSQL instance for state, the secrets provider and its key management charges, CI runner minutes or the compute that hosts runners, backup storage, and network egress between regions. Note whether each item is paid to a cloud provider, a hardware vendor or a support contract. The step is done when every component has a unit price, a unit of measure and a source document from your finance or cloud team.

  4. Assign staff hours to one-time and recurring work

    Estimate the internal and partner hours for setup, migrating stacks, replacing drift detection, rebuilding policy checks, exporting audit trails and performing upgrades of the backend and its database. Split each item into one-time work and recurring work, and name the role that carries it, such as platform engineering or security. Use your own team's historical effort on comparable changes as the basis, and say so in the model. The step is done when every replaced feature from the Pulumi Cloud list has a named owner and an hours range that the owner has reviewed.

  5. Run the model for three scenarios

    Build three versions of the model using the same unit prices and hours: current size, expected growth based on your roadmap, and a reduced footprint such as fewer stacks or consolidated environments. For each scenario, show the annual recurring cost of both options and the one-time cost in the first period. Label any assumed growth as an assumption, since no figure in this guide predicts your workload. The step is done when a finance reviewer and a platform lead have each signed off on the scenario inputs.

  6. Ask vendors and partners to quote the same scope

    Send the same written scope, the three scenarios and the inventory to Pulumi, to any hosting or support provider you are considering, and to DeployOpen if you want an implementation quote. Ask each party to state what is included, what is excluded, what recurs, what changes with resource count, and what support and upgrade commitments apply. DeployOpen quotes follow from a written scope and do not come from a published price list. The step is done when every quote is mapped to the same line items, so the totals can be compared without adjustment.

Which hosted features turn into engineering work

The Pulumi Cloud fee pays for more than state storage. It also covers locking so two updates do not change the same stack at once, a history of state versions, access control over stacks and their configuration, encrypted secrets handling, policy and audit views, and scheduled drift checks. On a self-managed backend, each of these becomes a design, build and run task that your team owns. The cost comparison only means something once you know which of these your organization uses every week and which ones it only assumes it has. Confirm the exact list of features in use, along with who relies on each one, before you look at any price.

Some of these features will not come from the backend at all. Storing state in object storage or PostgreSQL gives you a place to keep it, but not the logic that decides who may update a stack, which changes need a second approver, or how a run is recorded for an auditor. Those controls usually move into CI, a policy engine and your log platform, and each of those needs its own configuration, access model and retention settings. Scheduled drift checks become a pipeline job you schedule, alert on and triage. If PostgreSQL holds your state, note that it does not detect a failed primary or notify a standby by itself, so availability depends on a failover tool you also run and test.

Before you compare costs, write a replacement plan for each feature in use. For every item, record the owner, the chosen mechanism, the place where its evidence will be kept and the test that proves it works, such as a forced concurrent update or a restored state version. Check the current behavior against Pulumi's documentation and the documentation for the backend you plan to use, since editions and feature availability can change. Items with no clear replacement are the ones that will drive your effort estimate, so a quote should price them explicitly rather than assume they are covered.

How the storage choice changes the self-managed bill

MinIO is the S3-compatible store many teams pick to keep Pulumi state inside their own network. The community repositories are now archived and read-only, and the community edition is distributed as source code only, with no further pre-compiled binary releases. The README states that legacy binaries will not receive updates, and that support for the AGPLv3 community software is best effort through GitHub and Slack. Your costs therefore shift toward build, patching and support work that your team or a partner performs.

  • Build and patching: You compile from source with Go 1.24 or later, or build the Docker image from the provided Dockerfile, and you own every rebuild.
  • Support: Community support is best effort. SLA-backed support is available only through the vendor's commercial edition, AIStor Enterprise.
  • Licensing review: The AGPLv3 license requires legal review before commercial or proprietary use.
  • Kubernetes: The MinIO Operator is the documented path for Kubernetes, and its maintenance status should be confirmed before you adopt it.

Ask the vendor or your own team to confirm the current state of the repositories, the commercial edition's price and support terms, and the staff hours your build and patch cycle will require before comparing it with other options.

Costs teams forget on each side of the comparison

Pulumi Cloud bills for the service, but a self-managed backend moves the same work onto your storage, database, CI and staff. The cards below list the items that most often go missing from a side-by-side estimate, so you can ask each vendor or internal team to price them.

Second environment for migration rehearsal

Before you move stacks off Pulumi Cloud, you need a non-production copy of the backend to rehearse the move. That copy carries its own storage, database instance, network path and access setup, and it stays in use until the cutover is verified. Ask who owns this environment, how long it runs, and whether it is torn down or kept as a standby. The cost is one-time for the rehearsal but can recur if you keep it.

Rebuilding locking and state history

Pulumi Cloud gave your team state locking, version history and a view of who changed a stack. On a DIY backend, locking depends on the backend you choose and the CI concurrency rules you write, and history depends on bucket or database versioning and retention settings. Confirm how your chosen backend handles concurrent updates and how long history is kept before you decide retention, since both are engineering work with no default that matches the service.

PostgreSQL major upgrades and downtime

If you choose PostgreSQL for the backend, its major versions are supported for five years, and the PostgreSQL versioning policy lists version 14 as supported until November 12, 2026. Each major upgrade needs a plan: pg_upgrade, a dump and restore, or logical replication, which the upgrade docs describe as allowing a major upgrade with only several seconds of downtime. Ask who schedules and tests these upgrades, and whether that person's time is budgeted.

On-call for the state database

A state backend is on the critical path of every deployment, so an outage blocks changes across teams. PostgreSQL does not detect a failed primary or promote a standby on its own, so automatic failover needs an external tool you must select, deploy and test. Confirm who is paged at night, what the recovery target is, and whether the time spent on this rotation is counted in the total cost.

Secrets rotation and key custody

Pulumi Cloud handles encryption of stack secrets for you. A self-managed backend moves that responsibility to your secrets provider and to whoever holds the keys, including rotation schedules, access policies and key recovery if a key is lost. OpenTofu's client-side state encryption shows the same pattern for IaC state. Ask which team owns key custody, how rotation is audited, and what the provider itself costs.

Exit work for access history

Leaving Pulumi Cloud does not carry over deployment settings, policies or team permissions, so teams that need an access history for audits must export it before the service is turned off. Plan for a retained copy of logs and approvals in your own system, and ask your auditors which evidence they will accept after the move. This work is one-time, but it can extend into the period when both systems are in use.

Commercial support on the open-source side

If you buy support for the open-source backend, its price is a recurring cost that sits next to the Pulumi Cloud bill, not in place of it. Support terms vary by vendor, so ask for the response commitments, the covered versions and whether it includes upgrades. Compare that contract with the internal hours you would otherwise spend, rather than assuming the open-source option is free to run.

Questions buyers ask before comparing Pulumi Cloud costs

How much does a self-managed Pulumi backend cost in total?

No single figure applies without your own numbers, because the total is the sum of several components. Plan for object storage or PostgreSQL hosting, the servers and backups behind them, a secrets provider such as a cloud KMS, CI runner time for preview and update runs, and the engineering time to build locking, history, access control and audit trails. Storage, compute, runner minutes, patching and on-call recur every month. Design, migration and runbook writing are one-time costs. Compare these against the Pulumi Cloud edition and billing model you use today, which you should confirm on Pulumi's current pricing page because this site does not carry those figures.

Can our team move Pulumi state to our own backend without outside help?

Often yes, if the team already operates cloud identity, object storage or PostgreSQL, and a secrets provider. The Pulumi CLI can move stacks between backends with pulumi stack migrate, so the state move itself is a small step. The effort lies around it: changing CI credentials, reproducing access rules, setting up backups and testing that a failed run can be recovered. Teams with few stacks and existing platform skills usually find this manageable. Teams without those skills, or with many stacks across several accounts, should estimate the work from an inventory of stacks, pipelines and secrets before deciding.

How long does a Pulumi backend migration take, and what drives it?

The supplied sources do not give a duration, so ask for a timeline built from your own inventory. The main drivers are the number of stacks and environments, how many CI pipelines and developer workstations reference the current backend, how secrets are encrypted and re-keyed for the new provider, and how many validation cycles your change process requires. A preview from every stack before cutover, plus a rollback path, adds time but reduces risk. Ask any provider to break the timeline into inventory, design, pilot stacks, production cutover and handover, with each milestone agreed in writing before work starts.

What skills does a self-managed Pulumi backend need from the team?

The team needs cloud identity and access management, object storage configuration with versioning and backups, and PostgreSQL operations if the database option is chosen. It also needs a secrets provider and CI that handles credentials safely. PostgreSQL 14 is supported until November 12, 2026, and PostgreSQL 18 until November 14, 2030, so version planning belongs in the design. Minor releases do not change the storage format, but they still require replacing executables and restarting. PostgreSQL does not detect a failed primary or promote a standby by itself, so automatic failover needs external tools that someone must operate. Confirm the version calendar in the PostgreSQL versioning policy.

Can we replace Pulumi Cloud's paid features one by one?

Some features map cleanly and others need design work. State storage, locking and version history can come from the backend you choose, such as versioned object storage or PostgreSQL, and encryption can come from a KMS. Scheduled drift detection must be built as a CI job that runs preview and refresh on a timer, with alerting you write yourself. Policy enforcement and audit trails need separate tooling, and you must assemble evidence from CI logs and database logs. Check each feature against Pulumi's current edition list, since the boundaries between tiers change, and record which replacement you own and which you accept as a gap.

What recurs after a self-managed Pulumi backend goes live?

Infrastructure, backups, patching and monitoring recur for as long as the backend runs. PostgreSQL releases minor versions at least once every three months, and each minor update means replacing executables and restarting, so a maintenance window must be scheduled. Major upgrades follow a yearly release cadence and need a tested path such as logical replication or pg_upgrade. If the team uses MinIO for object storage, note that the community repository is archived and no longer receives pre-compiled binaries, and its community support is best effort, as described in the MinIO README. Budget for secrets rotation, access reviews and on-call coverage too.

When does outside help pay off for a Pulumi backend migration?

Outside help pays off when the team lacks ownership of PostgreSQL, object storage or secrets operations, when audit evidence must be assembled for an assessment, or when high availability and backup design must be defended to auditors and leadership. DeployOpen plans, implements, hardens, backs up, documents and supports self-hosted platforms in your own cloud accounts or data centers, usually under a fixed scope agreed in writing. Ongoing support and upgrades are available as retainers. DeployOpen prepares systems and evidence for compliance assessments but does not issue audit reports, so independent auditors still judge the result.

What should a written quote for this migration include?

A useful quote lists every component separately, so you can compare it against your current Pulumi Cloud spend. Ask for the stack and environment inventory, the chosen state backend and its sizing assumptions, secrets provider integration, CI changes, the drift and policy replacements in scope, and the backup and recovery design. Request one-time items such as design, migration and documentation apart from recurring items such as support retainers and upgrades. The quote should name what is excluded, including the Pulumi Cloud subscription you keep or cancel, and the Pulumi edition assumed in the scope.

How DeployOpen scopes a fixed-price implementation of a self-managed backend

DeployOpen plans, implements, hardens, backs up, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Pulumi Cloud cost vs a self-managed backend, we start by putting your actual Pulumi Cloud bill, resource counts and required controls into a written scope before any work begins.

How we scope

  • We inventory your stacks, managed resource counts, teams, and the Pulumi Cloud features your team uses today.
  • We agree in writing which backend, secrets provider, CI runner and audit controls replace each feature in scope.
  • Most engagements are fixed-scope, and the written scope sets deliverables, timelines and what is excluded before work starts.

How we build

  • We deploy the chosen state backend in your environment and configure locking, versioning, encryption and access control.
  • We wire preview and refresh into your CI pipeline and test state migration with pulumi stack migrate on non-production stacks first.
  • We test drift detection, policy checks and audit logging against the controls agreed in the scope, and record the results.

How we hand over

  • We document the architecture, runbooks for locking and state recovery, and the cost components your team now owns.
  • We deliver the migration evidence, including exported stack state and a list of settings that did not move from Pulumi Cloud.
  • We walk your engineers through operating the backend, so ownership of upgrades and access reviews stays with your team.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover, scoped separately in writing.
  • We can prepare systems and evidence for compliance assessments, though independent auditors issue any audit reports or certifications.
  • Ask for a written quote that lists scope, deliverables and recurring retainer terms, so cost comparisons use the same assumptions.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.