Skip to main content
Elastic Beanstalk
What is it?
- a PaaS that makes it easy to deploy and scale web applications
- infrastructure as code
- Managed service, uses EC2, ASG, ELB, RDS ...
- handles capaicity provisioning, laod balancing, scaling, applicaiton health monitoring, instance configuration
- application code is the only responsibility of the developer
Components
-
Application: environments, versions, configurations
-
Application Version
-
Environment: collection of AWS resources running an application version (only one application version at at time)
-
Tiers: WebServer Environment Tier & Worker Environment Tier
- multiple environments: dev, test, prod, etc...
- Web Server Tier vs. Worker Tier
-
Deployment Modes
-
Single Instance: for dev
-
HA with LoadBalancer: for prod
Deployment Options for Updates
-
All at once: downtime
-
Rolling
-
Rolling with additional batches: new instances in the same ASG
-
Immutable: complete new deployment with a new ASG
-
Blue Green: complete new environment
-
Traffic Splitting: canary testing, small % of traffic to new deployment
-
WebServer vs Worker Environment
Notifications
- create rules in EventBridge to act to the following events
-
Environment operations status: create, udpate, terminate (start, success, fail)
-
Other resources status: ASG, ELB, EC2 instance (created, deleted)
-
Managed updates status: started, failed
-
Environment health status
-