Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Limits and price

...

https://aws.amazon.com/elasticloadbalancing/pricing/?nc1=h_ls

Load BalancerPriceLCU
Application0,0225 USD0,008 USD for Hour
Network0.0225 USD0,006 USD for Hour
Classic0.0225 USD0,008 USD for Gb

Your AWS account has the following quotas related to Application Load Balancers.

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html

NameDefaultAdjustable
Application Load Balancers per Region50Yes
Certificates per Application Load Balancer (excluding default certificates)25Yes
Listeners per Application Load Balancer50Yes
Number of times a target can be registered per Application Load Balancer1,000No
Target Groups per Action per Application Load Balancer5No
Target Groups per Application Load Balancer100No
Targets per Application Load Balancer1,000Yes

The following quotas are for rules.

NameDefaultAdjustable
Rules per Application Load Balancer (excluding default rules)100Yes
Condition Values per Rule5No
Condition Wildcards per Rule5No
Match evaluations per rule5No

...

How we add data to it https://github.com/folio-org/pipelines-shared-library/blob/80b63af619da71ab8ada14eb5e074bfd3bbf4ebd/vars/helm.groovy

config[(module_name)]['ingress']['hosts'][0] += [host: domain]

Create load balancer add rules to it

...

Attach service to specific load balancer via group.

config[(module_name)]['ingress']['annotations'] += ['alb.ingress.kubernetes.io/group.name': "${project_config.getClusterName()}.${project_config.getProjectName()}"]

Next

Create new host that will map to namespace (Router 53)

Create a lot of new ingress 


decrease alb

Drawio
bordertrue
diagramNamenext Eks-ALb
simpleViewerfalse
width600
linksauto
tbstyletop
lboxtrue
diagramWidth871
revision5

use only one static name for alb.ingress.kubernetes.io/group.name it allow to don't create a new alb for each namespace

config[(module_name)]['ingress']['annotations'] += ['alb.ingress.kubernetes.io/group.name': "${project_config.getClusterName()}.${project_config.getProjectName()}"]


Rules will be the same as current because we don't touch the Router53 records that has been creating by EKS .


We can reduce count records of Routers53 (Currently we pay for them about 4$).

For it we need to add into our ingress more http and modify the records.


For create new internal load balancer in Kubernetes 

kubernetes.io/ingress.class: nginx

for external alb need to change routing to internal nginx lb
path: /namespace
backend:
resource:
apiGroup: k8s.example.com
name: namespace


Conclusion

We have about 15 alb on dev env.

Image Added

In each of them 1 listener with about 17 rules that go to unique target group as result we have about 255 rules/target groups in limits we can see that we can increase count of rules but we can't increase the count of unique target group per alb.

Target Groups per Application Load Balancer100

I think it possible to increase this limit for us but for it we must communicate with AWS Support to ask them to ask their developers (because it hard code) increase this limit for us. For it we need to provide reasons why we need it and what the benefits it will give to us.