24
Deliver Docker Containers Continuously on AWS Philipp Garbe @pgarbe

Deliver docker containers continuously on aws

Embed Size (px)

Citation preview

Deliver Docker Containers Continuously on AWS

Philipp Garbe @pgarbe

● Philipp Garbe

● Lead Developer @AutoScout24

● AWS

● Continuous Delivery

● Docker

About Me

What About You?

The Big Picture

Let’s start

Publish imageCreate container image

From Dockerfile to Registry

Create the Cluster

ECS Cluster: Deployment OptionsAWS Console AWS CLI ECS CLI CloudFormation

Easy to start Yes No Yes No

Automation No Yes Yes Yes

Configuration as Code No No No Yes

Auto Scaling Yes Yes No Yes

The first deployment

Service description

● Loadbalancing● AutoScaling● Deployment

configuration

Task definition

● Task Role● Volumes● Network Mode

Container definition

● Image● Port mapping● Volume mapping● Network options● Docker options

ECS Service: Deployment OptionsECS CLI CloudFormation

Easy to start Yes No

Automation Yes Yes

Configuration as Code Partially Yes

Auto Scaling No Yes

Load Balancer No Yes

Load Balancing

Classic Load Balancer (ELB)

● Layer 4

● Static Port Mapping

Your ChoiceApplication Load Balancer (ALB)

● Layer 7

● Supports path-based routing

● Custom health checks

● WebSockets and Http/2 support

● Dynamic Port Mapping

Application Load Balancer (ALB)

Source: https://aws.amazon.com/blogs/compute/microservice-delivery-with-amazon-ecs-and-application-load-balancers/

Static Port Mapping (ELB)

Dynamic Port Mapping (ALB)

AutoScaling

ECS Cluster

● Use EC2 AutoScaling Group

● CloudWatch Metrics per Cluster:

○ CpuUtiliziation

○ MemoryUtilization

○ CPUReservation

○ MemoryReservation

AutoScalingECS Service

● New Application AutoScaling

● CloudWatch Metrics per Service

○ CPU Utilization

○ Memory Utilization

● Needs IAM Role

IAM Security Roles

ecsAutoScalingRole

ecsInstanceRole

ecsServiceRole

ecsTaskRole

● Read CloudWatch Metrics● Modify App AutoScaling

● ECR: Get Images● ECS: De/Register

Container Instances

● De/Register Instances with Load Balancer

● Everything your task needs to do

Volumes

Your choiceElastic File System (EFS)

● Shared access across instances

● Limited to Region

● Scales automatically

Elastic Block Storage (EBS)

● Volume per Container Instance

● Limited to Availability Zone

● No automatic scaling

● Additional tooling needed

?Questions

https://autoscout24.github.io/hiring

Philipp Garbe

http://garbe.io

@pgarbe

https://github.com/pgarbe