AWS Solutions Architect · Oppitunti

Target Groupit ja kuntotarkistukset

Rekisteröitte EC2-instansseja, IP-osoitteita tai Lambda-funktioita kohteiksi ja määritätte kuntotarkistusten polut, kynnysarvot ja välit.

Oppitunti 2/413 vaihetta

Target Groupit ja kuntotarkistukset on ilmainen AWS Solutions Architect-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS Solutions Architect-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Mitä kohderyhmät ovat

Kohderyhmä on looginen kokoelma kohteita, joihin kuormantasaaja reitittää pyynnöt. Jokaisella kohderyhmällä on kohdetyyppi, protokolla/portti ja kuntotarkistusmääritykset. Kuormantasaaja jakaa pyynnöt kohderyhmään rekisteröidyille kohteille, jotka läpäisevät kuntotarkistukset.

Kohderyhmät liitetään kuormantasaajan kuuntelijoihin kuuntelijasääntöjen avulla. Yksi kuuntelija voi reitittää pyynnöt useisiin kohderyhmiin pyyntöön liittyvien määritteiden perusteella. Tämä on ALB:n polku- ja isäntäpohjaisen reitityksen keskeinen mekanismi.

# Create a target group for an ALB
aws elbv2 create-target-group \
  --name my-web-targets \
  --protocol HTTP \
  --port 80 \
  --vpc-id vpc-12345678 \
  --target-type instance \
  --health-check-path /health \
  --health-check-interval-seconds 30

Kohdetyypit: Instance, IP, Lambda

Kohderyhmät tukevat kolmea kohdetyyppiä:

  • instance: reitittää EC2-instansseille instanssitunnisteen perusteella; kuormantasaaja lähettää liikenteen instanssin ensisijaiseen verkkoliitäntään määritetyssä portissa
  • ip: reitittää yksityisiin IP-osoitteisiin — hyödyllinen konteissa (ECS/EKS), VPN:n tai Direct Connectin kautta tavoitettavissa paikallisissa palvelimissa tai EC2-instanssien toissijaisissa IP-osoitteissa oleville kohteille
  • lambda: reitittää yhteen Lambda-funktioon (vain ALB); ALB muuntaa HTTP-pyynnön JSON-tapahtumaksi ja kutsuu funktion synkronisesti

IP-kohdetyyppiä tarvitaan ECS-tehtäville, joissa käytetään awsvpc-verkkotilaa (kukin tehtävä saa oman IP-osoitteen), EKS-podeille sekä hybridiarkkitehtuureille, joissa on paikallisia kohteita.

Kohteiden rekisteröinti

Rekisteröitte kohteet kohderyhmään manuaalisesti (konsolissa tai CLI:ssä) tai automaattisesti (liittämällä kohteet Auto Scaling Groupiin tai määrittämällä ECS-palvelun). Manuaalisesti rekisteröidyt kohteet pysyvät ryhmässä, kunnes poistatte niiden rekisteröinnin erikseen.

ASG:iden tapauksessa liitätte ASG:n kohderyhmään, jolloin ASG rekisteröi automaattisesti uudet käynnistetyt instanssit ja poistaa käytöstä lopetetut instanssit. Tämä tiivis ASG-integraatio on elastisten laskentakerrosten vakiomalli: uudet instanssit tulevat käyttöön ja alkavat vastaanottaa liikennettä heti, kun ne läpäisevät terveystarkistuksen.

# Register EC2 instances with a target group
aws elbv2 register-targets \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
  --targets Id=i-1234567890abcdef0 Id=i-0987654321fedcba0

# Register IP targets (for containers/ECS awsvpc)
aws elbv2 register-targets \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-ip-targets/def456 \
  --targets Id=10.0.0.5,Port=8080 Id=10.0.0.6,Port=8080

Terveystarkistuksen määritys

Jokaiseen kohderyhmään liittyy terveystarkistus, jonka avulla kuormantasaaja määrittää, onko kohde terve ja voiko se vastaanottaa liikennettä. Terveystarkistus lähettää kullekin kohteelle säännöllisiä pyyntöjä ja arvioi vastauksen:

  • Protokolla: HTTP, HTTPS tai TCP (NLB:tä käytettäessä)
  • Polku: pyydettävä URL-polku (esimerkiksi /health tai /ping)
  • Portti: tarkistettava portti (oletuksena kohderyhmän portti)
  • Terveen kynnysarvo: peräkkäisten onnistumisten määrä ennen terveeksi merkitsemistä
  • Epäterveen kynnysarvo: peräkkäisten epäonnistumisten määrä ennen epäterveeksi merkitsemistä
  • Väli: terveystarkistusten välinen aika sekunteina (5–300)
  • Aikakatkaisu: vastauksen odotusaika sekunteina

