Docker with AWS primitives

Docker with AWS primitives

It has been almost a year and a half since AWS made the EC2 Container Service (ECS) general available. There have been lots of improvements along the way, but the addition of the new Application Load Balancer (ALB or ELBv2) promises to have a big impact on how we can run containers. Having a load balancer that understands container services, could make third party service discovery redundant.

We will set up a container stack that is build using only AWS services (ECS, ECR, ALB, ...), and show how to leverage the Application Load Balancer to register our containers in a cost-effective way.


Ben Bridts

October 13, 2016


  1. 7.

    ECR - Registry • Managed • Secure • HTTPS •

    Encryption at Rest • Highly Available • Integrates with docker cli • Integrates with ECS Ben Bridts - @ikB3N 7
  2. 10.

    ECS - Management • Scheduling & Placement • Open Source

    Agent • Bring your own OS • Bring your own Scheduler • Integrates with ECR, ELB, Autoscaling, … Ben Bridts - @ikB3N 10
  3. 15.

    ELB – Service Discovery • Load Balancing • Integrates with

    ECS • Path based or port based routing Ben Bridts - @ikB3N 15
  4. 16.

    Application Load Balancer • Level 7 routing (path based) •

    Containers as first class objects • More protocols: HTTP/2, Websockets • Health check configuration • More metrics • Delete protection Ben Bridts - @ikB3N 16
  5. 22.

    Avoid these traps • Health checks will kill and replace

    your app if they fail • T2 instances will run out of credits if you keep replacing your app • 1 ALB has 10 listeners with 10 rules • Adding instances does not rebalance your services Ben Bridts - @ikB3N 22