As per this document: https://developers.google.com/cast/docs/android_sender You need Google Play Services (see https://en.wikipedia.org/wiki/Google_Play_Services#Concerns) to write an Android app with the Cast API.
Because of this, Amazon cannot distribute Google Play Services on their own Android devices and therefor cannot use their own Android devices to cast to a Chromecast. They could enable Prime Video on other Android devices but not their own. They feel this will cause confusion and therefor have decided not to write a Prime Video app for Chromecast. Saying "oh, Amazon just doesn't want to write a Prime Video app for Chromecast", while true, doesn't truly explain the complexities of the situation.
The business decision to remove Chromecasts from the network steps from the above desire to prevent confusion. I personally don't agree with it but I understand it.
Fundamentally it means Amazon can be more competitive, and Netflix are hoping they can stay ahead on the user experience curve.
Edit: See jedberg's comment below for where the real money goes.
Telecom companies regularly try to make rules to ensure those that compete with cash cow voice or cable-TV services have to do so on unfavourable grounds.
How many people buy Amazon Prime for the video streaming? What percentage of the $800M Prime revenue is attributable to the video service?
I'd wager less than 10%. Does Netflix spend more than $80M a year on AWS?
The numbers needed to answer the question aren't publicly available. It's a bunch of guesswork.
They spent $1.3B on "General/Administrative Expenses" last year - think more than 6% of that was infrastructure?
Especially on bandwidth, anyone can buy bandwidth at well below 20% of AWS prices elsewhere. Netflix shouldn't be paying even 10% of published AWS bandwidth prices given their volumes.
Previous to this arrangement Netflix used 3rd party CDNs like Akamai which again did not sit on Amazon's infrastructure.
That said I'm not agreeing or disagreeing with any assessment of how much Amazon costs are.
If the customers don't want TV they are put on a free tier rather than being cancelled, so they are still officially a TV subscriber and can boost the viewing figures for the service.
It's useful to be vague if you are in a dying industry or your competitors are better established.
On the other hand, if they rely on lots of proprietary AWS tools, then that seems like a dangerous place to be.
The thing to remember is that businesses routinely do this kind of thing and rely on contracts and markets to manage their risks. Even assuming that they don't have guarantees in the agreement giving Netflix those famously low rates, if Amazon chose sabotage they'd be endangering their much larger cloud business and that would hurt them for much longer than the time it would take Netflix to migrate to Google, Azure, etc. Even if you're completely unethical and a ruthless competitor, it's hard to argue that Amazon wouldn't benefit far more from making Prime Video a more interesting product, which conveniently also has no potential downsides.
I'm not arguing that Amazon wouldn't benefit from making Prime Video a more interesting product. But finding ways to hamper your biggest competitor, who is fully dependent on your infrastructure, is definitely a way to make Prime Video more interesting. Perhaps I'm being paranoid. I guess I just find Bezos difficult to trust.
I think the big counterbalance now is competition – raising prices on AWS would be a boon for e.g. Azure – but I definitely wouldn't want to bet against abuse if one of Microsoft, Google, Rackspace, etc. dropped out. I'm sure Netflix has pretty good forecasts for how much it'd cost to move operations elsewhere as long as a good option exists.
Assume that Netflix has done the analysis and prefers AWS over other provides. The benefit can be framed like this - if Netflix does not use AWS, then Amazon Video has a strategic advantage in being the only one with access to the best platform. By using AWS, they remove that competitive advantage from Amazon Video.
The AWS stuff is all support services like watchlists, descriptions, etc
Heroku is for individual developers to directly develop their app in terms of.
AWS, meanwhile, is mostly for enterprises: it's a "virtual datacenter" for your (much-reduced) ops team to manage in place of a real datacenter. In that sense, Elastic Beanstalk is not a service that AWS provides developers—it's a service that AWS provides your ops team to provide to in turn provide to your developers.