EB tends to work very well when you're requirements fit within its framework - and very badly when you try to do anything differently. We've moved to CodeDeploy because: EB was slow to deploy; often left applications in an 'unknown' state after deployment; ties application configuration to deployment; and generally felt fairly restrictive.