AWS Elastic Beanstalk Flashcards
(16 cards)
Elastic Beanstalk
Managed service that automatically handles capacity provisioning, load balancing, scaling, application health monitoring, etc
Beanstalk components
Application, application version, environment (collection of AWS resources running an application version)
Single instance deployment modes
One EC2 instance with elastic IP, good for dev purposes
High availability with load balancer deployment mode
Multi AZs, ALB, good for prod
All at once deployment option
Fastest but instances are available to serve traffic for a bit (downtime)
all v1 –> all down –> all v2
Rolling deployment option
Update a few instances at a time and then move to next bucket once the first bucket is healthy
v1 –> first two instances stopped –> first two instances updated –> next 2 updated –> all are v2
long deployment
running under capacity
Rolling with additional batches deployment option
Spins up new instances to roll the batch (so old application still available)
Application running at or over capacity, runs both v1 and v2 versions simultaneously
Good for prod
small additional cost
Immutable deployment option
Spins up new instances in a new ASG, deploys version to these instances, then swaps all instances when everything is healthy
zero downtime, longest deployment, high cost, double capacity
quick rollback in case of failures
Blue Green deployment option
Create a new environment and switch over when ready
zero downtime
can use route 53 to route traffic
Traffic splitting deployment option
Canary testing, send a small % of traffic to new deployment
Beanstalk Lifecycle Policy
Based on time (old versions removed) or based on space (when you have too many versions), remove old application versions, can store 1000 at most and wont be able to deploy anymore if you hit that limit
Elastic Beanstalk extensions
AWS Elastic Beanstalk extension files are configuration files used to customize and manage various aspects of an Elastic Beanstalk environment
Elastic beanstalk cloning
Clone an environment with the exact same configuration, can change settings after cloning eg. useful for deploying a test version of your application
Elastic beanstalk load balancer migration
- create new env with same config except the load balancer as we cant clone it 2. deploy app to new env 3) perform CNAME swap or Route 53 update
RDS with elastic beanstalk decoupling
Best for prod is separately create RDS database and provide beanstalk application with the connection string
When creating configuration files for AWS Elastic Beanstalk which naming convention should you follow?
.ebextensions/<mysettings>.config</mysettings>