Terveystarkistuksen onnistumiskoodit

HTTP/HTTPS-terveystarkistuksia varten määritätte, mitkä HTTP-vastauskoodit ilmaisevat kohteen olevan terve. Oletusarvo on 200, mutta voitte määrittää alueita, kuten 200-299, tai pilkuilla erotettuja arvoja, kuten 200,301,302.

Hyvä käytäntö: luokaa sovellukseenne erillinen /health-päätepiste, joka palauttaa koodin 200 vain silloin, kun kaikki kriittiset riippuvuudet ovat käytettävissä (tietokantayhteys, välimuisti ja downstream-palvelu). Älkää käyttäkö juuriosoitetta (/) terveystarkistuksen polkuna, jos sen käsittely vaatii paljon resursseja tai todennuksen.

# Modify health check to accept 200-299
aws elbv2 modify-target-group \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
  --health-check-path /health \
  --matcher HttpCode=200-299 \
  --healthy-threshold-count 2 \
  --unhealthy-threshold-count 3 \
  --health-check-interval-seconds 15

Kohteiden tilat: initial, healthy, unhealthy

Kohde käy rekisteröinnin jälkeen läpi seuraavat tilat:

  • initial: ELB suorittaa ensimmäisiä terveystarkistuksia
  • healthy: kohde on läpäissyt vaaditut peräkkäiset terveystarkistukset ja vastaanottaa liikennettä
  • unhealthy: kohde ei ole läpäissyt vaadittuja peräkkäisiä terveystarkistuksia ja se on poistettu liikenteenjaosta
  • draining: rekisteröinnin poistaminen on käynnissä; nykyisten yhteyksien annetaan valmistua, mutta uusia yhteyksiä ei lähetetä kohteelle
  • unused: kohde on rekisteröity ryhmään, mutta mikään kuuntelijasääntö ei tällä hetkellä reititä liikennettä tähän ryhmään

Seuratkaa CloudWatch-mittareita UnHealthyHostCount ja HealthyHostCount kohdefleetin ongelmien havaitsemiseksi.

Rekisteröinnin poistamisen viive (yhteyksien tyhjennys)

Rekisteröinnin poistamisen viive (aiemmin connection draining) tarkoittaa aikaa, jonka ELB odottaa nykyisten yhteyksien valmistumista ennen kuin se lopullisesti poistaa kohteen rekisteröinnin. Oletusarvo on 300 sekuntia (5 minuuttia). Tämän ajan kuluessa rekisteröinnin poistamisen kohteelle ei lähetetä uusia pyyntöjä, mutta käynnissä olevien pyyntöjen annetaan valmistua.

Nopeissa julkaisuissa ja automaattisen skaalauksen lopettamissa instansseissa voitte haluta lyhentää ajan 30–60 sekuntiin, jos sovelluksen pyynnöt käsitellään nopeasti. Pitkäkestoisissa toiminnoissa, kuten tiedostojen lataamisessa ja videoiden käsittelyssä, säilyttäkää viive riittävän pitkänä, jotta toiminnot ehtivät valmistua keskeytyksettä.

# Reduce deregistration delay to 30 seconds
aws elbv2 modify-target-group-attributes \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
  --attributes Key=deregistration_delay.timeout_seconds,Value=30

Kuormantasausalgoritmit

Kohderyhmät tukevat erilaisia kuormantasausalgoritmeja:

  • Round robin (ALB:n oletus): pyynnöt jaetaan tasaisesti vuorotellen; paras vaihtoehto, kun kaikki kohteet ovat keskenään vastaavia
  • Least outstanding requests (ALB): jokainen uusi pyyntö lähetetään kohteelle, jolla on vähiten käynnissä olevia pyyntöjä; sopii paremmin vaihtelevan pituisille työkuormille, joissa joidenkin pyyntöjen käsittely kestää muita kauemmin
  • Flow hash (NLB): jako perustuu protokollaan, lähde- ja kohde-IP-osoitteisiin, lähde- ja kohdeportteihin sekä TCP-järjestysnumeroon; näin kaikki TCP/UDP-virran paketit menevät samaan kohteeseen

Jos käytätte istuntopohjaista sovellusta, jossa käyttäjän kaikkien pyyntöjen on päädyttävä samaan kohteeseen, ottakaa käyttöön sticky sessions sen sijaan, että luottaisitte round-robin-jakoon.

