Amazon apparently believes that the overhead of TLS is high enough to justify not encrypting traffic when not performing sensitive actions (like placing orders, payment processing, account management, order history, login, etc.). While the server-side cost of TLS is nearly insignificant with today's hardware, it does still have a non-zero cost. Client-side impact can be much worse, especially over high-latency or unreliable links like some mobile connections; TLS can cause significant delays in page loading, which can lead to customers going elsewhere.
I'm personally of the opinion that it's better to use TLS for all traffic until and unless you have a reason not to do so - and there aren't many of those, not that I'd call valid - but I'm a security guy first and foremost. Amazon exists to make money, not to be a role model of secure web development. If all-TLS-all-the-time costs them more than using HTTP sometimes does, then they'll go with the second option even though it exposes their customers to certain types of attacks.
An example of such a risk: although the login form is served over HTTPS, the button that takes you there is served over HTTP. An attacker could use an SSL Stripping attack to modify the home page so that the login button linked to HTTP instead of HTTPS, and the attacker could then spoof the login page when the user tried to log in. The attacker would then get to see the user's credentials. Amazon could prevent this by using the Strict-Transport-Security
header, but then they would have to serve the whole site over HTTPS all the time.
As a security role model, Amazon does some stuff very well. For example, their SigV4 scheme provides AWS with authentication, integrity, and a limit on replay attacks. It's good enough that, assuming there's no inherently sensitive data (a credit card number is inherently sensitive; an identifier string that maps to a credit card number is not) in the request or response, it can actually be safe to not use TLS on some AWS functions (though in general they mandate TLS for most of AWS anyhow). Their retail site, however, makes some tradeoffs that sacrifice a little security for the sake of slightly more profit.
If you're looking to emulate Amazon's business success, then copying their security choices might be wise... but also bear in mind that the Amazon.com retail site is old, and has undergone a lot of changes over the years that add more and more security. Given how much it costs them to have any downtime on the site, they are probably very hesitant to mess with it more than they need to. If they were designing the site from scratch today, they might well use TLS for everything, with pre-loaded HSTS. Or maybe they wouldn't; after all, I'm sure they've considered doing that, and have reasons for not (yet) implementing it.
One final note: the site certainly works over HTTPS-all-the-time. My browser actually defaulted to using HTTPS for the retail site, even though I hadn't previously used it on this computer and certainly hadn't logged in or anything. Please don't be one of those sites (looking at you, Slashdot) that redirect users from HTTPS back to HTTP even if the user specifically prefers to use HTTPS.