Why does an AWS application load balancer require two subnets?

So, just to be clear here. @pasmwel basically answered with the docs links but I want to clairfy it since this seems to be getting views.

ALBs require 2 subnets since so that if 1 availability zone goes down the ALB can still operate on the others.

Which is kinda silly... since AWS could be doing it in the background.

The normal ELB and the TCP LB don't require this for no apparent reason. But if a subnet falls down they will also fail.


You might want an ALB as just somewhere to easily place a certificate, provide some security and easily integrate with R53 for a single target instance. Especially handy if you want to use Cloudformation to setup when it's maximum use of AWS.

So it does seem daft to have to configure 2 subnets. I have a vague recollection of reading somewhere that doing that and only using 1 results in lower performance but I could be dreaming that.


so that if 1 region goes down

The above is wrong and should state

so that if 1 availability zone (AZ), in the region, goes down

The answer to the question is, there is not a good reason for AWS to require two subnets. There are use cases where one only wants one subnet for production and other cases where developers only want one subnet. One might think, why bother with an ALB if there is only one subnet. The answer is ALB can monitor instance health (even though there are other ways to monitor, for example, CloudWatch.