Compute - Elastic Beanstalk

Elastic Beanstalk

  • Developer centric view of deploying an application on AWS.
  • Manages infrastructure for the code by making following very easy:
    • Configuration of databases
    • Configuration of load balancers
    • Configuration of auto-scaling
  • Instance / OS configuration / deployment is handled by Beanstalk but are configurable.
  • Pricing: Elastic BeanStalk is free! You pay for the underlying resources.
  • It deploys common HA architectures with EC2, ALB, ASG, RDS, etc..
    1. Single instance deployments: good for dev
    2. LB + ASG: good for prod + pre-production
    3. ASG only: good for non-web apps in production (workers, etc.)
  • Still have full control over the configuration
  • Support for many platforms: Go, Java SE, Java with Tomcat, .NET on Windows Server with IIS, Node.js, PHP, Python, Ruby, Packer Builder, Single Container Docker, multi-container Docker, Preconfigured Docker
  • Deployment:
    • Has three components:
      • Application
      • Application version (increased in each deployment)
      • Environment name e.g. dev, test, prod.
    • You deploy application versions to environments can promote application versions to the next environment.
    • Rollback feature to previous application version
    • Full control over lifecycle of environments
    • If not supported, you can write your custom platform (advanced)
  • Can run containers:
    • Single Container Docker: 1 container per Beanstalk instance.
    • Multi-container Docker: Many docker instances within same Beanstalk instance.
    • Pre-configured Docker Containers: e.g. Java with Glassfish or Python with uWSGI.
  • Configurations
    • Presets
      • Low cost (free tier eligible): One EC2 + Elastic IP
      • High availability: ELB + ASG
      • Custom configuration: Customize everything
    • Software
      • Environment (e.g. NodeJs) version and environment properties
      • AWS X-Ray enabled/disabled
      • Rotate logs (disabled/enabled)
      • Log streaming (disabled/enabled)
    • Instances
      • Instance type, image ID, root volume type, root volume size, root volume IOPS, security groups
    • Capacity
      • Environment type (e.g. load balancing, auto-scaling)
      • Availability zones
      • Instances
    • Load balancer: type, listener (e.g. 1), processes (e.g. 1), rules (e.g. 1)
    • Rolling updates and deployments
      • Deployment policy (e.g. all at once)
      • Rolling updates (disabled/enabled)
      • Health check(enabled/disabled)
    • Security
      • Service role (e.g. aws-elasticbeanstalk-service-role)
      • VM key pair
      • VM instance profile.
    • Monitoring
      • Health reporting system (enhanced)
      • Ignore HTTP 4xx (disabled/enabled)
      • Health event log streaming (disabled/enabled)
    • Managed updates (enabled/disabled)
    • Notifications with e.g. (email address)
    • Network: VPC
    • Database: engine, instance class, storage (GB), multi-AZ)

Licenses and Attributions

Speak Your Mind