Section 13 - Elastic Beanstalk Flashcards
1
Q
What is Elastic Beanstalk?
A
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services.
-
Supported Languages
- Java, .Net, PHP, Node.js, Python, Ruby, Go, and Docker
-
Supported Platforms
- Apache http server, Tomcat, Nginx, Passenger and IIS
-
Infrastructure
- Provisioning infrastructure, load balancing, autoscaling, and application health monitoring
-
Application platform
- Installation and management of the application stack, including patching and updates to your Operating System and application platfrom.
- NO additional charges for using Elastic Beanstalk, you are only charged for the resources deployed.
2
Q
Elastic Beanstalk deployment options?
A
-
All at once
- Deployes to all hosts concurrently
-
Rolling
- Deployes the new version in batches
-
Rolling with Additional Batch
- Launches an additional batch of instances. then deploys the new version in batches.
-
Immutable
- Deploys the new version to a fresh group of instances before deleting the old instances.
-
Traffic Splitting
- Installs the new version on a new set of instances, like an immutable deployment.
- Fowards a percentage of incoming client traffic to the new application version for evaluation.
3
Q
Elastic Beanstalk “All at Once Deployment”?
A
- Deploys to all instances simultaneously.
- You will expereince a total outage.
- Not ideal for mission-critical production systems.
- Use case Scenario:
- Development or Test environment
4
Q
Elastic Beanstalk “Rolling”?
A
- Deploys the new version in batches
- Each batch is taken out of service while the deployment takes place.
- Your environment capacity will be reduced by the number of instances in a batch while the deployment takes place.
- Not ideal for performance sensitive systems.
*
5
Q
Elastic Beanstalk “Rolling with Additional Batch”?
A
- Create new batches to handle the deployment
- If the update fails, you need to perform an additional rolling update to roll back the changes.
6
Q
Elastic Beanstalk “Immutable Deployments”?
A
- Deploys the new version to a fresh group of instances.
- Only when the new instances pass their health checks, should the old instances be terminated.
- if a deployment fails, just delete the new instances.
7
Q
Elastic Beanstalk “Traffic Splitting”?
A
- Similar to immutabe deployment
- Enables canary testing.
- Installs the new version on a new set of instances just like an Immutable deployment
- Forwards a percentage of incoming client traffic to the new application version for a specified evaluation period.
- e.g. Send 90% of Traffic to Version 1, send 10% of Traffic to Version 2
8
Q
Elastic Beanstalk customizing your Environment?
A
- You can customize your Elastic BeanStalk environment using Elastic Beanstalk configuration files.
-
Configuration
- Define packages to install, create Linux users and groups, run shell commands, enable services, load balancer configuration
-
YAML or JSON
- These are files written in YAML or JSON format.
-
Constraints
- The file must have .config extension and be inside a folder called .ebextensions
- The .ebextensions folder must be included in the top-level directory of your application source code bundle.
9
Q
Integrating RDS with Elastic Beanstalk?
A
- Elastic Beanstalk supports two ways of integrating RDS database with your Beanstalk environment
- You can deploy RDS inside your Elastic Beanstalk environment , or outside of it.
- Option 1: (Inside the Elastic Beanstalk)
- Launch the RDS instance from within the Elastic Beanstalk console
- If you terminate the environment, the database will also be terminated.
- It is a good option for Dev and Test deployments, not so good for Prod.
- Option 2: (RDS instance outside of Elastic Beanstalk)
- You can destory your Elastic Beanstalk enviroment wihtout affecting the database instance.
- Prefferred for production
- Connection to an Outside Database
- Additional security group must be added to your environment’s Auto Scaling Group
- You’ll need to provide connection string information to your application servers using Elastic Beanstalk environments properties.
10
Q
A