使用AWS Elastic Beanstalk和AWS CodeDeploy实现自动化

时间:2017-11-10 07:19:41

标签: amazon-web-services jenkins continuous-integration elastic-beanstalk aws-code-deploy

我正在使用AWS Elastic Beanstalk并在其上部署了我的nodejs应用程序。现在我想自动化这个过程,即提交对Github的更改,然后自动反映应用程序中的这些更改。现在我有两个选项,使用Elastic Beanstlak还是使用Code Deploy。 我搜索了这两项服务,

现在可以使用这两种服务,但哪种服务更适合使用。无论是使用AWS Elastic Beanstalk还是AWS Code Deploy,这都将使我的流程自动化。

4 个答案:

答案 0 :(得分:4)

最大的区别是:

  • CodeDeploy是将您的应用程序部署到现有EC2实例的服务。它不考虑LoadBalancing或扩展等。
  • ElasticBeanstalk更是PaaS服务的一部分,它为您提供了扩展应用程序所需的所有包装,因此您不必担心DevOps方面。例如监控,缩放等。

我发现这张图片很好地描述了差异。包括OpsWorks: aws-cloud-deployment

如果您想了解有关CodeDeploy,Elastic Beanstalk或OpsWorks的不同之处的更多信息,请查看AWS自己的文档:https://d0.awsstatic.com/whitepapers/overview-of-deployment-options-on-aws.pdf

答案 1 :(得分:2)

Use the second option instead of using third party tools as AWS platform is supporting to deploy your app using git or bitbucket using python based scripts.

答案 2 :(得分:0)

答案很简单。 ElasticBeanstalk基于一组AWS通用实践提供自动切饼的部署。 CodeDeploy可以广泛配置和自定义。

您应该使用ElasticBeanstalk,直到找到不使用CodeDeploy无法解决的用例(Maksim Luzik发布的AWS文档建议的两个用例正在部署到您的组织内部管理的EC2实例中,然后再部署到EC2实例中)集成)。​​

答案 3 :(得分:0)

我使用过这两种工具,它们都非常适合各自的工作。我发现 ElasticBeans 任务在使用自定义平台时很方便,但不太灵活。

我在当前的应用程序中使用 codeDeploy。我决定这样做是因为以下用例。

  • 我使用的是基于 debian 的平台。 Elastic BeansTalks 不在其默认可用平台列表中提供该平台。那么,如果我需要创建自定义 AMI,那又有什么意义呢。
  • 我有两种基于相同代码库构建的应用程序。一个是 Web,另一个在后台执行几个队列。我需要在两种类型的应用程序上发布相同的代码,这就是我发现 codeDeploy 做得更好的原因。