- Más nuevo
- Más votos
- Más comentarios
Have you considered AWS API Gateway->Lambda? You'll find examples of running lightweight web frameworks like Flask and ExpressJS using this architecture. API Gateway would then let you provide authN/Z callouts and then you could use domain name or path as the variable to dynamically render display. CloudFront or ElasticCache could be used for custom content if page load speed is a concern. This is kind of one logical app vs. thousands but you won't need to manage container lifecycles and such so should be much cleaner operationally.
Given the comment / reply to Clay_B, I'd say, you won't be able to use ACM with "bare containers" but if what you want to avoid is the LB costs (I say that because within a LB you can have rules and redirect to containers based on paths/urls rather easily), maybe something like caddy or traefik could deal with the ingress and certificates for you, and based on similar rules (hostname/url/path) route the traffic to the appropriate service in ECS.
If you still want to use ACM but only 1 LB, then you can still do that with, again, something like Traefik
NLB -> Traefik -> App, similar to https://labs.compose-x.io/apps/traefik_ecs_part1.html
Traefik will use ECS to do services discovery, so, as long as you set the labels correctly on your containers, you can have 100s of services, scale them accordingly, whilst keeping them very small.
Or maybe even better, using appmesh to route the traffic instead of something else, which would get you full AWS Support, and is very powerful.
Thanks John, I will look at Traefik!
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 4 meses
- OFICIAL DE AWSActualizada hace 8 meses
- OFICIAL DE AWSActualizada hace 2 años
Unfortunately, we have a requirement to use a specific cms as part of the web app at the moment. I don't think we can set this up using lambda functions. At some point in the future we will refactor the infrastructure to use a proper multi-tenancy framework, but it is not possible to do this with our current timeline. We're looking at "quick and dirty" solution that can be quickly deployed per customer in the interim, even though it will mean many web apps.