In this presentation, an overview was given of the ECS and EKS services on the AWS platform. In the second half of the presentation, Showpad gave an overview of how they are running Kubernetes on AWS.
rights reserved. Amazon Confidential Modern application development Monolith Microservices Does everything Shared release pipeline Rigid scaling High impact of change Hard to adopt new technologies Does one thing Independent deployments Independent scaling Small impact of change Choice of technology
rights reserved. Amazon Confidential Mobile client Client IoT A microservice architecture API Gateway Account DB Shipping DB Inventory DB Store Front Web App Account Lookup Shipment Query Inventory Query
rights reserved. Amazon Confidential Recap: What is a container? Runtime Code Dependencies Single, immutable object Deploy your container anywhere Easy to update using Dockerfiles
rights reserved. Amazon Confidential “Now launch 10 copies of my container distributed across three availability zones and connect them to this load balancer” “Here is a cluster of EC2 instances to use to run my applications”
rights reserved. Amazon Confidential EC2 based clusters require work! Patching and Upgrading OS, agents, etc. Scaling the number of instances in the cluster for optimal utilization according to the number of containers you need to run ECS Agent Docker Agent OS EC2 Instance
rights reserved. Amazon Confidential “Just launch 10 copies of my container distributed across three availability zones and connect them to this load balancer” X 10
rights reserved. Amazon Confidential AWS native container stack MANAGEMENT The API interface you use to launch applications Tracks application state and connects application to other resources like load balancers HOSTING Containers run on demand No capacity planning needed Automatically updated and patched infrastructure IMAGE REGISTRY Stores your docker container right there in the datacenter where you will run it
rights reserved. Amazon Confidential Version controlled description of your application: Image URL, CPU & Memory requirements, environment variables, etc register Task Definition create Cluster • Infrastructure Isolation boundary • IAM Permissions boundary run Task • A single running copy of your application container create Service Elastic Load Balancer • Maintain n running copies • Integrated with ELB • Crashed containers automatically replaced Fargate constructs
rights reserved. Amazon Confidential Configurable networking 172.31.0.0/16 Subnet 172.31.1.0/24 Internet Other Entities in VPC EC2 LB DB etc. Private IP 172.31.1.164 Explicit control for your containers networking: • Subnet placement, specific IP address ranges • Private IP address, possible to use public too • Security group to control traffic • Can use in combination with ELB or PrivateLink Under the hood: • AWS creates an Elastic Network Interface (ENI) • The ENI is allocated a private IP from your subnet and attached to the task • Optionally, you can also give it a public IP address if its in a public subnet with internet access ENI Fargate Task Public / 208.57.73.13 /
rights reserved. Amazon Confidential Access Management Cluster Permissions Application Permissions Task Housekeeping Permissions Cluster Fargate Task Cluster Permissions Control who can launch/describe tasks in your cluster Application Permissions Allows your application containers to access AWS resources securely Housekeeping Permissions Allows us to perform housekeeping activities around your task: • ECR Image Pull • Cloudwatch logs pushing • ENI creation • Register/Deregister targets into ELB
rights reserved. Amazon Confidential Amazon Elastic Container Service for Kubernetes Managed Kubernetes on AWS Highly available Automated version upgrades Integration with other AWS services Etcd Master Managed Kubernetes control plane CloudTrail, CloudWatch, ELB, IAM, VPC, PrivateLink
rights reserved. Amazon Confidential mycluster.eks.amazonaws.com Availability Zone 1 Availability Zone 2 Availability Zone 3 kubectl on your machine Amazon EKS architecture
rights reserved. Amazon Confidential VPC Kubernetes control plane Highly available and single tenant infrastructure Uses “native AWS” components, such as VPC networking and ELB integration AWS takes care of patching and maintenance of control plane NLB Amazon EKS Multiple Availability Zones Backend API Servers
rights reserved. Amazon Confidential Provisioning EKS worker nodes on EC2 You can deploy EKS worker nodes as follows; • Through AWS CloudFormation stacks developed by AWS • Using the ”eksctl” tool; https://github.com/weaveworks/eksctl • Several third party integrations are available as well (Terraform, Pulumi, Rancher, etc.) Fargate support for EKS is coming later this year
launch (now the biggest annual sales enablement conference in Europe) 2018 2013 Incorporated Showpad in US 2016 2018 Series C investment round (led by Insight Venture Partners ) Opening Chicago Office Leader in the Forrester Wave 2019 Platform release Welcome Learncore and Voicefox teams Our Story
is added to the cluster We cordon / drain the node (2 minutes) ASG is increased Termination event triggers If needed, ASG is increased again Node is terminated
rights reserved. Amazon Confidential New: AWS Cloud Map Service discovery for all your cloud resources Constantly monitor the health of every resource Dynamically update the location of each microservice Increase developer productivity Single registry for all app resources Define resources with user-friendly names Integration with Amazon container services AWS Fargate Amazon ECS Amazon EKS AWS Cloud Map
rights reserved. Amazon Confidential New: AWS App Mesh Observability & traffic control Easily export logs, metrics, and traces Client side traffic policies—circuit breaking, retries Routes for deployments Works across clusters and container services Amazon ECS Amazon EKS Kubernetes on EC2 AWS Fargate (coming soon!) AWS built and run No control plane to manage Ease of operations High scale
affiliates. All rights reserved. Marek Kuczynski Bernard Grymonpon Sr. Solutions Architect Engineering Lead Amazon Web Services Showpad @marekq @wonko_be [email protected][email protected]