Exposing Sharded Cluster on AWS EKS NLB Target Type

We have deployed a sharded mongodb cluster and we are running on aws eks and the mongos service is exposed via a load balancer we are using aws load balancer controller.

We are interested to learn if aws-load-balancer-nlb-target-type should be set to instance or ip. and any other best practises.`

  mongos:
    size: 3
    expose:
      enabled: true
      type: LoadBalancer
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance
        service.beta.kubernetes.io/aws-load-balancer-scheme: internal
        service.beta.kubernetes.io/aws-load-balancer-ip-address-type: ipv4
        service.beta.kubernetes.io/aws-load-balancer-name: acme-prod-psmdb-default-sharded
    tolerations:
      - key: "karpenter/mongodb-sharded"
        operator: "Exists"
        effect: "NoSchedule"
    nodeSelector:
      karpenter-node-pool: mongodb-sharded
    affinity:
      advanced:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchLabels:
                  app.kubernetes.io/component: mongos
              topologyKey: kubernetes.io/hostname
    resources: 
      limits:
        cpu: 1
        memory: 1Gi
      requests:
        cpu: 300m
        memory: 500M

since you are using EKS it should be better to set it to ip to route directly to pod (avoids one extra network hop)