Cloud & IT Cert Prep · Oppitunti

Launch Templatet ja ASG:n määritys

Luotte Launch Templaten oikealla AMI:lla, instanssityypillä ja user datalla ja liitätte sen Auto Scaling Groupiin, jolla on vähimmäis-, enimmäis- ja tavoitekapasiteetti.

Oppitunti 1/413 vaihetta

Launch Templatet ja ASG:n määritys on ilmainen Cloud & IT Cert Prep-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cloud & IT Cert Prep-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Mikä on käynnistysmalline?

Launch Template on versioitu mallipohja, joka kertoo Auto Scaling Group -ryhmille (ja suoraan EC2:lle), miten instansseja käynnistetään. Se sisältää AMI-tunnuksen, instanssityypin, avainparin, suojausryhmät ja valinnaiset käyttäjätiedot yhteen uudelleenkäytettävään dokumenttiin. Toisin kuin vanhempi Launch Configuration, Launch Template tukee useita versioita, ja sitä voidaan päivittää korvaamatta ASG:tä.

Käynnistysmallineen luominen CLI:n avulla

Voit luoda käynnistysmallineen AWS CLI:n avulla komennolla create-launch-template. Parametri --launch-template-data hyväksyy JSON-objektin, joka määrittää kaikki instanssin asetukset. Versioinnin ansiosta voit kehittää mallinetta vaikuttamatta käynnissä oleviin instansseihin, kunnes olet valmis ottamaan muutokset käyttöön.

aws ec2 create-launch-template \
  --launch-template-name 'MyAppTemplate' \
  --version-description 'v1 initial' \
  --launch-template-data '{
    "ImageId": "ami-0abcdef1234567890",
    "InstanceType": "t3.medium",
    "KeyName": "my-key-pair",
    "SecurityGroupIds": ["sg-0123456789abcdef0"],
    "UserData": "IyEvYmluL2Jhc2gKZWNobyAnSGVsbG8n"
  }'

Käynnistysmallineen versiot ja oletusversiot

Jokainen käynnistysmalline alkaa versiosta 1. Kun luot uuden version, voit ohittaa vain muuttuneet kentät – kaikki muut asetukset peritään lähdeversiosta. ASG voidaan määrittää käyttämään versiota $Latest (aina uusin) tai versiota $Default (erikseen määritetty). $Default-version käyttäminen mahdollistaa hallitut käyttöönotot, kun taas $Latest on kätevä kehitysympäristöissä.

# Create a new version based on version 1, changing only instance type
aws ec2 create-launch-template-version \
  --launch-template-name 'MyAppTemplate' \
  --source-version 1 \
  --launch-template-data '{"InstanceType": "t3.large"}'

Auto Scaling Groupin keskeiset käsitteet

Auto Scaling Group (ASG) ylläpitää EC2-instanssijoukkoa määritettyjen rajojen sisällä: minimum (alaraja), maximum (yläraja) ja desired capacity (tavoitemäärä kullakin hetkellä). Kun instanssi ei läpäise kuntotarkistuksia tai skaalauskäytäntö käynnistyy, ASG käynnistää tai lopettaa instansseja automaattisesti pitääkseen instanssien määrän tavoitteen mukaisena minimi- ja maksimirajan välissä.

ASG:n luominen Launch Templateen liitettynä

Kun luotte ASG:n, viittaatte Launch Templateen (ette suoraan tiettyyn AMIin). Määritätte myös VPC-aliverkot, joihin instanssit käynnistetään. Kun instanssit jaetaan useisiin aliverkkoihin (yksi kutakin AZ:ta kohti), saatte sisäänrakennetun usean AZ:n vikasietoisuuden: jos yksi AZ vikaantuu, ASG käynnistää korvaavat instanssit automaattisesti jäljellä oleviin AZ:iin.

aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name 'MyAppASG' \
  --launch-template 'LaunchTemplateName=MyAppTemplate,Version=$Default' \
  --min-size 2 \
  --max-size 10 \
  --desired-capacity 4 \
  --vpc-zone-identifier 'subnet-aaa111,subnet-bbb222,subnet-ccc333'

ASG:n kuntotarkistukset: EC2 vai ELB

Oletusarvoisesti ASG käyttää EC2-kuntotarkistuksia, jotka merkitsevät instanssin epäkuntoiseksi vain, jos se on pysäytetty tai lopetettu tai hypervisor ilmoittaa sen vikaantuneen. Kun liität kuormantasaajan, vaihda käyttöön ELB-kuntotarkistukset, jotta ASG korvaa käynnissä olevat instanssit, jotka palauttavat HTTP 5xx -virheitä. Tämä on yleinen tenttikysymys: valitse aina ELB-kuntotarkistukset, kun arkkitehtuuriin kuuluu kuormantasaaja.

# Enable ELB health checks on an existing ASG
aws autoscaling update-auto-scaling-group \
  --auto-scaling-group-name 'MyAppASG' \
  --health-check-type ELB \
  --health-check-grace-period 300

Kapasiteettiasetukset: minimi, maksimi ja tavoite

Oikeiden kapasiteettirajojen määrittäminen on ratkaisevan tärkeää. Minimum varmistaa, että sovelluksen liikennettä voidaan aina palvella (tämän arvon alapuolelle ei mennä). Maximum estää hallitsemattoman skaalautumisen, joka voisi kuluttaa palvelurajoitukset tai budjetin loppuun. Desired capacity on alkuperäinen tavoite, jota skaalauskäytännöt säätävät dynaamisesti. Jos asetatte min=max=desired, ASG toimii kiinteän kokoisena ryhmänä, mikä on hyödyllistä Launch Template -käyttöönottoihin tai kiinteän kapasiteetin ylläpitämiseen.

ALB:n kohderyhmän liittäminen ASG:hen

Liittäkää verkkotason sovelluksissa ASG Application Load Balancerin kohderyhmään. Jokainen ASG:n käynnistämä uusi instanssi rekisteröidään automaattisesti kohderyhmään, ja lopetetut instanssit poistetaan siitä automaattisesti. Näin liikenne ohjataan vain terveille ja käynnissä oleville instansseille. Teidän on myös asetettava kuntotarkistuksen tyypiksi ELB, jotta ASG havaitsee kuormantasaajan tasolla ilmenevät viat.

aws autoscaling attach-load-balancer-target-groups \
  --auto-scaling-group-name 'MyAppASG' \
  --target-group-arns 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/MyTG/abc123'

User data Launch Templateissa

User data on shell-komentosarja (Base64-koodattu), joka suoritetaan kerran, kun instanssi käynnistyy ensimmäisen kerran. Launch Templatessa se on oikea paikka pakettien asentamiseen, agenttien (CloudWatch, SSM) määrittämiseen ja sovelluskoodin noutamiseen. Pitäkää user data idempotenttina: useammin kuin kerran turvallisesti suoritettavat komentosarjat ehkäisevät ongelmia instanssien päivityksen aikana. Monimutkaisissa määrityksissä kutsukaa AWS Systems Manageria tai määritystenhallintatyökalua sen sijaan, että upotatte suuria komentosarjoja malliin.

#!/bin/bash
yum update -y
yum install -y amazon-cloudwatch-agent
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
  -a fetch-config -m ec2 -c ssm:/MyApp/CWConfig -s
# Start application
cd /opt/myapp && ./start.sh

Warm Pool nopeampaa skaalausta varten

Warm Pool alustaa etukäteen joukon pysäytettyjä (tai käynnissä olevia) EC2-instansseja valmiustilaan ASG:n ulkopuolelle. Kun ASG:n on skaalattava ulospäin, se ottaa instanssit Warm Poolista uusien, alustamattomien instanssien käynnistämisen sijaan, mikä lyhentää kapasiteetin lisäämiseen tarvittavaa aikaa huomattavasti. Warm Poolin instansseista aiheutuu pysäytetyn tilan kustannuksia (vain EBS-kustannukset, ei suorittimen käytön kustannuksia), joten tämä on paljon edullisempaa kuin täysin käynnissä olevien varakapasiteettien ylläpitäminen.

Lopetuskäytännöt ja AZ-tasapaino

Kun ASG skaalaa sisäänpäin, sen on päätettävä, mitkä instanssit lopetetaan. Oletusarvoinen termination policy valitsee ensin eniten instansseja sisältävän AZ:n (tasapainon palauttamiseksi), sitten vanhimman Launch Templaten ja lopuksi instanssin, joka on lähimpänä laskutustuntinsa täyttymistä. Voitte mukauttaa tätä järjestystä – esimerkiksi valita OldestLaunchTemplate, jolloin vanhentuneita määrityksiä käyttävät instanssit poistetaan ensin. ASG suorittaa myös AZ-tasapainotuksen automaattisesti, kun aliverkko tulee saataville tai manuaalisia muutoksia tehdään.

Pikatarkistus

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

Oppitunnin yhteenveto

Tässä oppitunnissa opitte, että Launch Templates tarjoavat versioidun ja uudelleenkäytettävän instanssien määritysmallin, joka tukee useita versioita sekä $Latest- ja $Default-versionosoittimia; ASG:n kapasiteettirajat (min/max/desired) määrittävät instanssijoukon koon ja mahdollistavat automaattisen jaon useisiin AZ:iin aliverkkojen kautta; ja ELB-kuntotarkistukset on otettava käyttöön, kun ASG on kuormantasaajan takana, jotta sovellustason viat käynnistävät korvaamisen. Seuraavaksi tutustumme skaalauskäytäntöihin, kuten tavoiteseurantaan ja askelskaalaukseen.

Aloita maksutta

Opi Cloud & IT Cert Prep 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
150
Oppitunnit
600

Usein kysytyt kysymykset

Onko oppitunti ”Launch Templatet ja ASG:n määritys” ilmainen?

Kyllä – oppitunnin ”Launch Templatet ja ASG:n määritys” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cloud & IT Cert Prep-kurssin, päivitä CoddyKit PROhon. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Launch Templatet ja ASG:n määritys”?

Luotte Launch Templaten oikealla AMI:lla, instanssityypillä ja user datalla ja liitätte sen Auto Scaling Groupiin, jolla on vähimmäis-, enimmäis- ja tavoitekapasiteetti. Harjoittelet Cloud & IT Cert Prep-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cloud & IT Cert Prep-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cloud & IT Cert Prep-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Launch Templatet ja ASG:n määritys”-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ä Cloud & IT Cert Prep-oppitunnilla?

Kyllä. Jokainen Cloud & IT Cert Prep-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. Launch Templatet ja ASG:n määritys
  2. Skaalauskäytännöt: Target Tracking ja Step Scaling
  3. Ajastettu ja ennakoiva skaalaus
  4. Instanssien päivitys ja elinkaarikoukut
← Takaisin: Cloud & IT Cert Prep