Useita kohderyhmiä ja painotettu reititys

Yksittäinen ALB-kuuntelijasääntö voi jakaa liikennettä useiden kohderyhmien kesken käyttämällä painotettuja kohderyhmiä. Voitte esimerkiksi reitittää 90 % liikenteestä vakaaseen kohderyhmään ja 10 % canary-kohderyhmään blue-green-julkaisuissa ilman Route 53:n painotettua reititystä.

Painotetut kohderyhmät määritetään kuuntelijasäännön tasolla. Painot ovat suhteellisia: jako 90/10 lähettää 90 % liikenteestä ensimmäiseen ryhmään ja 10 % toiseen. Tämä poikkeaa useiden ALB:iden välisestä painotetusta reitityksestä; tässä jako tapahtuu yhden ALB:n kuuntelijasäännön sisällä.

Kohderyhmät ja ECS-integraatio

Kun ECS-palveluita otetaan käyttöön ALB:n taustalla, jokainen ECS-tehtävä rekisteröidään ALB:n kohderyhmään käyttäen ip target type -tyyppiä (kun verkkotilana on awsvpc). ECS-palvelu hallitsee rekisteröinnin ja sen poistamisen automaattisesti: uudet tehtävät rekisteröidään terveystarkistusten läpäisemisen jälkeen, ja pysäytettävät tehtävät käyvät läpi rekisteröinnin poistamisen viiveen ennen lopettamista.

Kukin ECS-palvelu voi rekisteröityä määritettyä portin ohitusta käyttäen. Näin useat ECS-palvelut voivat jakaa yhden ALB:n käyttämällä eri kuuntelijasääntöjä (polku- tai isäntäpohjaisia) ja eri kohderyhmiä. Tämä on yleinen mikropalvelumalli.

NLB:n terveystarkistukset

NLB:n terveystarkistukset toimivat eri tavalla kuin ALB:n:

  • NLB tukee TCP-, HTTP- ja HTTPS-protokollia terveystarkistuksissa kuuntelijaprotokollasta riippumatta
  • NLB:n terveystarkistukset lähetetään NLB:n IP-osoitteista kussakin AZ:ssa. Varmistakaa, että suojausryhmät sallivat liikenteen NLB:n aliverkkojen IP-osoitteista tai käyttäkää itse NLB:n suojausryhmää
  • TCP-terveystarkistuksissa NLB pitää kohdetta terveenä, jos kohde hyväksyy TCP-yhteyden määritetyssä portissa
  • Terveystarkistuksissa epäonnistuvat NLB-kohteet poistetaan kyseisessä AZ:ssa. Jos jonkin AZ:n kaikki kohteet ovat epäterveitä, NLB voi tasata liikennettä vyöhykkeiden välillä muiden AZ:iden terveisiin kohteisiin (jos vyöhykkeiden välinen LB on käytössä)

Pikatarkistus

Testatkaa tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteiden ymmärtämistänne.

Oppitunnin kertaus

Tässä oppitunnissa opitte, että kohderyhmät sisältävät terveet rekisteröidyt kohteet, joiden tyyppi voi olla instanssi, IP tai Lambda, terveystarkistukset tutkivat kohteet säännöllisesti ja poistavat epäterveet kohteet liikenteenjaosta, ja rekisteröinnin poistamisen viive mahdollistaa käynnissä olevien pyyntöjen hallitun loppuun käsittelyn ennen kohteen poistamista. Seuraavaksi tutustumme kuuntelijasääntöihin ja polkupohjaiseen reititykseen ALB:ssä.

Aloita maksutta

Opi AWS Solutions Architect tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Target Groupit ja kuntotarkistukset” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS Solutions Architect-oppimispolun 3 oppituntia, myös oppitunnin “Target Groupit ja kuntotarkistukset”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Target Groupit ja kuntotarkistukset”?

Rekisteröitte EC2-instansseja, IP-osoitteita tai Lambda-funktioita kohteiksi ja määritätte kuntotarkistusten polut, kynnysarvot ja välit. Harjoittelet AWS Solutions Architect-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AWS Solutions Architect-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AWS Solutions Architect-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Target Groupit ja kuntotarkistukset”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä AWS Solutions Architect-oppitunnilla?

Kyllä. Jokainen AWS Solutions Architect-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. ALB, NLB ja GLB: milloin mitäkin käytetään
  2. Target Groupit ja kuntotarkistukset
  3. Listener-säännöt ja polkupohjainen reititys
  4. SSL-terminointi ja tahmeat istunnot
← Takaisin: AWS Solutions Architect