A startup, where you'd rather have your engineers working on adding features to your product instead of "managing and operating" a database? Have a lot of money to throw at this problem, being aware that you are paying for convenience? then using RDS and such would probably be a better choice.
An established company/product with a team of people working at a non-crazy pace, and catering to steady enterprise customers? Would like to build a sustainable long-time infrastructure setup that is optimised for efficiency and cost? running your own Database chosen well for your needs, backed up and tested rigorously, and managed by people who cares for the company's infrastructure would be a better idea.
It is weird when large companies with a dedicated platform team choose to run so many databases for their teams/services on a PaaS. That clearly is an optimisation opportunity.
That's the typical sales pitch for cloud offering, but I really fails to see how it applies to DB. Which part of “managing and operating” your database do you save when using such a service? And how big of a load did it put on your engineers in the first place?
1. Keeping your database software up-to-date. Applying security patches without a huge downtime.
2. Managing the installation so that it is operating correctly - it's Systemd init files are okay and that it will come back to life should the server restart, logs are being stored correctly at an appropriate disk partition and that they don't fill up your data directory,
3. OS configuration aligns with your and your database software's needs. Which sysenvs did you set? were they changed as part of your OS updates?
All of the above are worth it in many cases. Spending a few days optimising the installation for your workload can make a huge difference and also empower you to use custom extensions like Timescale which is not so easy to do in some managed database services. Also, cost savings because you take that effort on yourself.
Applying migrations? initial setup and configuration?
I haven't used a cloud offering before, but OP was asking about managing and operating a database. And that list is what we do at work or at home.
If you think there is nothing more to maintaining a database than initial setup and configuration, you are in for a rude awakening. Shit happens.
I felt like generally you have nothing to do, except sometimes you gotta do something like respond to disk quota alert and stuff
this perception of having to be special or only focus on sysadmin stuff for self hosting is incredible. cloud providers have managed diamond cartel levels of consumer propaganda in the tech sphere, its pretty amazing once you notice it.
At the stage where you need to spend a few hours a month dealing with it, you can afford to hire a DBA.
> my data is far too valuable to put in the hands of a third party
Confused, you self-host "in the cloud" without a third party involved? What does that mean? Are you not counting the party hosting your machine?
Whereas you can get a machine on AWS and setup the database yourself.
You have control over the version.
You have control over features.
You have control over performance.
It’s tons cheaper for greater performance - especially when you go over a few hundred gigs.
Yes, the hosted ones have built in replication - but my data is far too valuable to put in the hands of a third party. If they lost it - they could only shrug and say sorry and that’s it. The TOS indemnifies them.
I think it’s kind of honestly lazy — to not take the management of your data in your hands if you run a database of any significant size.
That being said, we do replicate and backup 9 ways to Sunday.