Fully managed PostgreSQL databases
digitalocean.com
digitalocean.com
Hopefully DO will reconsider this!
It also makes me wonder if all access to these databases is via the public network. I’m guessing so.
[1] https://twitter.com/digitalocean/status/1096087824066101248
> Ingress bandwidth is always free, and egress fees ($0.01/GB per month) will be waived for 2019.
In other words, we're not charging while we build this out.
0: https://blog.digitalocean.com/announcing-managed-databases-f...
I guess I personally would want more color on that whole post-2019 egress situation before committing to using the service. That’s just me, though!
Edit: It sounds like that might not be the case though. Eddiezane said "We do not plan to charge for private network / VPC traffic."
Once we finish and rollout full VPC support we believe the absolute majority of use cases will not incur bandwidth charges since most apps run on the same DC as their DBs.
We do not plan to charge for private network / VPC traffic.
We have not yet decided to extend the free egress public network bandwidth beyond Dec-2019 and whatever happens we will provide users with time to plan for the change (say 60 days).
If we decide to not extend it, users will incur .01/GB in all DO regions which is one of the most competitive bw fees in the industry.
Hardly. Maybe if you're comparing yourself to the ridiculous prices of AWS, GCP or Azure but definitely not if you look at the rest of the industry.
I can get, assuming bandwidth is kept at a sub-optimal 10% utilization (which should definitely be optimizable by scaling your instances):
- Unlimited traffic with a 250Mbit/s port from OVH for $32/month, which comes to $0.003/GB
- Unlimited traffic with a 400Mbit/s port from Scaleway for 16 EUR/month, which comes to $0.0013/GB
- Overage traffic on any plan from Hetzner for 0.001 EUR/GB.
And then there are the Bandwidth Alliance members who give free egress to CloudFlare, which then charges nothing to most users: Data Space, Dreamhost managed hosting, Linode, Packet.net and Vapor.
If you need even more traffic, you can start to buy transit, which is dirt cheap.
Bandwidth costs are the number one reason I won't even look at most cloud providers.
You are stating that as if DO is not a member.
[1]https://www.cloudflare.com/bandwidth-alliance/digitalocean/
DO is a member but they do not give free egress to CloudFlare (or anyone else).
So what is the point of DO being a member?
While it is nice that egress is not being charged in 2019, I imagine that most people looking for hosted DB solutions are looking for support and cost beyond a 10 month period of time.
DigitalOcean is very interested HIPAA and has been exploring the requirements to become compliant. As of right now, we are not HIPAA compliant and unfortunately, we don't have a public ETA I can share with you. If DigitalOcean is still useful for segments of your infrastructure needs, we're happy to answer any additional questions you have about our platform, but at this time cannot provide a BAA for this purpose.
[1] https://www.digitalocean.com/community/questions/does-digita...
EDIT: I'm delighted to hear that DO will sign HIPAA agreements, but I'm unable to find any documentation of this on your website.
EDIT: Since I got down-voted for pointing out a fact from your website, I've added the link and the quote.
Not sure why that was posted on our community site, but we'll get it fixed :).
(Verification: https://keybase.io/custos)
I'll talk to the team about getting a click through BAA process in-place, perhaps somewhere in the control panel. Right now they tend to be executed once our customer success team gets engaged.
I did post an update to the thread you linked.
> That’s why we ensure it’s backed up every day. Restore data to any point within the previous seven days.
Seems very similar to Heroku's model at that price. Which is actually pretty fair. I'm so happy to see DO doing this because there is always part of me worried that if Heroku were to go out of business, change their pricing model, start dipping in reliability that I'd be stuck spending a bunch more hours on dev ops instead of focusing on development.
More quality competition is great to keep Heroku on their toes (though I've had nothing but love for them).
But if they only create a backup once a day i can only restore to any point in time before the last full backup. Did they mean the constantly backup the postgres WAL files so effectively you have backups only a few minutes old?
https://www.postgresql.org/docs/9.4/warm-standby.html
Sending all changes to another machine and they can be applied in the event of a failure of the primary node. The backup process allows you to truncate the logs up to the point of the backups.
We use a lot of providers, and seeing DO making this available while immediately making the API available is really impressive.
A company that thinks about API first when enabling a new service (like Amazon) enables real developers.
In comparison, we use CircleCI and often you wait for months for features to be available through the API.
The idea being with all those addresses you can create subrouters to manage your network topology. Unless you're doing some weird tunnelling setup through your VPS, I can't see why you'd need or want such a huge block.
People complain about only getting a /64 on their home routers.
Blocking certain outbound traffic is another matter: that really stinks.
- You had learned and practiced this stuff ahead of time; or,
- Had paid someone to do it for you, so you can focus on your core business.
Right now our apps are deployed on Heroku but our Postgres is RDS. We didnt want to plan long term on Heroku. And I don't even know if that makes sense.
So I've been always wondering about RDS vs. Heroku Postgres.
- The CLI / toolbelt is pretty amazing. You can do all sorts of analysis right in your terminal.
- The upgrading/crossgrading is pretty easy to.
- Attaching multiple, different apps is really nicely done.
- Extra, third party, services can tap into the logs and give you full insight into what the hell is going on.
The experience is really good, because there is no "experience". It gets out of your way and feels really robust and reliable.
I'm trying to run a side project at a low rate, which is usually why I go to DigitalOcean - it's much cheaper, than, say, spinning up a bunch of Heroku dynos. In fact, I just moved a project from Heroku to DO to go from a $14/mo hosting bill to $5/mo on the cheapest VPS.
My one problem has been Postgres - I don't want to self-manage a database. However, Cloud SQL is ~$9/mo at the cheapest, and RDS/Lightsail are both $15/mo at the cheapest. I'd really been hoping that DO would provide a lower-cost alternative.
I'm really sad that the pricing structure doesn't bring managed databases down to hobby-tier. I don't even want a free offering; I'm happy to pay gig of space for $5/mo to run in perpetuity, with restrictions on backup retention or something.
Right now, if I'm an actual startup or even bootstrapped company with money, I see _zero_ reason to use DO's offering over your more-established competitors, and as a hobbyist user, I can't justify spending money on it for a no-income side project.
As for getting the $5/month option: Digitalocean Droplets have a 1-click Dokku install, and you can use https://github.com/dokku/dokku-postgres to instantly pop up a postgres instance.
I think what I really want is managed backups that live outside of my box, and the ability quickly restore from one if my database crashes or becomes unusable. I think automated failover to another node may not be a reasonable ask for such a cheap product.
Of course, at that point: I could spin up a 1GB DigitalOcean volume for $0.10/mo, and set up scripts to run `pg_dump` every couple hours, clean the volume of older backups to free up space, and ideally a script to reset the database to a given volume. _That's all stuff I don't want to do_, but maybe someone's built a reusable set of scripts for it or something - that Dokku container is promising as a starting point, though I'm a little annoyed it only works with S3(-compatible).
I've used it instead of Flynn in the past with a lot of success.
Edit: If S3 is the problem, backup to a minio instance on your dokku (https://github.com/slypix/minio-dokku)
WTF? Why would anyone ever not care about backups?
Is the postgres super user available?
What is the list of supported extensions?
Can WAL (physical/streaming) replication be configured to a non-managed postgresql instance? I'm assuming logical replication slots should be supported.
Is there in-built streaming backups/point in time restore?
Any details you can share on how failover and general cluster management is performed?
Are version upgrades supported? Assuming that would use pg_upgrade but is there an option for downtime-less upgrades using logical replication?
> When configuring a number of standby nodes > 1 what replication topology is used? Are {all,none,some} replicas synchronous?
Trying to get an answer of this one.
> Is the postgres super user available?
At this time only our administrative users are superusers for the database. All other administrative tasks should be possible from the default "doadmin" user provided when setting up your database cluster.
You can see a list of current users in the database (including ours) with this command from the Postgres CLI: \du
If some administrative task isn't possible with the "doadmin" user just let us know and we can report that to our engineering team for review and potential future change. We can't promise anything immediately, but we can definitely look into changes long-term!
> What is the list of supported extensions?
address_standardizer address_standardizer_data_us btree_gin btree_gist chkpass citext cube dblink dict_int earthdistance fuzzystrmatch hstore intagg intarray isn ltree pg_buffercache pg_partman pg_stat_statements pg_trgm pgcrypto pgrouting pgrowlocks pgstattuple plcoffee plls plperl (PostgreSQL 9.5+) plv8 postgis postgis_sfcgal postgis_tiger_geocoder postgis_topology postgis_legacy (see note below) postgres_fdw repack (PostgreSQL 10+) sslinfo tablefunc timescaledb tsearch2 unaccent uuid-ossp
> Can WAL (physical/streaming) replication be configured to a non-managed postgresql instance? I'm assuming logical replication slots should be supported.
No, not available.
> Is there in-built streaming backups/point in time restore?
Only daily backups are available with our managed database service at this time. We maintain 7 days worth of backups for each database cluster. Backups can be viewed and restored from the Cloud Control Panel by clicking on your cluster and going to the "Backups" sub-tab. This will restore your entire database cluster to that point in time.
While the backup frequency can not be adjusted to more often/weekly/monthly, you can take point-in-time backups by creating a "fork" of your database cluster. The fork can be placed at a specific point-in-time (reference your logs to find out when the transaction happened modifying the data you want to get back), or "now".
> Any details you can share on how failover and general cluster management is performed?
Nodes are monitored and failover happens automatically with minimal downtime if a node becomes unavailable. Some more info [0].
> Are version upgrades supported? Assuming that would use pg_upgrade but is there an option for downtime-less upgrades using logical replication?
I _think_ all updates may require powering off but will try and confirm.
0: https://www.digitalocean.com/docs/databases/resources/high-a...
Especially not knowing whether it's synchronous or non-synchornous replication makes it impossible to design systems on it, as that decides whether you can lose some (likely small) amount of data on a failover, or whether the system guarantees nothing is lost.
I also don't understand another key thing:
On the Pricing page you write "Standby nodes with automated failovers". At the same time, the pricing table offers 0, 1 or 2 standby nodes. So what happens if I buy the offer with the 0 standby nodes, and a failure occurs? Is my data gone? Does DO replace the failed node, and how when there are no standbys?
Re: availability, that’s right if you only have a primary node and no standby ones. Like manigandham said, there won’t be any downtime if you have a standby node.
Do you also happen to know the answer on synchronous vs asynchronous replication?
Since asynchronous means that you can lose previously acknowledged writes when the primary node crashes, which forbids many use cases (for example, most things involving money).
And Postgres already offers synchronous replication modes.
Having looked through the set of extensions, wal2json (https://github.com/eulerto/wal2json). That makes sense since there's no way at the moment to get access to replication.
However, the use case for wal2json in addition to the access to replication is that it's the best way that I know of to get reliable change notifications from the database. I personally use this to pipe the JSON blobs into message queues to be consumed by applications.
As a short aside, I don't use PostgreSQL's NOTIFY/LISTEN because, as I understand it, you will not receive messages if there are no connections to the DB -- this is a show stopper for me.
AWS RDS allows this and Google's PostgreSQL does not. I've personally abandoned Google's version first partly because it seems to have stalled in terms of upgrades, and AWS for being way too expensive for what you get. Although it doesn't work for me at the moment, I'm hoping the DO option will work for me in this regard in the not so distant future.
I ask, as at a previous job, we used to run our Postgres DBs on raw Droplets, and we'd get awesome performance on disk bandwidth (which we really needed), so much so that if we'd have moved to AWS we'd have had to pay very significant $$$ for provisioned IOPS to get the same bandwidth.
It'd be awesome if that same performance/price ratio was available with these new managed DBs.
More info here [0].
0: https://www.digitalocean.com/docs/databases/how-to/postgresq...
That said, I do wonder who the pricing is targeted at.
Our database primary is around the same price as the highest spec DO are offering, but for that we get 3x memory, 6x CPU, and 2x the disk.
For some things there are definitely huge benefits to using a hosted product, Jenkins for example costs us a fortune in engineering time. Postgres though is fairly straightforward for a simple setup, requires little ongoing maintenance, and scales well to bigger boxes without much work.
I can see spending up to $100 a month of this perhaps, but for the ~day it might take to set up Postgres on $50 of hardware with twice the performance, I can’t see going much further beyond that. Equally, higher up the scale, the top end is not that high performance for ~$2500 a month. The point in time backups is fantastic, but I’m not sure how necessary they are for most customers, over a standard Postgres hot replica setup.
With that said, I seriously think they're missing an opportunity by not offering GPUs. If DO offered a product similar to PaperSpace, basically a dead-simple GPU to connect to your notebook, I don't think small teams would need to look anywhere else for their cloud computing needs.
Interesting to note that TimescaleDB is installed by default.
Personally I like the idea of putting up a bit of play money at first vs. the prospect of higher recurring charges for a site that doesn't sleep.
However, in this case, it would cost me at least $800/mo. That $9,600/yr can buy a lot of hardware/upgrades.
If you have a rack set up already, even with colocation costs you will still pay less in your first year than with a cloud set up like this.
Obviously, this calculation doesn't include any engineer costs, but if you have several several racks set up, chances are you have the manpower on hand, and you're going to be saving money compared to any cloud setup, it's all a matter of how much flexibility you require.
So about 12$ a month for continuous 24/7/30day use.
I really like the built-in pgbouncer, easy to configure connection pooling thing too!
For example, if we take 8GB ram node, that's $120 p/m. Add in 2 standby nodes, and we add another £160 p/m. That equates to $280 per month.
AWS RDS, by comparison, is about $260 p/m for an rds.m5.large instance (also 8GB ram) on multi AZ. This can be reduced further via reserved instances.
Admittedly, the DO has more processing power, but all-in-all, I don't get this pricing at all. I was very excited about this, but the pricing is putting on the brakes.
DO has huge reliability issues, particularly in NYC. Over the course of several months I had repeated brief network drops on random VMs (during EST business hours, lasting up to a couple minutes). Their object storage in NYC3 (only location at time I used the product) would constantly drop uploads of larger files (experienced in multiple locations behind different firewalls, not environmental) and was also down for several days at one point not too long ago.
Perhaps things have improved, or my experiences with roughly 20 VMs distributed between Toronto and NYC was abnormal given the overwhelmingly positive sentiment in this thread but I figured I'd offer my $0.02 if only to play the contrarian.
I’m still waiting for one of these providers to crack infinite scaling (similar to Aurora). Seamless patching is a good step though.
>>> Our engineering team is working hard to bring you even more functionality for your databases in 2019. We plan to have additional engines such as Redis and MySQL, private networking with enhanced VPC, metrics, and alerting through Insights.