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!
โ๏ธ 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
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" }
โ 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
๐ฏ 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
๐ฌ Have you tried this new feature yet? Share your thoughts or use cases in the comments below!
Top comments (0)