【Session Report】Useful Tips for Containerized Applications on AWS #AWSSummit
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.