Rolling deploys, health checks, and database migrations — the configuration that actually works in production.
Elastic Beanstalk has a reputation for being the "easy" AWS option — and therefore not production-grade. That reputation is undeserved. With the right configuration it delivers rolling deployments, auto-scaling, and integrated CloudWatch logging without the operational overhead of bare ECS or Kubernetes.
Rolling deployments update instances in batches. The application stays online but you briefly run two versions simultaneously — acceptable for stateless apps, problematic if your new code changes a database schema that the old version cannot read. Immutable deployments spin up a fresh Auto Scaling group, run your deployment against it, and then cut traffic over in one step. We use immutable for any release that touches the database.
The most dangerous part of any deployment. Our rule: migrations must be backward-compatible with the previous release. Add columns before the code that uses them. Drop columns only after the code that reads them is already gone. Annotate each migration with a -- safe to run while old version is live or -- requires immutable deploy comment.
Elastic Beanstalk's default health check is a single HTTP 200 on /. Replace it with a dedicated /up endpoint that verifies database connectivity, cache connectivity, and queue connectivity. A deployment that returns 200 on / but cannot reach the database should not receive traffic.
Discovery call within one business day. No commitment.
Product launches, case studies, and IT-services tips. No spam.