It is amusing that for years the common wisdom and fad was to write your database layer so that it could be independent of the database engine.
The idea was to avoid vendor lock and make it "easy" to change the database engine.
A project was on, perhaps 2 years ago, still followed this pattern, but it ended up also adopting somewhere between 10 - 15 AWS services and we never discussed an abstraction layer on top of it.
There are one or two efforts now to create an independent layer on top of cloud services. I have a hard time understanding how that will work outside of basic services.