If you are connecting to a single instance from clients it is a SPOF (Single Point of Failure) design, if you use a load balancer you can scale your Web/App fleet and achieve high availability.
As for which one to choose (ALB Vs NLB) see below link for the key differences between the two.
- is there any specific reason you are using application running on only one instance ?
- I would recommend you to have Load balancer (ALB or NLB) based on your use case and have two ec2 instance in different Availability zone.
- Also launch the instances using AWS Autoscaling (ASG) .
- In the Autoscaling, have the health check as Load balancer, so that when loadbalancer marks any instance as unhealthy, ASG terminates the instance and launch instance new instance , also it attach the new instance back to the load balancer .
need help about load balancerAccepted Answer
Network Load Balancer not supporting Network Protocolsasked a year ago
3 Region, 1 DNS names : Load Balancer or Route53asked 4 years ago
AWS Cost Optimization : Load Balancer Clean UpAccepted Answerasked 10 days ago
i have 1 instances and i am using application load balancer
Need help ! Issue with Auto Scaling for Application Load Balancer with 2 different instances for target groupsasked 2 months ago
What risks should I expect when applying WAF to Classic Load Balancer with CloudFront?Accepted Answerasked a year ago
Cross Zone Network Load Balancer Costasked 7 months ago
WebSocket subscription not working while using multiple Application Load Balancerasked 7 months ago
Network Load Balancer Headersasked 5 years ago