Search code examples
amazon-web-servicesaws-code-deploy

AWS CodeDeploy failed without a reason


I am trying to use AWS CodeDeploy to deploy a Java war file to an EC2 instance.

I already added a appspec.yml in the root of this war with this content:

version: 0.0
os: linux 
files:
  - source: /
    destination:  /var/scwcd/scwcd

I also created an EC2 instance and codeDeploy application can see this Ec2 instance. I manually upload this war file to my S3 bucket and set codeDeploy source to the S3 file. I also added enough permission for CodeDeploy to access S3 and EC2 instance.

But the deployment always failed with this message:

The overall deployment failed because too many individual instances failed deployment, 
too few healthy instances are available for deployment, 
or some instances in your deployment group are experiencing problems

I checked the deployment event list and found every actions are skipped without error code:

enter image description here

I also checked the EC2 instance and found the destination folder /var/scwcd is not there.

Does anybody know what I missed?

Thanks!


Solution

  • Have you installed the CodeDeploy agent [1] on EC2 Instance? All events skipped usually means the agent is not calling CodeDeploy service endpoint [2].

    You can use the following in EC2 UserData to install the agent when the instance first boots up:

    Amazon Linux/RHEL

    #!/bin/bash
    sudo yum update -y
    sudo yum install -y ruby wget
    cd /home/ec2-user
    wget https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/install
    chmod +x ./install
    sudo ./install auto
    sudo service codedeploy-agent start
    

    Ubuntu

    #!/bin/bash
    apt-get -y update
    apt-get -y install ruby
    apt-get -y install wget
    cd /home/ubuntu
    wget https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/install
    chmod +x ./install
    ./install auto
    

    [1] https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html

    [2] https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html#troubleshooting-skipped-lifecycle-events