Here's the problem: I have a web application consisting of frontend part (written in VueJS) and backend part (API service written in Go).
What's the simplest and proper way to deploy such kind of application to GCE? The web application must be able to serve HTTPS.
In AWS world I could deploy frontend part to S3 (which supports HTTPS) and then deploy Go API to ElasticBeanstalk, for example. In GCE world there is Cloud Storage Standard that also supports serving static content (so I can deploy my VueJS part there), but it does not support HTTPS.
There is also Firebase, that supports HTTPS, but the only backend part I can use with that is Google Cloud Functions which means the whole backend part must be reworked.
Any idea what pattern I can use here to solve the problem? Or maybe I'm totally wrong and need to take a different look at it?
Firebase is the simplest way to deploy your frontend on Google's infrastructure. It handles certificate provisioning for you, so you get HTTPS out of the box. I'm not sure why you think Cloud Functions is the only backend you can use with it. You can use any backend you like, including Amazon's ElasticBeanstalk. I use both App Engine and Compute Engine backends with a Firebase frontend.
You could also do it the "old way" (how it was done when App Engine was Google's only cloud offering), and deploy your frontend to App Engine; it handles static content just fine.
There's not a single right way to do it. Your options are vast, and choosing one service to serve your frontend content in no way limits your choice for running your backend.