DEV Community

Latchu@DevOps
Latchu@DevOps

Posted on

๐Ÿš€ AWS CodePipeline Now Supports Deploy Spec Files for EC2 Deployments โ€“ Here's How It Works!

AWS CodePipeline now supports Deploy Spec file configurations in the EC2 Deploy action!

This feature brings more flexibility, transparency, and debugging ease to your CI/CD pipelines. Let me break it down for you with a simple example.

๐Ÿ†• What's New?

You can now:

  • Add a Deploy Spec file (YAML format) to your source repo.
  • Reference it in your EC2 Deploy action in CodePipeline.
  • Enjoy real-time EC2 instance-level deployment status in the console.

Think of this like appspec.yml from CodeDeployโ€”but with added power directly from your pipeline.

๐Ÿ”ง Example Use Case

Letโ€™s say youโ€™re deploying a web app to EC2 instances using CodePipeline.

Previously:

  • Deployment steps were defined manually in the pipeline or via the default behavior.
  • Debugging large-scale deployments was tediousโ€”sifting through logs to find which instance failed.

Now:

  • You can define deployment logic in a version-controlled file (deployspec.yml).
  • You get per-instance status in real time via the deployment monitoring interface.

๐Ÿ“ Folder Structure

my-web-app/
โ”œโ”€โ”€ index.html
โ”œโ”€โ”€ start_server.sh
โ”œโ”€โ”€ stop_server.sh
โ””โ”€โ”€ deployspec.yml   ๐Ÿ‘ˆ New!

Enter fullscreen mode Exit fullscreen mode

โœ๏ธ Sample deployspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html
hooks:
  BeforeInstall:
    - location: stop_server.sh
      timeout: 60
      runas: ec2-user
  AfterInstall:
    - location: start_server.sh
      timeout: 60
      runas: ec2-user

Enter fullscreen mode Exit fullscreen mode

This defines:

  • File copy paths
  • Pre/post-install hook scripts
  • Execution user and timeouts

๐Ÿ”— CodePipeline EC2 Deploy Configuration

In the EC2 Deploy action of your pipeline, add this:

"configuration": {
  "ApplicationName": "MyApp",
  "DeploymentGroupName": "MyDeploymentGroup",
  "DeploySpecFile": "deployspec.yml"
}

Enter fullscreen mode Exit fullscreen mode

โœ… This tells the pipeline to use the deployspec.yml from your source artifact.

๐Ÿ–ฅ๏ธ Enhanced Deployment Debugging

CodePipeline now also gives you:

Real-time deployment status per EC2 instance

Easier troubleshootingโ€”no more scanning massive logs

Faster detection of which EC2 instance failed and why
Enter fullscreen mode Exit fullscreen mode

๐ŸŽฏ Final Thoughts

This update is a game-changer for teams deploying across many EC2 instances. You get:

Cleaner pipeline configs

Better visibility into deployments

Version-controlled deployment logic
Enter fullscreen mode Exit fullscreen mode

๐Ÿ’ฌ Have you tried this new feature yet? Share your thoughts or use cases in the comments below!

Top comments (0)