Self-Managed VPS vs Managed AWS
Most comparisons put a hosting bill next to an AWS bill and stop there. This one prices your own admin hours, which is the number that actually decides it. You get a break-even point, a list of what you stop being responsible for — and, often enough, “stay where you are”. Nothing is stored and no email is asked for.
AWS prices as at 27 May 2026 On-demand, USD, from the AWS Price List API — the same table the AWS Cost Estimator uses. AWS has published newer prices since. Treat the AWS side as indicative.
Where the money actually goes, every month
| Self-managed VPS | Managed AWS | |
|---|---|---|
| Total a month |
Break-even
What you stop being responsible for
Moving it, as a one-off
What the AWS side is made of
The sizing above, priced from the AWS Price List API. This is a summary — every rate and formula, line by line, is in the full estimator.
What this assumes about the AWS side
The form above asks eleven things. Pricing AWS properly takes about twenty-five, so these 10 are filled in for you. Two of them round against AWS on purpose.
|
Costed as a migration, not a new build You already run this somewhere, so the effort estimate below covers moving it rather than building it from nothing. |
|
On-demand pricing, no reserved instances or savings plans A one or three year commitment takes a large bite out of the compute line. Nothing here assumes you would make one, so this is the expensive end of the range. |
|
No AWS support plan Basic support is free and has no technical case handling. If you would buy Developer or Business, add it in the full estimator. |
|
An Application Load Balancer in front This is where the managed certificate lives, and it is what makes a second instance possible later. It is part of what "managed" means here. |
|
A NAT Gateway, when there is a database A private database subnet needs one for outbound traffic. It is the line item that surprises people most, so it is on by default rather than quietly off. |
|
Snapshot storage equal to one full copy of the disk One snapshot of everything. Real snapshot bills are usually lower because only changed blocks are charged after the first. |
|
Database backup storage equal to the database size RDS gives you backup storage equal to the database at no charge, so this normally costs nothing and is here to be visible. |
|
10 custom CloudWatch metrics, 5 GB of logs ingested, 5 GB retained A small monitoring footprint, because a server nobody watches is the problem this tool keeps finding. Zero would have been cheaper and dishonest. |
|
One Route 53 hosted zone, one million queries a month A single domain. Pennies either way, included so the total is not missing a line you would actually be billed for. |
|
No S3 object storage Nothing is assumed about uploads, media or archives. If you have them, the full estimator prices them. |
The two thresholds this page uses
|
How far apart the two monthly totals must be before a winner is called Inside 10% the tool says the two are level rather than picking one. Every number feeding this is an estimate, and a 3% gap is not a finding. |
|
Where this tool starts calling the incident rate high Six or more a year. That is the same threshold the downtime calculator on this site uses, so the two agree rather than each picking their own. |
Want the AWS bill in full detail?
This tool keeps the AWS side deliberately short, because its question is about your hours rather than about the invoice. For every rate, every formula and the line items people leave out, use the estimator — it is better at that job.
Built on your machine. No email, no signup.
Three numbers decide this, and two of them are yours
Most VPS-versus-AWS comparisons put one hosting bill next to another. On that basis AWS loses almost every time, and the comparison is worthless. A $20 server is cheaper than a $200 one. Nobody needed a tool to work that out.
The number that actually decides it is your own admin time. Patching, certificates, backups, the evening a disk filled up. That work is real and it costs real money, but it never appears on an invoice, so it gets left out of the decision. This tool puts it in.
So the comparison runs on three things: what you pay for hosting, how many hours a month you put into it, and what an hour of your time is worth. Change the third one and the answer can flip completely. That is not a flaw in the tool. That is the actual shape of the decision.
What each thing you enter does
- Monthly hosting cost. Your side of the ledger, unchanged. Include backups, panel licences, anything billed monthly.
- Admin hours a month. Multiplied by your rate, this becomes the largest line in most results. Routine work only — incidents are asked separately so they are not double-counted.
- Your hourly rate. The multiplier on everything above. It starts empty and stays empty until you fill it in.
- Incidents a year, and hours each. Priced as your time, then carried identically on both sides. Moving platform does not fix what causes incidents, so this line cancels out of the recommendation entirely. It is shown because it is real money, not because it argues for anything.
- What is yours to do. The 8 responsibilities. Each one carries the share that this AWS shape actually removes, and two of them remove nothing at all.
- Backups and how it is run. These change no numbers. They decide which problems get named, and those are true whichever platform you land on.
- The AWS sizing. Roughly what you would need over there. Kept short on purpose — the assumptions filling the gap are all printed with the result.
What you stop being responsible for, and what you do not
This is the part worth reading twice, because it is where these comparisons usually go wrong. Managed AWS is bought for the work it takes off you, not for the compute. But it does not take off as much as people assume.
RDS genuinely owns your database engine, its patching and its minor-version upgrades. ACM issues and renews certificates on the load balancer, for free, and does not forget. Multi-AZ genuinely fails over without you. Those are real, and they are most of the case for moving.
However: EC2 is a server you rent. It does not patch itself. It does not deploy your application. If those two are where your hours go, moving to AWS moves them across intact, and you get a larger bill for the privilege. The tool scores both at zero for that reason, and it will happily tell you the move saves you nothing.
When staying put is simply the right answer
There is a floor under the AWS side, and it is higher than people expect. Size the smallest thing anyone would sensibly run — one small instance, no managed database — and the AWS bill still lands around forty dollars a month before a minute of your time is counted. More than half of that is the load balancer.
So if you are paying five or ten dollars for a VPS and spending twenty minutes a month on it, AWS does not win that comparison. Push your hourly rate up to two hundred dollars and the best it manages is a draw. The tool will tell you so, and you should stop reading and go and do something more useful.
Roughly speaking, below about an hour of admin a month a small VPS wins outright. Between one and two hours it is genuinely level. Above that the answer starts depending on what you tick, and the break-even line tells you exactly where it turns. The honest version of this tool is one that loses the sale often, and this one does.
For what it is worth: this site runs on a self-managed VPS, on DirectAdmin, patched by me. Every tool on it, including this one, is served from that box. I did not move it to AWS because for what it does, the numbers on this page say not to.
Six things people get wrong about this decision
Comparing the two invoices and stopping there
This is the big one. An invoice comparison is a comparison of the cheapest part of running a server. Price the hours first, then look at the invoices, and the argument often reverses. Sometimes it reverses back — but at least it was the real question.
Assuming "managed" means nobody patches anything
It means nobody patches the database. Your operating system, your web server and your application are all still yours on EC2. If you were hoping to stop doing Linux administration, this particular shape of AWS is not how you do that.
Forgetting NAT Gateway and egress
A private database subnet needs a NAT Gateway, which bills by the hour and again per gigabyte through it. Traffic leaving AWS is billed on the way out too, so the same gigabyte can be charged twice. Most VPS plans bundle bandwidth, so this is genuinely new money rather than a like-for-like line. It is switched on here by default rather than quietly off.
Expecting a migration to fix the incidents
It will not. Whatever is filling the disk, leaking memory or failing to come back after a restart will do the same thing on a different provider's hardware. That is why this tool prices incidents on both sides identically. Fix the cause, then decide where to run it.
Counting an untested backup as a backup
If nobody has restored one, you do not know that you have backups. You know that you have files. Restoring the smallest one into a scratch machine takes an afternoon and either confirms it or finds the problem on a Tuesday instead of during an outage. Do that before you spend anything on a migration.
Thinking one instance is safer than one server
It is not. One EC2 instance in one availability zone is one failure domain, exactly like one VPS. Redundancy on AWS is something you design and pay for. Availability is not a property you get by changing supplier.
Questions people ask about this tool
Is this a quote?
Why does it insist on an hourly rate?
Where do the AWS prices come from?
What does "managed AWS" mean here?
Why is there a load balancer even in the smallest setup?
Will moving to AWS make my site more reliable?
Does it ever tell people to stay where they are?
Is anything I type stored or sent anywhere?
Not sure which way to go?
Whatever the numbers say — including "stay where you are" — I am happy to go through it with you. Send the comparison over, or book a call and we can talk it through.
Prefer to talk? Book a free call ↗ · Or hire me on Upwork ↗ · Typical reply within one business day.