Elastic Load Balancing (ELB) on AWS-palvelu, jonka ensisijainen tarkoitus on nimensä mukaisesti kuormanjako. ELB:n avulla voidaan jakaa verkosta tulevia pyyntöjä pyyntöjen käsittelijöille tasaisesti tai erilaisin painotuksin. Kuormanjaon kohteena voi olla esimerkiksi IP-osoitteet, EC2-instanssit tai konteissa ajettavat palvelut (ECS, Fargate). ELB on AWS:n ylläpitämä automaattisesti skaalautuva palvelu ja se toimii usealla maantieteellisesti hajautetulla Availability Zonella. Yhdistämällä ELB-kuormanjaon AWS Autoscalingin avulla automaattisesti skaalautuviin taustapalveluihin voidaan rakentaa järjestelmä, joka kestää huomattavaa kuormitusta.
AWS tarjoaa kaksi ELB-versiota, joista v2 sisältää kolme eri OSI-mallin kerroksilla toimivaa ja eri käyttötarkoituksiin soveltuvaa palvelua:
V1:
V2:
Application Load Balancer toimii OSI-mallin application-tasolla ja sopii HTTP- ja HTTPS-liikenteen kuormanjakoon. Application-tasolla toimiminen antaa enemmän mahdollisuuksia kuormanjaon sääntöjen määrittelyyn kuin OSI-mallin alemmilla tasoilla toimittaessa. Kuormanjaossa voidaan hyödyntää esimerkiksi url-polkuja tai pyynnön header-tietoja. Pyyntöjä voidaan myös ohjata monipuolisemmin eri kohteisin kuin muilla ELB-tyypeillä: kuormaa voidaan ohjata eri domaineihin tai esimerkiksi AWS Lambda -funktioille. ALB mahdollistaa myös esimerkiksi liikenteen ohjauksen siten, että saman asiakkaan kutsut ohjautuvat aina samalle pyyntöjen käsittelijälle (sticky sessions). ALB:tä voidaan käyttää myös HTTPS-terminointiin, jolloin pyyntöjen käsittelijöiden ei tarvitse huolehtia liikenteen salauksesta.
Network Load Balancer toimii OSI-mallin transport-tasolla. NLB tarjoaa matalimman latenssin ja se kestää eniten kuormitusta, eli se soveltuu äärimmäistä suorituskykyä vaativiin sovelluksiin. NLB:n avulla saadaan kuormanjako tehtyä läpinäkyvästi application-tason suhteen. Toisin kuin ALB:lle, NLB:lle on mahdollista antaa kiinteä IP-osoite ja alkuperäisen kutsujan IP-osoite välittyy kutsun käsittelijälle.
Gateway Load Balancer toimii OSI-mallin network-tasolla ja on suunniteltu verkkotason valvontaan, suojaukseen ja analysointiin käytettyjen virtuaalilaitteiden, kuten palomuurien, tunkeutumisen tunnistukseen ja estoon sekä verkkopakettien analysointiin käytettyjen palveluiden hallintaan ja skaalaamiseen.
Classic load balancer on AWS:n alkuperäinen OSI-mallin transport-tasolla toimiva kuormanjakaja, joka on olemassa enää lähinnä taaksepäin yhteensopivuus syistä, eikä sitä ole syytä käyttää uusissa sovelluksissa.
Markus Nousiainen
Senior Consultant