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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
    *
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly