Cant we use ELB Network Load Balancer as solution since it distribute load faster than application load balancer
That depends… typical DBA answer you’d say :P… There are many requirements driven to choose in between. For example the application load balancer support HTTP/HTTPS and network load balancer support TCP only. Application load balancer does not support static IP and Elastic IP. There are more differences… Please check this link: https://aws.amazon.com/elasticloadbalancing/features/
eCommerce on a single EC2 indicates to me that the TLS session terminates on the EC2 instance at the onset of the situation. As indicated an AMI of the instance exists, thus so does the TLS session configuration. When a new instance enters service the new instance would handle TLS session termination as well. The issue then is, does NLB support sticky sessions? Since the NLB is TCP only sessions are NOT supported.
Given this information (TLS session termination AND session support requirements) ALB is the best choice provided.
If you read the question carefully (Hint ; distribution), the question isn’t about increased network performance, but about quick distribution. It just can be either C or E. And E serves a better answer for reliable distribution control.