AWS Application Load Balancer Vs. NGINX Plus!
Posted By : Aquib Ahamad | 04-Dec-2020
AWS Application Load Balancer vs. NGINX Plus
Features In Application Load Balancer
ALB, like classic Load balancer or NLB, is tightly integrated into AWS. Amazon describes it as a Layer 7 load-balancer. Although it does not provide the full breadth of feature, tuning, and direct control that a standalone Layer 7 reverse proxy and load balancer can offer.
ALB provides the following features that are missing at Classic Load Balancer:
• Content-based routing. ALB supporting content-based routing based on the request URL, Host header, and fields in the request that include standard and CustomsHTTP headers and methods, query parameters, and source IP address. (See Benefits of Migrating from a Classic Load Balancer in ALB documentation.
• Support for container-based applications. ALB upgrades on the present support for containers that are being hosted on Amazon’s EC2 Container Service (ECS).
• More metrics. You can collect metrics on a per microservice basis.
• WebSocket support. ALB supporting Persistents TCP connections between a client and a server.
• HTTP/2 supports. ALB support HTTP/2, a superiors alternative when delivering contents secured by SSL/TLS
(Check “Product comparisons” in the AWS documentation for a detailed comparison of ALB and Classic Load Balancer.)
AWS users who had struggled with Classic Load Balancer’s limited feature set found solace in ALB. The ALB addressed the requirements of sophisticated users who were looking to secure, optimize, and control the traffic to their web applications. However, it has its limitations does not facilitate dedicated reverse proxy ( NGINX) and load balancers (such as NGINX Plus).
Controlling Traffic on AWS With A Better Approach
Rather than the use of Amazon ALB, users can deploy NGINX Open Source or NGINX Plus on AWS to control and load balance traffic. To achieve high availability across multiple availability zones, users can also deploy Classic Load Balancer or Network Load Balancer as a frontend. The tables are compared to features supported by ALB, NGINX, and NGINX Plus.
Amazon ALB
NGINX Open Source
NGINX Plus
Load balancing
methods and features
Round_robin and least_outstanding_request method, with cookie-based session persistence, weighted target groups, and slow start
Multiple load-balancing methods (including Round Robin, Least Connections, Hash, IP Hash, and Random) with weighted upstream servers
Same as Nginx Open Sources, Plus Least Time methods, more sessions persistence methods, and slow start
Caching
? Caching in the load balancer not supported
? Static file caching and dynamic (application) caching
? Static and dynamic caching plus advanced features
Health checks
Active (identifies failed servers by checking status code returned for asynchronous checks)
Passive (identified failed server by checkings responses to client requests)
Both Active and Passive – Active checks are Richer and more configurable than ALB’s
High availability
You can deploy ALB instance in Multiple availability zones for ha, but not across region
Active? active HA with NLB and active?passive HA with Elastic IP addresses
Same as NGINX Open Sources, plus built?in cluster state sharing for seamless ha across all NGINX Plus instance
Support for all protocols in the IP suites
HTTP and HTTPS only
Also TCP and UDP with passives health checks
Also TCP and UDP, with active and passives health check
Multiple applications per load balancer instance
Also Read: How To Create A Custom Cache Server Using Nginx
Content-based routing
Based on requests URL, Host headers, and requests field including standard and custom HTTP headers, methods, query parameters, and source IP address
Based on the same factor as ALB, plus cookies and dynamics calculations using the NGINX JavaScript module as an inline JavaScript engine
Based on the same factor as NGINX Open Source, plus JWT claim and values in the key?value stores
Containerized applications
Can load balance to Amazon IDs, ECS container instances, Auto Scaling groups, and AWS Lambda functions
Requires manual configuration or configuration templates
Automated configuration using DNS, including SRV records; works with leading registry services
Portability
>All environment (Dev tests, and productions) must be the AWS
> Any environments can be on any deployments platforms
SSL/TLS
> Multiple SSL/TLS certificates with SNI support
> Validation of SSL/TLS upstreams not supported
> Multiple SSL/TLS certificates with SNI support
> Full choice of SSL/TLS ciphers
> Full validation of SSL/TLS upstreams
HTTP/2 and WebSocket
>
>
Authentication capabilities
– OIDC, SAML, LDAP, AD IdP authentication options
– Integrated with AWS Cognito and CloudFront
Multiple authentication options
Advanced capabilities
> Barebones API
> Origin serving, prioritization, rate limiting, and more
> Same as NGINX and Opens Sources, plus RESTfull API, key?value stores
Logging and debugging
> Amazon binary log formats
> Customizable log files and multiple debug interfaces
? Fully customizable log files and multiples debug interfaces, fully supported by NGINX
Monitoring tools
> Integrate with Amazon CloudWatch
> NGINX Controllers and other third? party tools
> NGINX Controllers and others third?party tools; an extended set of reported statistics
Official technical support
> At an additional cost
? Community support only
? Included in price and direct from NGINX
Free tier
? First 750 hours
? Always free
> 30?day trial subscription
Handling Traffic Spikes
Amazon’s Classic Loads Balancer (formerly ELB) suffered from a poor response to traffic spikes. Load balancers instance were automatically sized for the currents level of traffics. It could also take many minutes for ELB to respond and deploys additional capacity in case spikes occurred. Users had to resorts to a manual, form-based process to requests additional resources in advance of traffic spikes (referred to as “pre-warming”). Because ALB is base on NGINX, the ALB instance can handles much mores traffics, but you may still observe scalings events in response to traffics spikes. Furthermore, traffic spikes automatically result in greater consumptions of Loads Balancers Capacity Units (LCUs) and consequently, a higher cost.
Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.
About Author
Aquib Ahamad
He has good knowledge of RHCSA and RHCE and Aws git and bigdata. He is a quick learner who is always looking to learn new technologies