3 ms·
I'm not sure why people are so enamored with ELB -- just terminate SSL at your web boxes using nginx and publish the public ips of all of these machines in your
by mattbillenstein 9y ago
I'm not sure why people are so enamored with ELB -- just terminate SSL at your web boxes using nginx and publish the public ips of all of these machines in your DNS records.
You remove a bunch of ELB per-request costs doing it this way and you can scale it however you see fit.
- bastawhiz 9y agoThat works great until a machine starts failing health checks and you need to take it out of rotation ASAP. It's also the case that DNS gets cached and not all users create the same load: one user making many requests will burden one server instead of having the load evenly distributed.
- mattbillenstein 9y agoClients will try another ip if they can't connect -- partial failures may be a problem, but in my experience as long as nginx is alive, you can load balance to a different web backend if the app processes on that machine are wedged. I've deployed this solution in 50k req/s environments and not seen a single user be a problem like you mention -- any motivated bad actor could cause problems in either scenario I expect.
- bastawhiz 9y agoClients might not fail to connect. That's even worse. They connect and the server hangs and returns no response (perhaps due to bad configuration changes). Now you're stuck, and your server is too oversaturated to SSH in and fix it. It out depends on your application and users. Building a website? Probably not much of an issue. Building a low-latency API? YMMV. Keeping your load evenly balanced across your front end cluster also can keep your cost low, since you are able to distribute load more evenly. That's another point: if you scale your cluster size up and down frequently to accommodate load, doing that with DNS is a nightmare.
- awj 9y ago> It's also the case that DNS gets cached and not all users create the same load It's also, also the case that DNS gets cached and propagating the removal of a broken server could take ages.