9

I am using AWS Elastic Beanstalk and have deployed my nodejs app on it. Now I want to automate this process i.e committing changes to Github and then automatically reflecting those changes in app. Now I have two options, use whether Elastic Beanstalk or using Code Deploy. I have searched on both services,

Now both services can be used , but which one is more suitable to use. That will automate my process whether using AWS Elastic Beanstalk or AWS Code Deploy.

4 Answers 4

27

The biggest difference is, that:

  • CodeDeploy is the service that deploys your application to the existing EC2 instance(s). It does not take into account LoadBalancing or scaling etc.
  • ElasticBeanstalk is more of the PaaS service, that provides you all the wrapping you need to scale your application so you don't need to worry about the DevOps aspect. Like monitoring, scaling etc.

I found this image to describe the differences nicely. Including as well OpsWorks: aws-cloud-deployment

If you want to read more about differences of CodeDeploy, Elastic Beanstalk or OpsWorks, check out AWS own document: https://d0.awsstatic.com/whitepapers/overview-of-deployment-options-on-aws.pdf

Sign up to request clarification or add additional context in comments.

5 Comments

What is the source of your image? I'm hoping to read related info there. Thanks. Separately, that's a nice AWS whitepaper link.
I found it in Google Image search, I think it was posted in Quora: quora.com/…
Doesn't CodePipeline cover everything from Code to Provision?
@cs-dev You can run CloudFormation via CodePipeline (or use for example AWS CDK or terraform), but in the end it is still CloudFormation that provisions services in the AWS
that second yellow line is supposed to be CodeBuild.
7

The answer is very simple. ElasticBeanstalk offers cookie-cutter automated deployments based on a set of AWS common practices. CodeDeploy is broadly configurable and customizable.

You should use ElasticBeanstalk until you find a use case that cannot be resolved without using CodeDeploy (two use cases suggested by the AWS Documentation posted by Maksim Luzik are deploying to EC2 instances managed internally by your organization and deploying to EC2 instances for third-party integration).

Comments

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.

1 Comment

I use this option to deploy the web app to the ec2 instances behind an ELB.
1

I have worked with both tools and both are great for respective jobs. I found ElasticBeans task convenient but lesser flexible when It comes to work with custom platforms.

I am using codeDeploy in my current application. I decided so because of following use cases.

  • I am using debian based platform. Elastic BeansTalks does not offer that platform in its default list of available platforms. So what's the point if I need to create custom AMI.
  • I I have 2 type of applications built on the top of same code base. One is Web and other executes couple of queues in the background. I need to release same code on both type of applications so that's why I found codeDeploy does better job.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.