Supported web servers: Apache, Nginx, IIS, Passenger.
Supported Docker containers
Application domain name format: my-app-domain.region.elasticbeanstalk.com
AWS Elastic Beanstalk concepts
Application – a logical collection of Elastic Beanstalk components including environment, versions, and environment configurations.
Application version – an application version is point to S3 object that contains the deployable code. Application can have multiple versions with an unique ID.
Environment – an application is deployed to AWS Resources. Each environment runs only one version at a time, however you can run the same version in many environments at the same time. There are 2 types of EB environments:
Load balancing – scaling environment: automating add new resources to accommodate increasing load on your app.
Single instance environment: this is simple architect contains one Amazon EC2 instance with an Elastic IP Address.
Environment Tier – determine whether EB to provision resources to support application in a web server tier (serve HTTP requests) or worker tier (SQS queue)
Environment configuration – collection of settings or parameters that related to resources of the environment.
There is a limit of version in the EB. You can use application version lifecycle policy to EB to delete application versions that are old.
You can see and manage underlying hardware that provisioned by EB.
EB Environment configurations
Amazon EC2 instances to run compute workload such as web servers.
Auto scaling group to manage suitable resources and cater application workloads
Amazon ELB to distribute traffics among EC2 instances.
EB also provides integration with Amazon RDS to help you add database instance to your EB environment. When added, EB provides connection information to your app such as: database hostname, port, username, password, database name.
You can also use environment properties to configure your app such as: secrets, endpoints, debug settings, environment purpose (dev, test, staging, production) and other information to your application.
You can configure to notify events that affect your application by configuring Amazon SNS.
You can share ALB to multiple EB environments within the same VPC.
EB provides a console to display environment’s status and application’s health at a glance.
Enhanced health monitoring is a feature that you can enable to help EB has more information and understanding about the environment and can identify issues that can cause your application become unavailable.
You can configure the notification when any change to your environment
EB requires 2 IAM roles:
Service roles – assumed by EB. It allows EB to access AWS Services
Instance profiles – applied to Amazon EC2 instances in the environment, allow the Amazon EC2 instances to access some other AWS services such as S3…
EB user policies – to allow AWS Account user to use EB.
There is no additional charge for using EB. You only pay for the AWS resources that provision by EB.