🚀 AWS CodePipeline Now Supports Deploy Spec Files for EC2 Deployments – Here's How It Works!
Latchu@DevOps

Latchu@DevOps @latchudevops

About: Infra. Automation. Impact

Location:
Chennai, India
Joined:
Apr 10, 2025

🚀 AWS CodePipeline Now Supports Deploy Spec Files for EC2 Deployments – Here's How It Works!

Publish Date: May 19
0 0

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!

Comments 0 total

    Add comment