-
Notifications
You must be signed in to change notification settings - Fork 254
HTTPS Support for ECS Load Balancers #775
Comments
Issue doing so is that we can't use I have no idea yet how we could balance this with a reasonable and portable workaround. |
True, this short hand would be troublesome. This would be quite useful in AWS where the load balancer that compose-cli uses already supports HTTPS TLS with just a couple of CloudFormation configurations. Azure Front Door is similar. Just a straw man here. Without modifying ports itself, though that might be ideal, like how swarm added "ingress", maybe something like this? And in this configuration the "published" version of the port would take precedence in CloudFormation ELB configuration, but the internal "8080" port would still be exposed and available to the host network.
|
@ndeloof, proposal at #777 would have the same issue regarding to service-to-service communication you mentioned? |
@flaviostutz afaik AWS load balancers only apply to external incoming traffic, so #777 would also not be supported for service-to-service routing. I wonder AWS AppMesh would offer more flexibility, and/or we could expose a higher level abstraction for "routing" that could be implemented by AppMesh but also others, which would make a huge benefits for compose-spec as same compose file could then be deployed both on AWS and local development (using Envoy/Træffic/xxx) |
@ndeloof I've been studying AppMesh with ECS and I think there are tons of advantages for us to integrate AppMesh for both ingress and service-to-service routing. By doing this we can enable the usage of other native AWS capabilities like service calls tracing (xray), monitoring (CloudWatch), path based routing and weighted service calls too. For both ingress and service-to-service routing, AWS indicates this architecture: Here we can see a great evolutionary example on CloudFormation templates for ECS + AppMesh: Doing this kind of deployment without compose would be very hard (CloudFormation file gets very complex because there are tons of items to configure), but by using compose cli this will be transparent for users and we'll enable great tools with no additional costs at AWS (as AppMesh is deployed as "side cars" there will be no additional charge on doing this). What do you think in implementing compose-cli using the templates based on the examples/diagrams above? related #694 |
I haven't looked into details on AppMesh but this indeed seems to me to be the right way to introduce more flexibility and act as implementation backend for compose-spec/compose-spec#111 Does app mesh come with extra costs (so we should only use it when required)? Need to sync with AWS team on best approach and get their recommendations |
@flaviostutz as you already proposed compose-spec/compose-spec#111 and App Mesh could be our best option to implement this by ECS integration, would you mind creating a Feature Request on |
Sure, @ndeloof! How do I do this? Is it by simply creating a new issue there with the proposal? |
yes, and add links to your issues across relevant repositories |
No extra costs are added because the containers used for the mesh proxy/utilities are "sidecars" and the Mesh service is not billed. Probably there will be a small increment in Task CPU/Mem usage for the proxy routing. |
Using a certificate spec inside the service/port means we'd have one LB/listener for each service, which could increase AWS costs (>15.00/mon per service), so we could employ an ingress routing by domain/path, so that we could have only one LB distributing ingress requests to the services on the stack (just like we do with Traefik and Caddy). See compose-spec/compose-spec#111 for a discussion on this topic We could use the top level attribute |
Nope, by compose-spec this just means each service MIGHT have it's own configuration, which makes perfect sense. Then AWS implementation, which uses a single Load Balancer, could add a restriction that all exposed service MUST use the same certificate. I don't like the idea to introduce |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This issue has been automatically closed because it had not recent activity during the stale period. |
I'd like to be able to specify a TLS certificate from the AWS ACM that would configure a listener on the load balancer port 443 and appropriate inbound security rule. I do this on my own today after running
docker compose up
in the ecs context.docker-compose.yml would look something like:
The text was updated successfully, but these errors were encountered: