Hi everyone,
I just wanted to get feedback on my proposed solution for a multi-region ECS dockerized app. Currently we have the following resources in Region A:
Postgres DB (Used for user accounts only)
Backend+Frontend NextJS App (Dockerized) ECS
Backend Microservice App for conversion of files (Dockerized) ECS
Backend 3rd party API + Datastore (This resource is also deployed in other regions) Unknown architecture
I now need to deploy to Regions B and C. The Backend 3rd party API is already deployed in these regions. I am thinking of deploying the following resources to the following regions:
Backend+Frontend NextJS App (Dockerized)
Backend Microservice App for conversion of files (Dockerized)
Our app logs in the user (authentication + authorization) using the 3rd party API, and after login we can see which region their data is in. So after login I can bounce them + their token to the appropriate region. I cannot use Route53 routing reliably because the Source of Truth about their region is available after login, and, for example, they may be (rarely) accessing from region B (if they are travelling) while their datastore is in region C (In which case I need to bounce them to region C). I also don't need to replicate our database to other regions because it only stores their account information for billing purposes, so the performance impact is minimal and only checked on login/logout.
Currently we have low 10s of users, so I can easily restructure and deploy a different architecture if/when we start scaling. Critique is welcome!