AWS Elastic Beanstalk automation CLI. AWS App Runner simplicity, without the cost.
AWS Easy Deploy is a Go-based CLI tool that gives AWS Elastic Beanstalk the power and simplicity of AWS App Runner, automating environment initialization, CI/CD pipeline generation, S3 packaging, and environment config injection with just a few commands.
Stop spending 45 to 60 minutes on manual deployment setup. AWS Easy Deploy gets your project live in ~10 minutes, while cutting runtime costs by 40 to 60% compared to equivalent App Runner deployments for persistent workloads.
- Eliminate managed runtime costs of App Runner while keeping its automation experience
- Self-generating CI/CD. Automatically creates GitHub Actions and GitLab CI workflows for you
- Full pipeline automation. Zip, S3 upload, Elastic Beanstalk version creation, and deployment
- Reduced setup time from 45 to 60 mins down to ~10 mins
- 40 to 60% cost savings vs. equivalent AWS App Runner persistent workloads
- Push
.envfiles directly to Elastic Beanstalk environment config in one command
Before using AWS Easy Deploy, ensure you have the AWS CLI installed and configured with a profile that has the following IAM policies attached:
| IAM Policy | Purpose |
|---|---|
AdministratorAccess-AWSElasticBeanstalk |
Create and manage Elastic Beanstalk applications and environments |
AmazonEC2FullAccess |
Provision EC2 instances for Elastic Beanstalk environments |
AmazonS3FullAccess |
Create buckets and upload deployment artifacts |
IAMFullAccess |
Create and manage IAM roles required by Elastic Beanstalk |
Configure your AWS profile if you haven't already:
aws configurecurl -sL https://raw.githubusercontent.com/AB527/AWSEasyDeploy/main/install.sh | bashThis automatically downloads the correct binary for your OS and places it in your PATH.
If you have Go installed:
go install github.com/AB527/AWSEasyDeploy@latesteasy-deploy --helpThe init command sets up your project for Elastic Beanstalk deployments. It prompts you for a few inputs and generates a .easy-deploy config file along with a ready-to-use CI/CD pipeline.
easy-deploy initYou will be prompted for the following:
| Input | Description |
|---|---|
| Project Name | Used as the Elastic Beanstalk application and environment name |
| Framework | Runtime for your app (e.g. nodejs, python, java) |
| Branch Name | Git branch that triggers deployments (e.g. main) |
| Launch in VPC? | Whether to deploy inside a VPC (yes / no) |
Once complete, a .easy-deploy config file and CI/CD pipeline are generated in your project. Commit and push these to your repository. From that point on, every push to the configured branch will automatically zip your application, upload it to S3, create a new Elastic Beanstalk application version, and deploy it to your environment.
If a .easy-deploy file already exists (e.g. a teammate clones the repo), init detects it and prompts you:
$ easy-deploy init
? Configuration exists – reinitialize from it?:
Yes
No
- Reinitialize from existing config. Sets up the local environment using the committed config. Recommended for teammates cloning an existing project.
- Overwrite with a fresh initialization. Starts from scratch and replaces the existing config.
The push-env command reads a local env file and automatically pushes all key-value pairs as configuration options to your Elastic Beanstalk environment, with no manual Console clicks required.
easy-deploy push-env <filename>
# Examples:
easy-deploy push-env .env
easy-deploy push-env .env.productionWhat it does:
- Parses the specified env file
- Injects all variables into the Elastic Beanstalk environment configuration
- Triggers an environment reload to apply the changes
- Skips blank lines and comments (lines starting with
#)
# 1. Install
curl -sL https://raw.githubusercontent.com/AB527/AWSEasyDeploy/main/install.sh | bash
# 2. Navigate to your project directory
cd my-project
# 3. Initialize, following the prompts for project name, framework, branch, and VPC
easy-deploy init
# 4. Commit the generated config and pipeline files
git add .easy-deploy
git commit -m "Add easy-deploy config"
# 5. Push to your branch. Your code will be deployed automatically once pushed to the platform
git push origin main
# 6. Optionally push your environment variables
easy-deploy push-env .envWe welcome contributions from the community! Here's how you can get started:
- Fork the repository and create your branch from
main. - Follow the Getting Started steps to set up your local environment.
- Make your changes and commit them with a clear message.
- Open a Pull Request and describe the changes you've made.
Have an idea for a new tool or an improvement? Open an issue to discuss it first.
This project is licensed under the MIT License. See the LICENSE file for details.