Integration with other Amazon services - Amazon CodeDeploy
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China.

Integration with other Amazon services

CodeDeploy is integrated with the following Amazon services:

Amazon CloudWatch

Amazon CloudWatch is a monitoring service for Amazon cloud resources and the applications you run on Amazon. You can use Amazon CloudWatch to collect and track metrics, collect and monitor log files, and set alarms. 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 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 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 CodeDeploy agent without having to sign in to instances one at a time.

    Learn more:

Amazon EC2 Auto Scaling

CodeDeploy supports Amazon EC2 Auto Scaling. This Amazon service can automatically launch Amazon EC2 instances based on criteria you specify, for example:

  • Limits exceeded for specified CPU utilization.

  • Disk reads or writes.

  • Inbound or outbound network traffic over a specified time interval.

You can scale out a group of Amazon EC2 instances whenever you need them and then use CodeDeploy to deploy application revisions to them automatically. Amazon EC2 Auto Scaling terminates those Amazon EC2 instances when they are no longer needed.

Learn more:

Amazon Elastic Container Service

You can use CodeDeploy to deploy an Amazon ECS containerized application as a task set. CodeDeploy performs a blue/green deployment by installing an updated version of the application as a new replacement task set. CodeDeploy reroutes production traffic from the original application task set to the replacement task set. The original task set is terminated after a successful deployment. For more information about Amazon ECS, see Amazon Elastic Container Service.

You can manage the way in which traffic is shifted to the updated task set during a deployment by choosing a canary, linear, or all-at-once configuration. For more information about Amazon ECS deployments, see Deployments on an Amazon ECS compute platform.

Amazon CloudTrail

CodeDeploy is integrated with Amazon CloudTrail. This service captures API calls made by or on behalf of CodeDeploy in your Amazon account and delivers the log files to an Amazon S3 bucket you specify. CloudTrail captures API calls from the CodeDeploy console, from CodeDeploy commands through the Amazon CLI, or from the CodeDeploy APIs directly. Using the information collected by CloudTrail, you can determine:

  • Which request was made to CodeDeploy.

  • The source IP address from which the request was made.

  • Who made the request.

  • When it was made.

Learn more:

Amazon Cloud9

Amazon Cloud9 is an online, cloud-based integrated development environment (IDE) you can use to write, run, debug, and deploy code using just a browser from an internet-connected machine. Amazon Cloud9 includes a code editor, debugger, terminal, and essential tools, such as the Amazon CLI and Git.

  • You can use the Amazon Cloud9 IDE to run, debug, and build code that is in a GitHub repository. You can view, change, and save the code using its IDE Environment window and editor tabs. When you're ready, you can use Git in the Amazon Cloud9 terminal session to push code changes to your GitHub repository, and then use Amazon CodeDeploy to deploy your updates. For more information about using Amazon Cloud9 with GitHub, see GitHub sample for Amazon Cloud9.

  • You can use the Amazon Cloud9 IDE to update an Amazon Lambda function. You can then use Amazon CodeDeploy to create a deployment that shifts traffic to the new version of your Amazon Lambda function. For more information, see Working with Amazon Lambda functions in the Amazon Cloud9 Integrated Development Environment (IDE).

For more information about Amazon Cloud9, see What Is Amazon Cloud9 and Getting started with Amazon Cloud9.

Amazon CodePipeline

Amazon 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 Amazon 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 might 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 Amazon CodePipeline to use CodeDeploy to deploy:

  • Code to Amazon EC2 instances, on-premises instances, or both.

  • Serverless Amazon Lambda function versions.

You can create the 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:

Amazon Serverless Application Model

Amazon Serverless Application Model (Amazon SAM) is a model to define serverless applications. It extends Amazon CloudFormation to provide a simplified way of defining Amazon Lambda functions, Amazon API Gateway APIs, and Amazon DynamoDB tables required by a serverless application. If you already use Amazon SAM, you can add deployment preferences to start using CodeDeploy to manage the way in which traffic is shifted during an Amazon Lambda application deployment.

For more information, see the Amazon Serverless Application Model.

Elastic Load Balancing

CodeDeploy supports Elastic Load Balancing, a service that distributes incoming application traffic across multiple Amazon EC2 instances.

For CodeDeploy deployments, load balancers also prevent traffic from being routed to instances when they are not ready, are currently being deployed to, or are no longer needed as part of an environment.

Learn more: