IMO the AGPL goes a long way to solving that problem. But if the AGPL is not for you, I suppose you could use some non-commercial license terms. It seems like "closed source" is a much better fit for folks who want a great deal of control over licensees. In practice, "closed source" code can be published for licensees to see but instead of granting terms to all comers you could force people to ask you for a license, review their use case and only then decide to grant a copyright license -- with or without source.
Then Amazon comes in and sets up their own even easier hosting while providing none of the profits or development effort back to the original project. The AGPL is no problem because Amazon is fine to publish any changes they make, thats not an issue because the real product is the hosting and not the code.
There's nothing particularly "modern" about this "problem". Redhat caused this problem with GPL and BSD-licensed code in 1993.
It's a feature, not a bug. Some people probably didn't like it then either.
If you resent companies and people making money from your work, you're not really embracing the ideals of open source. So just keep it closed source. Like I said earlier you can always reveal the source to licensees when they pay you, and you can prevent them from distributing the source.
AGPL is for code, not for infrastructure, and you can still profit off of AGPL-licensed code by:
1 - selling support for it
2 - getting donations
3 - asking for money in return for working on feature requests
4 - being paid by a corporations to work on an open source product they themselves use and profit from
The problem is releasing stuff as open source and expecting to profit off it while preventing others from doing the same. You fundamentally can't. Why bother with open source with an attitude like that?
The AGPL is easy to comply with in a way that still earns a company profit while the software authors get nothing.
Agreed that non-commercial public source or just closed source is what these people should be doing.