-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Proposal] Network Load Balancer Support #2918
Comments
qq - will removing the |
If there is no LB service using ALB left in the environment, then the ALB will be removed. |
NLB support was released for "Load Balanced Web Service" in v1.14 🥳 https://github.com/aws/copilot-cli/releases/tag/v1.14.0 We would love to hear your feedback, for example the first release does not have UDP support. We'd love to hear more about:
Resolving the issue in the mean time. |
Background
Currently, the Load-Balanced Service pattern only supports listening on port 80 or 443 with HTTP/HTTPS protocols. To support more variations (e.g. listening on 443/udp), we need to integrate Network Load Balancers into Copilot.
Related Issues
Proposal
We will add a new field named
nlb
in Load-Balanced Service's manifest:This will create a service fronted by a Network Load Balancer that is listening for UDP on port 443. Traffics will be routed to the main workload container on port 443.
Flexibility on the container port can be achieved by
This will route traffic from 443/udp to the aSidecar's port 53.
When the application is associated with a domain (e.g. by having run
copilot app init --domain example.com
), we will provide a default endpoint for public access :<svc>-nlb.<env>.<app>.<domain>
.For users that want to customize the domain instead of using
<svc>-nlb.<env>.<app>.<domain>
, they can take advantage ofalias
field that come withnlb
:similar to what they would have done with our current
alias
support..We can start small by supporting only one port for the NLB.
This will also mean that users can either specifyhttp
ornlb
, but not both.Sample Manifest Snippets
To listen on port 80/udp
Note that this is the same as
To disable listening for HTTP/HTTPS on top of that, simply add
To listen on port 443/udp, with health check configurations to apply to 443/udp
To listen on 5672/tcp, receiving traffic in the "rabbitmq" sidecar container
The text was updated successfully, but these errors were encountered: