It's not so much that EC2 Classic offered any features that were difficult to live without. It's just that migraine away from it means migrating, period. You need to move all of your systems, including any data stored on those systems (in instance store or EBS), to effectively a new data center. Migrating a live production environment can be a pain and/or cause downtime.
It's also worth remembering that infrastructure stuck on EC2 Classic would have been built so long ago it may predate modern cloud tooling and even modern best practices around reproducibility and CI/CD.
This. Unless a written guarantee could be offered by the cloud provider that migration will be absolutely trouble free, why wouldn't customers just stick to what they know works?
And if they're not willing to provide a written guarantee, then that says a lot.
In this scenario, it's nothing to do with the cloud provider. Migrating a live production system is inherently difficult. You can make a reasonable analogy to moving houses – say, with two kids who are in school, and while you and your spouse are both working. No matter what guarantees you're given regarding the condition of the new house, simply moving all of your stuff (while you are using it) is a big hassle.
In this example, it wouldn't be the guarantees for the new house, which presumably would have been examined and accepted well beforehand, it would be guarantees for the moving process itself.
Exactly - and with fewer managed services back then they’d also be more likely to have hand-rolled servers doing things which you’d now try to hand off to a managed service. I remember entire servers running small tasks which you’d now have, say, CloudFront or an ALB invoking Lambdas or at least sending it to a container.