Deploy to AWS Elastic Beanstalk from Git with DeployHQ

Devops & Infrastructure, New Features, and Tutorials

Deploy to AWS Elastic Beanstalk from Git with DeployHQ

AWS Elastic Beanstalk takes the hardest parts of running a web application — provisioning EC2 instances, wiring up Elastic Load Balancing, configuring auto-scaling groups, managing platform updates — and hides them behind a single managed service. What it does not give you is a CI/CD pipeline. You still need to package your application as a zip, push it to S3, register a new application version, and tell Elastic Beanstalk to deploy it. Most teams end up writing brittle shell scripts or pinning a CI runner to AWS credentials that quietly accumulate permissions over time.

DeployHQ's AWS Elastic Beanstalk integration closes that gap. Push to your branch, and DeployHQ packages the application, uploads it to a managed S3 bucket, creates the Elastic Beanstalk application version, and triggers the environment update — without writing any deployment code or storing long-lived AWS keys inside your CI runners.

Why Elastic Beanstalk is still the right choice in 2026

Despite the rise of AWS App Runner, ECS Fargate, and Lambda for containerised and event-driven workloads, Elastic Beanstalk remains AWS's recommended Platform-as-a-Service for traditional web applications and APIs. AWS still actively maintains the service, regularly releases new platform versions (including Graviton/arm64 support for cheaper compute), and supports the full mainstream language matrix: Go, Java, .NET, Node.js, PHP, Python, Ruby, and Docker.

Elastic Beanstalk fits best when you want:

  • A managed runtime without forcing your team to learn Kubernetes or write ECS task definitions
  • Auto-scaling and load balancing without building the infrastructure yourself
  • Worker environments for SQS-driven background jobs without standing up a separate service
  • Blue/green deployments through environment cloning and URL swapping
  • Vertical and horizontal scaling controlled from one console rather than five different services

If you are running a stateful web application, a REST API, or a worker fleet processing SQS messages, Elastic Beanstalk is still the simplest way to run it on AWS — and DeployHQ makes it the simplest way to deploy it from Git.

How the DeployHQ Elastic Beanstalk pipeline works

When DeployHQ deploys to Elastic Beanstalk, it follows the same four-step pattern the EB CLI uses, but does it automatically off your repository:

flowchart LR
    A[Git Repository] -->|Push code| B[DeployHQ]
    B -->|Package & upload| C[S3 Bucket]
    C -->|Create app version| D[Elastic Beanstalk]
    D -->|Deploy to| E[EC2 Instances]
  1. DeployHQ checks out the commit, runs any build pipeline steps you have configured (npm install && npm run build, composer install --no-dev, pip install -r requirements.txt, etc.) and produces a clean application bundle.
  2. The bundle is uploaded as a versioned object to a DeployHQ-managed S3 bucket in your AWS account.
  3. DeployHQ calls CreateApplicationVersion to register the bundle as a new application version in your Elastic Beanstalk application.
  4. DeployHQ calls UpdateEnvironment to roll the new version into your target environment, respecting the rolling-update policy you have configured in Elastic Beanstalk itself.

The advantage of this split — DeployHQ handling packaging and version creation, Elastic Beanstalk handling the rollout — is that you keep AWS-native deployment strategies (Rolling, RollingWithAdditionalBatch, Immutable, TrafficSplitting) while removing the pipeline boilerplate.

Five Elastic Beanstalk scenarios DeployHQ improves

1. Web applications and APIs on a single environment

Most Elastic Beanstalk users start with a single environment serving a Node.js, PHP, or Python application behind an Application Load Balancer. The friction is rarely the AWS side — it is the manual cycle of eb deploy, waiting for the update, and hoping you remembered to run the right build step locally.

DeployHQ replaces that loop with automatic deployments from Git. Push to main, and the application is built, packaged, uploaded, and deployed within minutes. Every deployment ties back to a commit, so the what's in production? question always has a Git answer rather than a whoever ran `eb deploy` last from their laptop answer.

2. Variable traffic with rolling deployments

For applications with daily peaks (SaaS apps, internal tools, e-commerce) Elastic Beanstalk's auto-scaling group will scale instances up and down based on CPU, request count, or network I/O. Combine this with DeployHQ's zero downtime deployments and Elastic Beanstalk's RollingWithAdditionalBatch policy, and you can deploy during business hours without affecting in-flight requests.

A practical recipe many teams use:

  • RPO/RTO baseline: configure Elastic Beanstalk with a minimum of 2 instances across 2 Availability Zones (the 2-AZ minimum is essential — single-AZ environments lose all traffic during a zone failure)
  • Rolling batch size: 25% of healthy hosts, so a 4-instance fleet swaps one instance at a time
  • Health check grace period: 300 seconds for applications with slow warm-up (JIT-compiled Java, large PHP opcache primes)
  • DeployHQ deployment strategy: build once, deploy artifact — the same bundle goes to staging and production, ensuring environment parity

3. Worker environments for asynchronous tasks

