Ah I see what you mean. Yes I used to do exactly this with node.js & R backend containers in a Kubernetes cluster, with the Shiny App being hosted by Shinyproxy.
I've since moved to using RStudio connect, & I've moved most of my node.js backend to google cloud functions so I only pay for when they're invoked, rather than having a VM sitting idle. I've previously moved one R backend to become a Google Cloud Run API, but itd have been much simpler & faster to deploy it as an API on RStudio Connect.
If you already have the containerised R backend you have options! You could run both the backend and Shiny app in the environment e.g. a docker swarm or Kubernetes cluster, probably using Shinyproxy to host the Shiny container. Alternatively you could deploy your R backend as a containerised API on e.g. Google App engine (GAE) or as a Plumber API in Google Cloud Run or on RStudio Connect, then call it from wherever you choose to host your shiny app - with the right firewall/permissions on your backend API the shiny app could then be hosted anywhere (Shinyapps.io, RStudio Connect, Shiny Server Open Source or Shinyproxy).
The advantage of the second method is that it's simple to change where you host your Shiny app if your needs change.