Microservice on AWS
When the impact of change is small, release velocity can increase.
Theory
Contents:
- Options for architecting your microservices
- What if I can’t decide?
- Optimizing your container
- Docker Layers
- Optimize pods
- Optimize pod placement
- The advantages and disadvantages of EKS
- 고려사항
- Deployment with CDK or Terraform or eksctl
- 모두가 IaC가 되지 않음
Options for architecting your microservices
- AWS Lambda
- AWS Fargate
- ECS / EKS
- EC2
What if I can’t decide?
- Do you really need containers?
- Start with a serverless approach
- Switch to containers if necessary!
- Downtime can be needed
- EC2 / ECS are also options
Optimizing your container
- Optimize for the smaller size
- Use a minimalist operating system
- Not all runtimes are equal!
Docker Layers
- Layers RUN optimization.
- Dockerfile tuning
Optimize pods
- How many sidecar containers?
- Admission controllers add overhead!
- Keep pods lightweight!
Optimize pod placement
- Make sure you use resource constration
The advantages and dis-advantages of EKS
Advantages
- Managed Kubernetes
- HA구성: Automated version upgrades
- AWS managed master & etcd는 3개의 가용영역에 있음.
Disadvantages
- 1분기마다 버전 upgrade할려고 함
고려사항
- VPC virtual private cloud
- pod당 CPU & memory
- Worker Node AMI – amazon Linux.. ubuntu.
Deployment with CDK or Terraform or eksctl
- Production
- CDK & Terraform
- Test
- eksctl
Practice
- EKS Lab: https://www.eksworkshop.com/020_prerequisites/workspace/
- Kong Lab: https://se.konglabs.io/kong-gateway-get-started-with-api-gateway-for-microservices/