AWS Elastic Beanstalk (EB) Highlights

AWS Elastic Beanstalk (EB)

  • Quick deploy and manage applications in the AWS Cloud without worrying about the infrastructure. Don’t require much knowledge to initiate an environment on AWS.
  • Elastic Beanstalk handles capacity provision, load balancing, scaling, and application health monitoring.
  • It is platform as a service.
  • Supported languages: Go, Python, Node.JS, .NET, PHP, Ruby, Java
  • Supported web servers: Apache, Nginx, IIS, Passenger.
  • Supported Docker container
  • 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 contain 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 setting 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 provision 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 provide 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 also can 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 same VPC.

EB Monitoring

  • 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 Security

  • 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.

EB Limitations

SpecificationLimit
Applications75
Application verions1,000
Configuration templates2,000
Environments200

EB Pricing

  • There is no additional charge for using EB. You only pay for the AWS resources that provision by EB.

Reference

%d bloggers like this: