我想进一步解释Mark的优秀回答。
可用的替代方案
由于您是唯一的开发人员,Cloud Formation和OpsWorks对您来说都不是好选择。
使用OpsWorks,您需要编写或至少了解配置实例的Chef自动化代码。另一方面,单独使用Cloud Formation是不够的。它将帮助您创建AWS云资源,但您仍然需要弄清楚如何编排应用程序部署,这只是个开始。这两个选项都不能像Heroku那样直接提供运行和部署代码所需的所有内容。您需要自己实现其中的部分。
由于在EC2之上滚动自己的自动化甚至比上述选项需要更多的工作,因此我认为您在AWS中有两个适合您需求的选择:
1) Elastic Beanstalk
这是您在AWS中最接近Heroku的选择。起初,您可能需要花些时间了解平台,因为它不像Heroku那么直观,但最终Elastic Beanstalk将为您提供所有必要的工具,以便您继续运行应用程序而无需花费时间进行系统管理员任务。
2) ECS + Empire
尽管您提到使用Docker对您来说不可行,但我仍然想强调使用ECS,即亚马逊的Docker编排服务,作为Heroku替代方案的选择。
ECS本身并没有提供足够的自动化功能,无法满足PaaS所需的一切。该服务旨在用作构建块,您应该扩展其功能以适应您的需求。
幸运的是,Remind的人已经为您完成了这项工作。他们发布了一个名为Empire的开源项目,根据其自身描述,它是“在ECS之上的控制层,提供类似于Heroku的工作流程”。
Empire与Heroku的API兼容,其命令行实现了Heroku的最重要的功能。
Empire是一个开源项目,因此如果您选择使用它,您应该准备不时地查看其代码。文档不是很完善,虽然该项目有些热度,但社区规模并不是很大。
总体而言,如果您愿意使用Docker运行应用程序,它是Heroku的一个很好的替代方案--那么您为什么不应该呢?
Addons
除了你可以获得免费的AWS信用之外,我认为从Redis Labs切换到Amazon的Redis服务(ElastiCache)的主要好处是当您在AWS上运行应用程序时,访问Redis实例将更容易(且更便宜)。总的来说,当您迁移到AWS时,很容易复制您正在Heroku中使用的插件。对于像Elasticsearch这样的第三方插件,您只需继续将应用程序指向相关的端点即可。如果要复制Heroku的本地插件(如部署钩子)则有点复杂,因为在迁移到AWS时无法继续使用它们。在这些情况下,通常可以找到替代方法在AWS内部复制其功能。如果您想了解如何迁移最常见的插件,我写了一篇文章详细介绍了如何做到这一点,您可以在此处找到:
如何在AWS上复制Heroku的插件。希望这有所帮助。