AWS CodeDeploy
User Guide (API Version 2014-10-06)

Integration with Other AWS Services

AWS CodeDeploy is integrated with the following AWS services:

Amazon CloudWatch

Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS. You can use Amazon CloudWatch to collect and track metrics, collect and monitor log files, and set alarms. AWS CodeDeploy supports the following CloudWatch tools:

  • CloudWatch Alarms for monitoring your deployments and stopping them when your specified monitoring metrics exceed or fall below the thresholds you specify in a CloudWatch alarm rule. To use alarm monitoring, you first set up an alarm in CloudWatch, and then add it in AWS CodeDeploy to the application or deployment group where deployments should stop when the alarm is activated.

    Learn more:

  • Amazon CloudWatch Events for detecting and reacting to changes in the state of an instance or a deployment in your AWS CodeDeploy operations. Then, based on rules you create, CloudWatch Events invokes one or more target actions when a deployment or instance enters the state you specify in a rule.

    Learn more:

  • Amazon CloudWatch Logs for monitoring the three types of logs created by the AWS CodeDeploy agent without having to sign in to instances one at a time.

    Learn more:

Auto Scaling

AWS CodeDeploy supports Auto Scaling, an AWS web service that can automatically launch Amazon EC2 instances based on criteria you specify (for example, limits exceeded for specified CPU utilization, disk reads or writes, or inbound or outbound network traffic over a specified time interval). This enables you to scale up a group of Amazon EC2 instances whenever you need them and then use AWS CodeDeploy to deploy application revisions to the additional Amazon EC2 instances automatically. Auto Scaling terminates those Amazon EC2 instances when they are no longer needed.

Learn more:

AWS CloudTrail

AWS CodeDeploy is integrated with AWS CloudTrail, a service that captures API calls made by or on behalf of AWS CodeDeploy in your AWS account and delivers the log files to an Amazon S3 bucket you specify. CloudTrail captures API calls from the AWS CodeDeploy console, from AWS CodeDeploy commands through the AWS CLI, or from the AWS CodeDeploy APIs directly. Using the information collected by CloudTrail, you can determine which request was made to AWS CodeDeploy, the source IP address from which the request was made, who made the request, when it was made, and so on.

Learn more:

AWS CodePipeline

AWS CodePipeline is a continuous delivery service you can use to model, visualize, and automate the steps required to release your software in a continuous delivery process. You can use AWS CodePipeline to define your own release process so that the service builds, tests, and deploys your code every time there is a code change. For example, you may have three deployment groups for an application: Beta, Gamma, and Prod. You can set up a pipeline so that each time there is a change in your source code, the updates are deployed to each deployment group, one by one.

You can configure AWS CodePipeline to use AWS CodeDeploy to deploy your code to Amazon EC2 instances, on-premises instances, or both.

You can create the AWS CodeDeploy application, deployment, and deployment group to use in a deploy action in a stage either before you create the pipeline or in the Create Pipeline wizard.

Learn more:

Elastic Load Balancing

AWS CodeDeploy supports Elastic Load Balancing, a service that distributes incoming application traffic across multiple Amazon EC2 instances. The use of Elastic Load Balancing load balancers is optional in in-place deployments and mandatory in blue/green deployments.

During a blue/green deployment, the role of the load balancer is to allow traffic to be routed to the new instances in a deployment group that the latest application revision has been deployed to (the replacement environment) according to the rules you specify, and then block traffic from the old instances where the previous application revision was running (the original environment).

During an in-place deployment, a load balancer prevents internet traffic from being routed to an instance while it is being deployed to, and then makes the instance available for traffic again after the deployment to that instance is complete.

Learn more: