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)