I'm planning a new app and was wondering if I should use K8s. I'm familiar with AWS and have been using Fargate with autoscaling for most of my projects. This app is going to be my most complicated program, so I'd like some input before I start coding.
The app is a REST api that connects with each customer's datasource to perform an operation.
This is my current plan:
1. Public Subnet
- Elastic Load Balancer
2. Private Subnet 1 - Fargate Service - Auth Server
- Private Elastic Load Balancer (routes request to correct Fargate service)
- ECS
- 1x Fargate Service for each customer (with autoscaling)
- 1x KMS key for each customer
- each Fargate Service can only access their KMS Key
3. Private Subnet 2 - MySQL database
I made a quick diagram here: https://imgur.com/a/L0TfAtA. Is this something I should consider K8s for?I've created very basic K8s applications, but nothing in production.
Happy to provide more information.
K8s comes with a lot more complexity for the benefits you get. There are setups, interactions, tradeoffs outside of k8s that might be considered. Depends on your goals.
Another question might be, how much DevOps do you want to do? Are you trying to launch a product or is this a learning project?