I don't think they lose any money at all. They pass the entirety of those costs onto customers.
That's why, for example, newer EC2 instance types cost less than older ones: whenever they decide to cut their margins to increase volume, they essentially do it across-the-board first, and then they back up and increase the costs for the legacy instances to reflect their increasing support burden. (It just happens to look like the legacy instances hovering at a static pricing while the modern instances get cheaper.)
Also keep in mind that when you're selling B2B SaaS, legacy services are mostly kept around because there are big enterprise accounts that pay to keep them around. If there are only three customers left on non-VPC deployments, but one of those customers is IBM, you're not going to pull the plug.
I don't think they lose any money at all. They pass the entirety of those costs onto customers.
If that’s the case, that’s a business model I’m all for. Charge people enough money to make your product sustainable instead of just trying to gain a lot of users and hope you will figure it out later. Of course even then you have to have enough scale to cover the fix costs and offer it a price to make it affordable, but don’t start off thinking the answer to everything is advertising.
I don't know of any service that was dropped on either of AWS or GCP. Features are dropped though, they can't be ordered from new accounts then they disappear eventually.
I don't think that you can order older instances, or run instances outside of a VPC, not sure if non-HVM AMI are still supported.
AWS has a strategy of leaving offerings to rot and making a new thing that you have to migrate to yourself. For example, the 3 different types of reserved instances or ELB vs ALB. It has its pros and cons. Google has less products that are more capable and feature complete.
They are both rather new and creating new products instead of removing products, it will take one more decade to see how they handle depreciation of core products, when any actually gets retired.
You can't run EC2 instances outside of a VPC if you have a new account. If you have a very old account you still can and every now and then they announce a new feature that works with them.
I’m not aware of a single feature on AWS that has ever been abandoned.