Cấu hình AWS Network Load Balancer

Tạo NetworkListener

  1. Trước tiên chùng ta cần khởi tạo đối tượng NetworkListener
NetworkListener networkListener = productsServiceProps.networkLoadBalancer()
                .addListener("ProductsServiceNlbListener", BaseNetworkListenerProps.builder()
                        .build());

Architect

  1. Bây giờ, chúng ta sẽ cấu hình cho networkListener lắng nghe trên port 8081
.port(8081)

Architect

  1. Sử dụng protocol là giao thức mà listener sử dụng để lắng nghe các kết nối. Ở đây chúng ta dùng TCP
 .protocol(software.amazon.awscdk.services.elasticloadbalancingv2.Protocol.TCP)

software.amazon.awscdk.services.elasticloadbalancingv2.Protocol.TCP: Đây là cách để chỉ định giao thức TCP thông qua CDK. Protocol.TCP là một hằng số trong CDK để đại diện cho giao thức TCP.

Architect

Cấu hình NLB target group

  1. Sử dụng phương thức addTargets được gọi trên đối tượng networkListener để thêm các target (đích) mới cho listener đã được cấu hình trước đó trên NLB.
networkListener.addTargets("ProductsServiceNlbTarget",
                AddNetworkTargetsProps.builder()
                        .build()
                );

Architect

  1. Tiếp theo cho ta sẽ cho các kết nối sẽ được gửi đến cổng 8081 trên các target.
   .port(8081)

Architect

  1. Để kết nối đến các target ta sử dụng giao thức TPC
.protocol(software.amazon.awscdk.services.elasticloadbalancingv2.Protocol.TCP)

Architect

  1. Tiếp theo tạo tên của nhóm target (target group) mà các target sẽ được thêm vào là productsServiceNlb
.targetGroupName("productsServiceNlb")

Architect

  1. Tiếp theo chúng ta sẽ chỉ định danh sách các target cụ thể cần được thêm vào bằng phương thức targets
    .targets(Collections.singletonList())

Architect

  1. Tạo ra một target sử dụng cho dịch vụ Fargate. Một target Fargate sẽ được tạo để xử lý các kết nối gửi đến từ NLB.
.targets(Collections.singletonList(
            fargateService.loadBalancerTarget(LoadBalancerTargetOptions.builder()
                .build())
            ))

Architect

  1. Tiếp theo chúng ta sẽ định nghĩa tên của container trong dịch vụ Fargate mà các kết nối sẽ được gửi đến là productsService
.targets(Collections.singletonList(
            fargateService.loadBalancerTarget(LoadBalancerTargetOptions.builder()
                    .containerName("productsService")
                    .build())
                    ))

Architect

  1. Cuối cùng cấu hình port 8081 của container trong dịch vụ Fargate mà các kết nối sẽ được gửi đến và giao thức là TCP
    .targets(Collections.singletonList(
        fargateService.loadBalancerTarget(LoadBalancerTargetOptions.builder()
                .containerName("productsService")
                .containerPort(8081)
                .protocol(Protocol.TCP)
                .build())
        ))

Architect