If you're using AWS primarily as a place to run virtual machines, you probably should be somewhere else. The largest benefits appear when you primarily use cloud-native things: lambdas, sqs, dynamodb, etc. Of course these will constitute a vendor lock-in, but that's usually an acceptable compromise.