AWS Elastic Beanstalk Flashcards
What is Elastic Beanstalk?
Simplifies deploying, managing, and scaling web applications.
What are the Elastic Beanstalk components?
Application, Application version, & Environment.
What is the Application component?
Collection of Elastic Beanstalk components (environments, versions, configurations, …)
What is the Application Version?
An iteration of your application code
What is the Environment component?
Collection of AWS resources running an application version (only one application
version at a time)
What are the two tiers for the Environment component?
Web Server Environment Tier & Worker Environment Tier
Features:
- Utilizes a load balancer to direct traffic.
- Employs an auto-scaling group with multiple EC2 instances functioning as web servers.
- This setup is referred to as “architecture number one with Beanstalk.”
- Scale based on the number of SQS messages
- Can push messages to SQS queue from anotherWeb ServerTier
Traditional Web Tier Architecture
What is the Integration of Web and Worker Environments?
The web environment can push messages into the SQS queue used by the worker environment, linking both systems effectively.
Features:
- Does not have direct client access to EC2 instances.
- Utilizes an SQS (Simple Queue Service) queue to hold incoming messages.
- EC2 instances act as workers, pulling and processing messages from the SQS queue.
- Scales based on the number of messages in the SQS queue; more messages trigger more EC2 instances.
- Referred to as “architecture number two with Beanstalk.”
Beanstalk Worker Environment
What are the two deployment modes?
- Single Instance Deployment
- High Availability Deployment
Features:
- Suitable for development purposes.
- Consists of a single EC2 instance with an Elastic IP.
- May include additional resources like an RDS database.
- Offers a straightforward setup for simpler, non-scalable applications.
Single Instance Deployment
Features:
- Ideal for production environments.
- Utilizes a load balancer to distribute traffic across multiple EC2 instances.
- Includes an auto-scaling group to manage the scaling of instances across multiple Availability Zones.
- Often features an RDS database configured for multi-AZ deployments to ensure high availability and failover support.
High Availability Deployment
What are Beanstalk Deployment Options?
- All at once
- Rolling
- Rolling with additional batches
- Immutable
- Blue Green
- Traffic Splitting
What is All at once deployment?
(deploy all in one go) – fastest, but instances aren’t available to serve traffic for a bit (downtime)
What is “Rolling” deployment?
Update a few instances at a time (bucket), and then move onto the next bucket once the first bucket is healthy