We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.
If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”
Customize cookie preferences
We use cookies and similar tools (collectively, "cookies") for the following purposes.
Essential
Essential cookies are necessary to provide our site and services and cannot be deactivated. They are usually set in response to your actions on the site, such as setting your privacy preferences, signing in, or filling in forms.
Performance
Performance cookies provide anonymous statistics about how customers navigate our site so we can improve site experience and performance. Approved third parties may perform analytics on our behalf, but they cannot use the data for their own purposes.
Allowed
Functional
Functional cookies help us provide useful site features, remember your preferences, and display relevant content. Approved third parties may set these cookies to provide certain site features. If you do not allow these cookies, then some or all of these services may not function properly.
Allowed
Advertising
Advertising cookies may be set through our site by us or our advertising partners and help us deliver relevant marketing content. If you do not allow these cookies, you will experience less relevant advertising.
Allowed
Blocking some types of cookies may impact your experience of our sites. You may review and change your choices at any time by selecting Cookie preferences in the footer of this site. We and selected third-parties use cookies or similar technologies as specified in the AWS Cookie Notice.
Your privacy choices
We display ads relevant to your interests on AWS sites and on other properties, including cross-context behavioral advertising. Cross-context behavioral advertising uses data from one site or app to advertise to you on a different company’s site or app.
To not allow AWS cross-context behavioral advertising based on cookies or similar technologies, select “Don't allow” and “Save privacy choices” below, or visit an AWS site with a legally-recognized decline signal enabled, such as the Global Privacy Control. If you delete your cookies or visit this site from a different browser or device, you will need to make your selection again. For more information about cookies and how we use them, please read our AWS Cookie Notice.
Find technical documentation for AWS services, SDKs and toolkits, use cases, scenarios, and tasks. Browse user guides, developer guides, tutorials, and API references.
Accelerate time to value at every phase of your cloud journey with support, training, professional, and managed services that help your organization design, build, secure, and operate on AWS.
AWS CodeDeploy is a service that automates application deployments to a variety of compute services including Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate, AWS Lambda, and on-premises instances. CodeDeploy fully automates your application deployments, removing the need for manual operations. CodeDeploy protects your application from downtime during deployments through rolling updates and deployment health tracking. CodeDeploy gives you centralized control of your deployments through the AWS Management Console, AWS Command Line Interface (AWS CLI), SDKs, or APIs, allowing you to launch, control, and monitor your deployments. You can view the deployment progress down to individual setup events. CodeDeploy tracks and stores the recent history of your deployments, so you can investigate the timeline and change history of past deployments.
CodeDeploy is platform and language agnostic and works with any application, so you can reuse your existing setup code. You can also easily integrate your application deployments with your existing software delivery process or into a continuous delivery toolchain by using the CodeDeploy APIs.
You can easily repeat an application deployment across different groups of instances with CodeDeploy. CodeDeploy uses a file- and command-based install model, which enables it to deploy any application and reuse existing setup code. The same setup code can be used to consistently deploy and test updates across your deployment, test, and production release stages for Amazon EC2 instances. Removing manual steps from deployments increases both the speed and reliability of your software delivery process.
Automatic scaling
CodeDeploy allows you to integrate software deployment and scaling activities in order to keep your application up-to-date in a dynamic production environment. For Amazon EC2 instances, CodeDeploy integrates with Auto Scaling. Auto Scaling allows you to scale Amazon EC2 capacity according to conditions you define, such as spikes in traffic. CodeDeploy is notified whenever a new instance launches into an Auto Scaling group and will automatically perform an application deployment on the new instance before it is added to an Elastic Load Balancing (ELB) load balancer.
On-premises deployments
You can use CodeDeploy to automate software deployments across your development, test, and production environments running on any instance, including instances in your own data centers (your instances will need to be able to connect to AWS public endpoints). This allows you to use a single service to consistently deploy applications across hybrid architectures.
Applications do not require downtime when they’re being upgraded to a new revision with CodeDeploy. AWS CodeDeploy can perform blue/green deployments to Amazon EC2 instances, an Amazon Elastic Container Service (Amazon ECS) service (both Amazon EC2 and Fargate launch types), or a Lambda function. With a blue/green deployment, the new version of your application is launched alongside the old version. Once the new revision is tested and declared ready, CodeDeploy can shift the traffic from your prior version to your new version according to your specifications.
CodeDeploy can also perform a rolling update across a group of Amazon EC2 instances where only a fraction of the instances are taken offline at any one time. CodeDeploy progressively works its way across the instances, allowing applications to remain available and continue serving traffic. For Lambda functions, incoming traffic is gradually routed from the old version to the new one.
Deployment health tracking
Deployment health tracking works in conjunction with rolling updates to keep applications highly available during deployments. Unexpected downtime can occur if bad updates are deployed. CodeDeploy monitors your deployment and will stop a deployment if there are too many failed updates.
Stop and roll back
You can stop an application deployment that is in process at any time using the console, the AWS CLI, or any of the AWS SDKs. You can simply redeploy that revision if you want to continue the stopped deployment at a later time. You can also immediately roll back by redeploying the previous revision.
You can launch, control, and monitor deployments of your software directly from the console or by using the AWS CLI, SDKs, or APIs. In the case of a failure, you can pinpoint the script experiencing failure. You can also set push notifications that allow you to monitor the status of your deployments by SMS or email messages through Amazon Simple Notification Service (Amazon SNS).
Deployment groups
One application can be deployed to multiple deployment groups. Deployment groups are used to match configurations to specific environments, such as a staging or production environments. You can test a revision in staging and then deploy that same code with the same deployment instructions to production once you are satisfied.
Deployment history
CodeDeploy tracks and stores the recent history of your deployments. You can view which application versions are currently deployed to each of your target deployment groups. You can inspect the change history and success rates of past deployments to specific deployment groups. You can also investigate a timeline of past deployments for a detailed view of your deployment successes and errors.
CodeDeploy uses a file- and command-based install model, which enables it to deploy any application and reuse existing setup code. CodeDeploy uses a single AppSpec configuration file that you can use to run actions, tests, or verifications at each lifecycle event (phase of deployment). The commands can be any code, such as a shell script, a custom program, or even a configuration management tool.
Tool chain integration
It is easy to integrate application deployments with your existing software delivery toolchain by using the CodeDeploy APIs. AWS CodePipeline and some AWS partners provide prebuilt CodeDeploy integrations for continuous integration and continuous delivery (CI/CD) services, simplifying automatic deployment of your updated application.
You can create notifications for events impacting your deployments. Notifications will come in the form of Amazon SNS notifications. Each notification includes a status message and a link to the resources whose event generated that notification.