【Session Report】Useful Tips for Containerized Applications on AWS #AWSSummit

This is a session report for the presentation 「コンテナ化されたアプリケーションのAWSでの構築運用指針」at AWS Summit Tokyo 2019.
2019.06.13

Hello, I'm Taewoo Kim at Classmethod, Inc., a Japanese company best-known for its outstanding AWS consulting works.

This is a session report for the presentation 「コンテナ化されたアプリケーションのAWSでの構築運用指針」at AWS Summit Tokyo 2019. The Japanese title can roughly be translated like the title of this post.

Taking photos was prohibitied in the conference hall, so this report only contains text content. Here begins!

About the Speaker

Deepak Singh Director, Amazon Web Services, Inc

Modern Application?

  • Modern application development allows you to focus on business value exploiting many technologies like cloud services, DevOps, and containerization.
  • Containers has been coming around yet, many of the customer wants to adopt their product with containers as their businesses grow
  • The number of ECS instances has grown like 300% within 15 months.
  • Containerization makes it possible to focus on application itself by taking advantages of containers.

Changes on consumption model for computing

AWS Fargate?

  • Just deploying the service and running
  • You just pay what you used
  • You operate completely on the container level.
  • no need to manage instances
  • Task-native API
  • payment system for resources only used

Features of serverless

  • No machine to manage (AWS team should deal with this)
  • Pay only what you used
  • Can scale to zero
  • HA (High Availability)

Serverless-related services on AWS

Computing

  • Lambda
  • Fargate

Datastore

  • S3
  • Aurora Serverless
  • DynamoDB

Integration

  • API Gateway
  • SQS
  • SNS
  • Step Functions ( possibly most important part )
  • AppSync (GraphQL service, Amplify)

Orchestration

  • ECS
  • EKS (ECS for Kubernetes)

Computing Engine

  • EC2
  • Fargate

Image Repository

  • ECR

Fundamentals for serverless

Firecracker

  • Open-sourced VM project
  • Container isolation
  • It launches lambda function or containers extremely quickly

AWS App Mesh

  • Reliably and securely connected within services

Balance of flexibility and simplicity as a workload unit

  • There's a trade-off between simplicity and flexibility.
  • ECS has chosen simplicity in its philosophy.
  • ECS is AWS-native container orchestration solution, so it's naturally supported by many of the AWS services like ECS CLI, ALB, world-wide deployment, etc.
  • EKS has chosen flexibility in its philosophy
  • What AWS do for Kubernetes is just upstream apps and customers provision their service.

App Mesh

  • Sidecar proxy pattern
  • A graph of how all the services communicate
  • It doesn't care where the service is on - like EC2, lambda, Fargate, it doesn't care.

Recently launched services

  • App Mesh GA
  • Fargate/ECS Task Set APIs
  • Fargate/ECS Container Ordering
  • EKS Control Plane logs
  • EKS CSI Drive3rs (EFS, FSx, EBS)
  • Kubeflow for EKS
  • Private Endpoint Support (Fargate, ECS, EKS, ECR)
  • EKS ISO/PCI Compliance
  • ECS Task Density improvements
  • ECS GPU Scheduing & Pinning
  • ECS Local Testing Tools
  • ECR Console Refresh
  • SLAs
  • etc.
Containers are first-class citizen on AWS

McDonalds' Example

  • DevOps CI/CD
  • Monitoring
  • Security
  • Scalability and stability

AWS containers-roadmap

AWS containers-roadmap has been opened publicly so you can see how the containers on AWS will make their road.