Posted on

AWS Elastic Beanstalk

AWS Elastic Beanstalk
AWS Elastic Beanstalk allows you to quickly deploy and manage your applications in the AWS Cloud, without worrying about the infrastructure.
Elastic Beanstalk simplifies management without limiting choice or control.
Elastic Beanstalk allows for automated infrastructure management and code deployment by uploading.
Provisioning of capacity
Load Balancing
Auto Scaling
Code deployment
Health Monitoring
Elastic Beanstalk automatically launches a new environment after an application has been uploaded. It configures AWS resources to run the code. Once the environment has been launched, it can then be managed and used for new applications.
Elastic Beanstalk makes it possible to access all AWS resources, i.e. EC2 instances can also be SSHed into
Elastic Beanstalk gives developers and system administrators an easy and fast way to deploy and maintain applications without worrying about AWS infrastructure.
CloudFormation, using templates, is a better option if the internal AWS resources to be used are known and fine-grained control is neededElastic Beanstalk ComponentsApplicationAn Elastic Beanstalk application is a logical collection of Elastic Beanstalk components, including environments, versions, and environment configurations.
Application VersionAn application version is a specific, labeled version of deployable code that can be used to build a web app.
There are many versions of applications. Each application version points to an S3 object.
Multiple versions of an Application can be deployed to test differences and help rollback any version if there are issues
EnvironmentAn environment refers to a version that is uploaded onto AWS resources
A single version of an application can be run in one environment, but the same version can be used across multiple environments.
Elastic Beanstalk creates an environment and provides the resources necessary to run the application version that you have specified.
Environment Configuration. An environment configuration is a collection or settings that describe how an environment and its resources behave.
Elastic Beanstalk applies changes to resources when they are updated. It deletes resources and deploys new resources depending on the change.
Configuration TemplateA configuration template can be used as a starting point to create unique environments.
Elastic Beanstalk ArchitectureElastic Beanstalk environment needs a platform, environment, and type of environment
Environment tier determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks
Web Environment TierA web server tier is an environment tier that processes web requests.
AWS resources for a web environment include an Elastic load balancer, an Auto Scaling group and one or more EC2 instances
Every Environment has a CNAME URL pointing at the ELB, aliased Route 53 to ELB URL
Each EC2 server instance running the application uses a container kind. This defines the infrastructure topology as well as the software stack.
The host manager (HM), a software component, runs on every EC2 server instance. It is responsible for Deploying the application
Using the API or the command line to aggregate events and metrics for retrieval via console, API, or command line
Generating instance-level event
Monitor the application log files for any critical errors
Monitoring the application server
Patching instance components
Rotating the log files of your application and publishing them to S3
Worker Environment Tier A worker tier is an environment tier that runs background jobs through its web application.
AWS resources that are created for a worker environment level include an Auto Scaling group.