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)