Elastic Beanstalk worker environments pull messages from an SQS queue and POST them to a local HTTP endpoint on each instance. This is the standard AWS pattern for image processing, email sending, PDF generation, video transcoding, and any long-running task you do not want competing with web traffic for CPU.

The pain is keeping the worker code in sync with the web code. With DeployHQ, you configure two servers (one web environment, one worker environment) pointing at the same repository and branch, optionally with different build pipelines. A single push deploys both consistently — no risk of the worker running last week's code while the web tier runs today's.

4. Multi-platform organisations

Elastic Beanstalk's biggest sell to medium-sized engineering organisations is the supported platform matrix. A team can have a Node.js API, a Python data service, and a PHP admin panel all running on Elastic Beanstalk with the same operational model. DeployHQ is platform-agnostic in the same way — the same configuration UI works for deploying from GitHub or deploying from GitLab regardless of the language underneath.

For teams running mixed stacks, this means one mental model for both the runtime (Elastic Beanstalk) and the pipeline (DeployHQ), rather than separate CI scripts per project.

5. Small teams without dedicated DevOps

The original pitch for Elastic Beanstalk was Heroku on AWS — abstract the infrastructure so a small team can ship product. DeployHQ extends that abstraction up one more layer: small teams do not need to maintain GitHub Actions workflows, Jenkins jobs, or buildspec.yml files either. The deployment pipeline becomes a configuration in a UI rather than YAML living in the repository.

For agencies running client projects this matters even more — see DeployHQ for agencies for how multi-client deployment management works in practice.

Getting started

Setting up the integration takes about ten minutes and requires:

  1. Enable Beta features in your DeployHQ account settings (the integration is still in public beta as of mid-2026)
  2. Create an IAM user in AWS with the minimum permissions DeployHQ needs — the support guide lists them, but the headline ones are elasticbeanstalk:DescribeApplications, elasticbeanstalk:CreateApplicationVersion, elasticbeanstalk:UpdateEnvironment, and s3:PutObject/s3:GetObject on the deployment bucket
  3. In DeployHQ, choose AWS ElasticBeanstalk as the server protocol, enter the Access Key ID and Secret Access Key for that IAM user, select the region, and pick your Elastic Beanstalk application from the dropdown

A common gotcha: if your Elastic Beanstalk environment is in a region your IAM user does not have access to, the application dropdown will silently come back empty. Double-check the IAM policy is not scoped to a different region.

The full setup walkthrough lives in the DeployHQ Elastic Beanstalk server documentation.

Where Elastic Beanstalk fits in the broader DeployHQ AWS coverage

Elastic Beanstalk is one of several AWS deployment targets DeployHQ supports natively. Depending on your workload, you may also want to look at:

Pick Elastic Beanstalk for traditional web applications and APIs where you want AWS-managed auto-scaling without owning the infrastructure. Pick ECS or EKS when you have outgrown what Elastic Beanstalk can express. Pick Lambda when your workload is event-driven and bursty.

FAQs

What is the AWS Elastic Beanstalk integration?

A native server protocol in DeployHQ that connects directly to Elastic Beanstalk, automating the package → S3 upload → application version → environment update pipeline so you can deploy from Git without writing custom AWS scripts.

How do I access this feature?

Enable Beta features in your DeployHQ account settings, then create a new server using the AWS ElasticBeanstalk protocol.

What IAM permissions does DeployHQ need?

At minimum: elasticbeanstalk:DescribeApplications, elasticbeanstalk:CreateApplicationVersion, elasticbeanstalk:UpdateEnvironment, and s3:PutObject / s3:GetObject on the bucket used for application bundles. Scope the IAM user to a single region for least-privilege access.

Does DeployHQ work with all Elastic Beanstalk platforms?

Yes — DeployHQ is language-agnostic and supports every Elastic Beanstalk platform: Go, Java, .NET, Node.js, PHP, Python, Ruby, and Docker.

Does this support Elastic Beanstalk worker environments?

Yes. Set up a second DeployHQ server pointing at your worker environment and deploy alongside your web environment to keep both tiers in sync.

Can I use Elastic Beanstalk's blue/green deployment with DeployHQ?

Yes. Elastic Beanstalk's URL swap-based blue/green works underneath DeployHQ — you configure the rollout strategy in Elastic Beanstalk, DeployHQ handles getting the new application version registered.

Should I use Elastic Beanstalk or ECS/Fargate in 2026?

Elastic Beanstalk if you want a fully managed PaaS for a traditional web application or worker fleet. ECS/Fargate if you need fine-grained container control, custom task definitions, or sidecar containers. Both are well-supported in DeployHQ — see the ECS/EKS guide for the alternative path.

Where can I find more detailed documentation?

The DeployHQ Elastic Beanstalk server setup guide has the full walkthrough, including IAM policy examples and troubleshooting steps.

Ready to automate your Elastic Beanstalk deployments? Sign up for DeployHQ and connect your first Elastic Beanstalk environment in under ten minutes.


If you have any questions or need assistance, reach out to us at support@deployhq.com or find us on X (Twitter).