Blog > AWS Elastic Beanstalk – Introduction
A developer wants to build a great website or any application. But, somehow always end up as a system administrator, you spend a lot of time managing and configuring servers’ databases, load balancer firewalls, and networks instead of coding. Whenever a developer has to scale servers to support more users, it becomes a headache because they have to spend extra time on the re-architecting whole infrastructure.
Challenges Faced by Developers
Challenges being faced by developers if they have to deploy their applications upon AWS platform:
- Multiple components need to be created and configured while deploying a three-tier architecture
- Sometimes need to deploy various applications
- Each application may consist of several environments like test, dev, and prod.
- Maintain multiple application versions of each application at the same time
- Complexities involved while managing infrastructure
- Scaling concerns
- Achieve consistency across different applications and environments
- Developers want their code to run
With AWS Elastic Beanstalk, a developer just needs to focus on writing code and building a great product and hand over the provisioning and scaling of the infrastructure and the installation and management of the application stack to Aws Elastic Beanstalk.
Why AWS Elastic Beanstalk?
AWS Elastic Beanstalk is an easy-to-use service that deploys, manages, and scales web applications and services. Moreover, it’s instrumental in managing containers that support environments such as java.net, PHP, nodejs, Python, Ruby, and Docker on familiar servers such as Apache HTTP server, Apache tomcat nginx passenger, and IIS. Elastic Beanstalk supports familiar AWS services, for example, Amazon EC2, S3, simple alert service, Elastic load balancing, and auto-scaling. It’s easy to get started on the Elastic Beanstalk. Elastic Beanstalk is an example of a Platform as a Service (PaaS). With the AWS management console, the command-line interface and the API just need to choose a platform like nodejs or ruby, and Amazon EC2 instance type then selects additional resources to use, such as Amazon relational database service or Amazon virtual private cloud, and then just upload your code.
Elastic Beanstalk will handle the rest of the deployment details, such as provisioning load balancing auto-scaling and health monitoring applications. Elastic Beanstalk will automatically scale your application up and down based on easily adjustable auto-scaling settings. This service also allows us to retain full control over all the AWS resources powering an app. It also helps to take some or all of the resources of your infrastructure anytime. Elastic Beanstalk helps to focus on building great web or mobile apps without spending a lot of time managing and configuring infrastructure. It automatically load-balances and manages scale, helping to make sure an application is always available. It allows giving complete control under the hood by using any Elastic Beanstalk resource. There is no additional charge for Elastic Beanstalk; just need to pay only for the AWS resources required to store and run applications.
Elastic Beanstalk Basic Components
Application
A Logical collection of Elastic Beanstalk components, including:
- Environments
- Versions
- Environment Configurations
Application Version
- An application source bundle or a deployable code (e.g., a java.war file)
- A version of an application is part of an application
- Applications can have numerous interpretations, and each version is unique
Environment
- To run the application version, a collection of AWS resources can be used
- An application version can run one application at a time
- The same or different versions of the application can run in many environments
- When you make a domain, Elastic Beanstalk provisions the resources needed to run the application version you identify
How does it Work?
Beanstalk Deployment Options for Update
All-at-once (deploy all in one go): Fastest, but occurrences aren’t accessible to serve traffic for a bit (downtime)
Rolling: Update a couple of instances at a time (batch), and afterward move onto the next batch once the first batch is healthy
Rolling with additional batches: Like rolling, however, spins up new instances to move the batch (so that the old application is still available)
Immutable: Spins up new instances in a new ASG, deploys version to these instances, and then swaps all the instances when everything is healthy
Traffic split: The underlying level of approaching customer traffic that Elastic Beanstalk movements to condition occurrences running the new application variant you’re sending.
Traffic parting assessment time: The timeframe, in minutes, that Elastic Beanstalk waits after an underlying healthy deployment before proceeding to move all approaching customer traffic to the new application form that you’re deploying.
Author: SVCIT Editorial
Copyright Silicon Valley Cloud IT, LLC.